Commit Graph

807 Commits

Author SHA1 Message Date
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
Nicholas Nethercote
dd81027128 Bug 539621 - nanojit: flush LogControl output on every line. r=edwsmith.
--HG--
extra : convert_revision : e75430160542e5ce18d8ee5768c27fe719315179
2010-01-15 08:47:18 +11:00
Vladimir Vukicevic
b98eed802d Missed S14 -> FpSingleScratch renaming
--HG--
extra : convert_revision : 0628e6475f1f08e91a9113e0174230d38272f4e5
2010-01-13 18:10:28 -08:00
Vladimir Vukicevic
78c3d13a0e b=523251; add LIR_f2i; r=njn,edwsmith
--HG--
extra : convert_revision : 95e6284a8725404dfb1f2685e1ee5efdc334d169
2010-01-13 14:40:35 -08:00
Steven Johnson
f29b5c8836 nanojit/NativePPC.cpp: PPC backend needs to ensure caller parameter area is at least 8 registers in size (r=rreitmai,r=nnethercote,bug=539270)
--HG--
extra : convert_revision : 8cc0cbcb83e2ac84078705b23a5232a6d8518a6c
2010-01-12 13:49:50 -08:00
Edwin Smith
313f22a44e Lazy-allocate code memory for side exits (bug 538393 r=nnethercote+)
--HG--
extra : convert_revision : 97bacc5dff62389b91741265ca30dc73a2a8f532
2010-01-12 08:58:14 -05:00
Vladimir Vukicevic
37cc5c283f Backed out changeset fea4da580994 -- need to split LIR_f2i into nj-central and tm patches 2010-01-11 21:54:02 -08:00
Vladimir Vukicevic
373168d7d3 b=523251; add LIR_f2i; r=gal 2010-01-11 21:41:20 -08:00
Nicholas Nethercote
b3361ed5f3 Bug 538060 - nanojit: improve 64-bit loads and stores in the X64 back-end. r=gal,rreitmai,edwsmith.
--HG--
extra : convert_revision : 1fd416d0954dc667073f3a92087c01fc23e5c3aa
2010-01-11 15:51:49 +11:00
Steven Johnson
3093a45e23 fix incorrect WinCE detection in CLZ (r=rreitmai,bug=538632)
--HG--
extra : convert_revision : dc59fb8a1810584ad2e0c61b49689f68d5894501
2010-01-08 11:17:07 -08:00
Steven Johnson
de49190585 rearrange code to work around MSVC compiler bug (r=nnethercote,bug=538504)
--HG--
extra : convert_revision : 01cfb2d0354910c6ccedec8a9885932b7c58e97b
2010-01-08 10:12:29 -08:00
Steven Johnson
04954aa494 nanojit/LIR.cpp: LIR_st32f is missing from live() (r=rreitmai,bug=538494)
--HG--
extra : convert_revision : 1dc443aa284f1a84957078757e681c54407ebd3f
2010-01-07 17:04:30 -08:00
Steven Johnson
db4338efde Modify nanojit::live, expose ReverseLister, add some options to VerboseWriter (r=edwsmith,graydon,bug=538000)
--HG--
extra : convert_revision : e5ef97918b7944b26105424580c36e4e042c35f4
2010-01-07 16:41:42 -08:00
Edwin Smith
127df225b6 Whitespace hygene (r=me)
--HG--
extra : convert_revision : f5f333d75636ed9e4c7869bdcf6aaa69beb35a2e
2010-01-07 13:05:33 -05:00
Nicholas Nethercote
f6d7e7b7d8 Bug 538049 - nanojit: problem with qjoin in ExprFilter. r=stejohns.
--HG--
extra : convert_revision : 08580609c2448559cd2866f8b34381dc34ed1488
2010-01-06 11:43:19 +11:00
Steven Johnson
9efa35156a Add NJ_USES_QUAD_CONSTANTS mode (and i386 implementation) to allow for faster float constants on CPUs without useful 64-bit immediates. Instead of allocating stack space for the constants (and filling them in via move-immediates), allocate data space for them and embed literal pointers into the code stream. (r=edwsmith, r=nnethercote, bug=533546)
--HG--
extra : convert_revision : 42048199209f5614ee62adaa25cc6bf75821911a
2010-01-05 15:28:40 -08:00
Ginn Chen
b26ece67a0 Bug 537371 [x86_64]nanojit failed to compile with Sun Studio r=gal 2010-01-06 15:25:56 +08:00
Ginn Chen
01e2876566 Bug 535765 debug build Firefox failed to start on Solaris r=gal 2010-01-06 15:24:30 +08:00
Nicholas Nethercote
1022818501 Bug 520714 - nanojit: distinguish 64-bit int and float loads/stores. r=gal,rreitmai.
--HG--
extra : convert_revision : a19809f7ba60b4381b77b84363bebf0ff7cf9629
2010-01-05 14:03:49 +11:00