Commit Graph

825 Commits

Author SHA1 Message Date
Steven Johnson
eecc554117 change 71a045ccce43 inadvertently backed out change b8f64e82da3f; this restores the latter (r=stejohns)
--HG--
extra : convert_revision : 2fbb1bbebee5e0872ea3d485a40d7f71f785f319
2010-02-16 11:59:55 -08:00
Steven Johnson
ea07a846cc fix unreachable-code warning for LIR_div/LIR_mod on non-x86 platforms (r=stejohns)
--HG--
extra : convert_revision : f1d89a6a410719c5d7563ff5ca214c05c7c128a2
2010-02-16 11:21:52 -08:00
Steven Johnson
894487e422 Bug 542133 - Add a real NJConfig struct to nanojit (r=edwsmith,r=nnethercote)
--HG--
extra : convert_revision : 353c06e32329377cc9ed5f66eeb6bcaf72ff3aea
2010-02-15 17:56:41 -08:00
Nicholas Nethercote
78e2d52f98 merge
--HG--
extra : convert_revision : 035a5165bc8bbf7940415d4802bf9b14d1226740
2010-02-15 17:24:21 +11:00
Nicholas Nethercote
52ac8a6adb Minor follow-up for bug 542326: fix a miscategorized case label. r=me.
--HG--
extra : convert_revision : ac0fcaac8b166a1507e2902eefb755f806703872
2010-02-15 12:24:13 +11:00
Nicholas Nethercote
66b0d6df6b Bug 507089 - TM/nanojit: introduce get/set methods for CallInfo::_argtypes. r=edwsmith.
--HG--
extra : convert_revision : 8075a19e11565e6de5f33ed829fe435e47e116ca
2010-02-15 11:01:04 +11:00
Nicholas Nethercote
2481388fac Bug 542326 - nanojit: add NJ_SOFTFLOAT_SUPPORTED, and only compile in support for non-universal opcodes on platforms that use them. r=stejohns,edwsmith.
--HG--
extra : convert_revision : 990d84e8d841139009cb2728297d81e8fc4aad27
2010-02-12 12:30:16 +11:00
Rick Reitmaier
791422e319 Bug 545113 - Compiling for MIPS fails during linking (r+rreitmai) [c.dearman]
Compiling tamarin-redux for MIPS fails during linking with the following error:

./libavmplus.a(Assembler.o): In function
`nanojit::Assembler::gen(nanojit::LirFilter*)':
Assembler.cpp:(.text+0x4e14): undefined reference to
`nanojit::Assembler::asm_q2i(nanojit::LIns*)'
Assembler.cpp:(.text+0x4e1c): undefined reference to
`nanojit::Assembler::asm_q2i(nanojit::LIns*)'

--HG--
extra : convert_revision : 63fda420c52dbe5b328e978ebe50c297ff2cb729
2010-02-11 15:52:18 -08:00
Leon Sha<leon.sha@sun.com>
65b4deca58 Bug 544422 - [Nanojit] Implement asm_f2i on sparc. r=stejohns
--HG--
extra : convert_revision : 4849b094bea2e2ff58c86ca09ef4a8f652777594
2010-02-08 15:34:55 +08:00
Leon Sha<leon.sha@sun.com>
ca782981e4 Bug 544445 - [Nanojit] Increase NJ_MAX_STACK_ENTRY for sparc to 8192. r=stejohns.
--HG--
extra : convert_revision : d04830e99d19b0e5fc182404b35393430daaa4b2
2010-02-08 15:07:53 +08:00
Leon Sha
93f678b877 Bug 544447 - [Nanojit] ./bin/lirasm crash on Solaris x86 compile with Sun Studio 12u1. r=stejohns
--HG--
extra : convert_revision : 00e2b79d00023633f87d862f2bdbbebc2e72789c
2010-02-08 12:42:53 +08:00
Nicholas Nethercote
47eb9083c4 Bug 543401 - nanojit: merge SoftFloatFilter implementations. r=gal,stejohns.
--HG--
extra : convert_revision : 485ae0bec97b3ec9c55ac943f81a2992c8153549
2010-02-08 08:35:35 +11:00
Nicholas Nethercote
87ea71a72d Bug 543144 - Typechecker causes assertions in softfloat. r=stejohns,dschaffe.
--HG--
extra : convert_revision : 7d2cd297ad03f3a9d1d7722027dbb1284dd49add
2010-02-06 02:14:48 +11:00
Leon Sha<leon.sha@sun.com>
4d134396af Bug 544178 - [Nanojit] Assembler code for LIR_ult is wrong on sparc. r=stejohns
--HG--
extra : convert_revision : 955a870d35fa8ef0c3d4413f7e7831c38cfa5329
2010-02-05 09:42:57 +08:00
Nicholas Nethercote
3258b3f519 Bug 543384 - Multi-line assertion that makes jsfunfuzz sad. r=jruderman.
--HG--
extra : convert_revision : 42624af8095495e387d20c7e474dcc602694b300
2010-02-04 10:26:47 +11:00
Steven Johnson
cd405704e7 Bug 543803 - Fix unused-variable warnings in Release ARM builds (r=rreitmai)
--HG--
extra : convert_revision : de2889d43d17c9ccc659c509dcb0c1749111d336
2010-02-02 12:37:59 -08:00
Rick Reitmaier
140845622b Bug 504202 - MIPS target support (r+graydon,rreitmai) [chris.dearman]
MIPS target support added courtesy of Chris Dearman.

--HG--
extra : convert_revision : 45136ae8db067291bb4b6595f6c4319675012cc5
2010-02-01 10:22:30 -08:00
Rick Reitmaier
692af9f981 Bug 508266 - nanojit X64 backend doesn't handle 64bit jumps (r+nnethercote,edwsmith)
--HG--
extra : convert_revision : 84a0590762f5a804b905378b74414294ed22cbe6
2010-01-28 15:25:07 -08:00
Steven Johnson
d3917616cd Update comment about Thumb-2 usage to be grammatically correct, per nnethercote's suggestion.
--HG--
extra : convert_revision : 4520d720b2e3681edfeba915cd7d359231f24de8
2010-01-28 13:57:08 -08:00
Steven Johnson
66b97ac0b3 remove arm_thumb and arm_thumb2 flags (r=rreitmai,r=nnethercote,bug=541491)
--HG--
extra : convert_revision : b9b31e60f28eb87842aae9325944c1d03ca1b2a7
2010-01-28 13:37:40 -08:00
Julian Seward
c0ca91a9e9 Bug 536153 - NativeARM.cpp: Incorrect use ALUr_shi to generate compare insns. r=Jacob.Bramley.
--HG--
extra : convert_revision : f4ece4c13545709edbd5b8f856ec39f155223892
2010-01-28 09:31:38 +11:00
Nicholas Nethercote
b61775ba66 Bug 540368 - nanojit: split LIR_qlo, LIR_live and LIR_ret into two opcodes each to faciliate LIR type-checking (NJ-specific part). r=edwsmith.
--HG--
extra : convert_revision : 54cf6d39a21dc1e209d3e0e48bb6c2b61ab5f909
2010-01-28 08:45:29 +11:00
Edwin Smith
1cd47593e7 Fix unused local variable warning in NativePPC.cpp (r=me)
--HG--
extra : convert_revision : e58ebcf59d3eb1a75a4ad41df32db2794732284b
2010-01-27 10:17:19 -05:00
Steven Johnson
cc53ad5c4e Bug 541491 - ARM_ARCH, ARM_VFP, and ARM_THUMB2 should be runtime options everywhere (r=rreitmai,nnethercote)
--HG--
extra : convert_revision : 90cd176398da34d02665e189e6311b72e8d3657d
2010-01-26 10:37:38 -08:00
Nicholas Nethercote
09e7e8d0a8 Bug 541886 - nanojit: move compile() into class Assembler. r=rreitmai.
--HG--
extra : convert_revision : f3506c693a7e8b7af089367313cbe960d7e2607f
2010-01-26 13:38:15 +11:00
Steven Johnson
1f13f206c4 Init rb to UnspecifiedReg in asm_fop (x64) to pacify compiler
--HG--
extra : convert_revision : 1cae250cda3ca1765fc3de8e057dccdd4522c358
2010-01-25 15:23:34 -08:00
Steven Johnson
f0de53c1ce remove unused-parameter warning from Assembler::hint() in NativeX64.cpp to fix Linux64 build breakage
--HG--
extra : convert_revision : 5db4de482aca2e102551560de084c33bd4db2bc8
2010-01-25 15:04:22 -08:00
Steven Johnson
9c26cf7691 fix obviously wrong call to getTarget() in ValidateReader::read() for LIR_jtbl (r=me)
--HG--
extra : convert_revision : 0a24446567224c42ee3f421627ea644976fea3de
2010-01-25 11:56:01 -08:00
Steven Johnson
e0fe64337d implement EXPANDED_LOADSTORE for ARM (code=vladimir,stejohns; r=vladimir,rreitmai; bug=534765)
--HG--
extra : convert_revision : 75f0d95c8bea8ceb0d9bb2dfd55aeb0d0d200bd1
2010-01-25 11:08:42 -08:00
Nicholas Nethercote
b2dcc26c38 Bug 538924 - nanojit: rework reservations. r=edwsmith.
--HG--
extra : convert_revision : 51a78a175b1074c933323e0bf24d6f64b5c6c35d
2010-01-25 10:39:36 +11:00
Nicholas Nethercote
fec7f356b0 ARM bustage fix for bug 540351.
--HG--
extra : convert_revision : 4a6d8a20be25e523d261f1754b0be90619fc0554
2010-01-25 09:44:47 +11:00
Nicholas Nethercote
a0704e558a Bug 540351 - nanojit: refactor hint() and registerAlloc(). r=rreitmai.
--HG--
extra : convert_revision : fa4f34a51239317d312b9388f2eb9ca2631b463e
2010-01-25 09:40:11 +11:00
Nicholas Nethercote
43cc6ace57 Bug 534313 - nanojit: split isQuad() into isI64() + isF64() + is64(). r=dvander,stejohns.
--HG--
extra : convert_revision : f24a70adec4c24dffd3a9c6c3572c5755938291a
2010-01-25 08:25:04 +11:00
Steven Johnson
37c967beaf nanojit/NativeARM.h: remove NJ_ARM_ARCH (code=bramley,r=stejohns,bug=541258)
--HG--
extra : convert_revision : cfcf246845a1fa07f60c791bdc471ed11a10351a
2010-01-22 12:39:57 -08:00
Edwin Smith
605b734ba8 (second try) Adds protect/unprotect API to CodeAlloc (bug 460993 r=nnethercote,rreitmai sr=gal)
Removes calls to VMPI_setPageProtection from CodeAlloc, and adds a new
protect/unprotect API to CodeAlloc, along with an SPI for the vm to implement
actual page protection.

It is up to the VM to call codeAlloc->protect() before executing jit'd code,
but CodeAlloc will internally call unprotect() before modifying blocks, as code
is generated.  If the VM's implementation of allocCodePage allocates memory
as RWX, then the new protection api's can be ignored and the implementations
of markCodeChunkExec/Write can be empty functions.

A flag per code chunk is used so that only modified pages are unprotected and
reprotected.

CodeAlloc never calls VMPI_setPageProtection any more, so platform abstractions
for this can be encapsulated in the CodeAlloc SPI methods.

nanojit/avmplus.cpp was modified to call VMPI_setPageProtection on the platforms
that didn't already allocate code memory as RWX.  Since those callsites are platform
specific and the only place we call VMPI_setPageProtection, the code could be further
simplified.

--HG--
extra : convert_revision : 3c9030f46c15cc0f033592db6ba96674e1f5173b
2010-01-22 15:18:12 -05:00
Nicholas Nethercote
c1a35c54aa Bug 521692 - NJ merge: don't check for error twice in Assembler::gen(). r=graydon.
--HG--
extra : convert_revision : c0257e13ea032510ed6ec3e1a6ea55c0fe98e614
2010-01-22 13:24:59 +11:00
Nicholas Nethercote
1706534709 Bustage fixes.
--HG--
extra : convert_revision : 7befbe058634dc37e2fcd614969fd92c64507096
2010-01-22 10:21:29 +11:00
Nicholas Nethercote
b98921836d Bug 463137 - TM/nanojit: type-check LIR. r=jseward,rreitmai.
--HG--
extra : convert_revision : 162182c5cd78d5366c1ca3ea2ca9b11f40115942
2010-01-22 10:10:59 +11:00
Nicholas Nethercote
451469e807 Whitespace-only change, to test if NJ/TM repo breakage has been fixed. r=graydon.
--HG--
extra : convert_revision : 141daad5d4d254008de9d129288917625cfdfb57
2010-01-22 08:49:19 +11:00
Nicholas Nethercote
3dd103b579 Backed out changeset (by hand due to update-nanojit difficulties) 69d5a3454a6e (bug 460993), avmplus.cpp changes were bogus. 2010-01-22 08:43:09 +11:00
Edwin Smith
b1f006af09 Adds protect/unprotect API to CodeAlloc (bug 460993 r=nnethercote,rreitmai sr=gal)
Removes calls to VMPI_setPageProtection from CodeAlloc, and adds a new
protect/unprotect API to CodeAlloc, along with an SPI for the vm to implement
actual page protection.

It is up to the VM to call codeAlloc->protect() before executing jit'd code,
but CodeAlloc will internally call unprotect() before modifying blocks, as code
is generated.  If the VM's implementation of allocCodePage allocates memory
as RWX, then the new protection api's can be ignored and the implementations
of markCodeChunkExec/Write can be empty functions.

A flag per code chunk is used so that only modified pages are unprotected and
reprotected.

CodeAlloc never calls VMPI_setPageProtection any more, so platform abstractions
for this can be encapsulated in the CodeAlloc SPI methods.

nanojit/avmplus.cpp was modified to call VMPI_setPageProtection on the platforms
that didn't already allocate code memory as RWX.  Since those callsites are platform
specific and the only place we call VMPI_setPageProtection, the code could be further
simplified.

--HG--
extra : convert_revision : a1002278492b012b727550db2fb928faa6bee36b
2010-01-20 13:32:02 -05:00
Nicholas Nethercote
89feacc9e7 Bug 540522 - nanojit: re-enable StackFilter(!). r=stejohns.
--HG--
extra : convert_revision : f1f968ac0f1498b5d4bbd32f637fb4617f45d501
2010-01-20 08:30:49 +11:00
Jacek Caban
135d5bea4f Bug 505034 - Compiling Nativei386.cpp on MinGW fails because of different syntax of inline asm. r=graydon
--HG--
extra : convert_revision : 998ded176a21bee139e444182005f320bcbcfa1e
2010-01-18 20:34:13 -05:00
Steven Johnson
df649734ff add stub implementations of asm_f2i on PPC and Sparc. add NJ_F2I_SUPPORTED compiletime flag. (r=rreitmai,bug=523251)
--HG--
extra : convert_revision : 387c73e51e77eb47b3344678175208f13390dd02
2010-01-18 15:26:49 -08:00
Jeff Walden
731a9fd5f8 Oops, back out changeset af515d48bdcf, should have gone to nanojit-central instead. :-\ 2010-01-18 20:27:43 -05:00
Jacek Caban
8991f44a3c Bug 505034 - Compiling Nativei386.cpp on MinGW fails because of different syntax of inline asm. r=graydon 2010-01-18 15:08:30 -05:00
Nicholas Nethercote
c5993fa962 Bug 539876 - nanojit: optimize away 'y = mul x, 1'. r=rreitmai.
--HG--
extra : convert_revision : ebd6a957cf98ffca526fdce976826be5246e0a51
2010-01-18 09:36:32 +11:00
Nicholas Nethercote
0c9683a5c5 Bug 539379 - TM: Crash [@ ExecuteTrace] or [@ ExecuteTree]. r=edwsmith.
--HG--
extra : convert_revision : a5115ee971c8496182e9b4f6847ad91619b4a585
2010-01-15 15:07:32 +11:00
Nicholas Nethercote
6a8645f974 WinNT bustage fix for bug 538538.
--HG--
extra : convert_revision : f2f5796b620ed75ed33258163590f4d4a884a200
2010-01-15 10:05:44 +11:00
Nicholas Nethercote
04deac1562 Bug 538538 - lirasm: don't run the optimizers, except when using --random (NJ-specific part). r=graydon,stejohns.
--HG--
extra : convert_revision : 7ab1e0842f7dd1807c11578a34e5e95884a7e6dc
2010-01-15 08:59:19 +11:00