Commit Graph

919 Commits

Author SHA1 Message Date
Edwin Smith
8e9b1ee383 CodeAlloc changes to eliminate dependency on 4K system page size (bug 545295 r=edwsmith+)
--HG--
extra : convert_revision : f1734da5dae9a73cf52692fc8dd72c25d0f12a14
2010-04-05 16:17:01 -04:00
Edwin Smith
e802b90f31 Patch to clean up MSVC analysis warnings (bug 551690, r=edwsmith+ nnethercote+)
(pushing for Bill Maddox)
The following appear to be false positives.  The patch adjusts the code in a
meaning-preserving way such that the analysis warnings no longer appear.  My
best guess is that the analysis does not take into account the discretenes of
integer arithmetic in analyzing relational operators.

nanojit/Assembler.cpp(2004)
nanojit/Nativei386.cpp(1214)

Here, an outer definition is indeed hidden, but it is dead at this point, and
the code is correct as it stands.  Stylistically, however, the hiding should be
avoided, as in the patch.

nanojit\LIR.cpp(671)

--HG--
extra : convert_revision : fdff643a3c793c57150d0e8b48bc1f12383d939e
2010-04-05 11:25:55 -04:00
Nicholas Nethercote
a0e29d2b63 Fix ARM bustage for bug 555633. r=me.
--HG--
extra : convert_revision : be4f098b6cb32f2c2787ef2842402f2b39e0925d
2010-03-31 15:14:28 -07:00
Nicholas Nethercote
d701093eb8 Bug 555633 - nanojit: rename opcodes in LIRopcode.tbl. r=edwsmith.
--HG--
extra : convert_revision : e09eec330c04cfbf3da745635c67f2fc3fee6c28
2010-03-31 15:07:50 -07:00
Nicholas Nethercote
1125c9c311 Bug 541030 - nanojit: isconstq() should only succeed for 64-bit integer. r=rreitmai.
--HG--
extra : convert_revision : b8fea2e57673f9f2d4e864870d73ee294cabd4bd
2010-03-28 16:49:42 -07:00
Ignore Bukanov
3b3376853d Bug 555338 - preprocessor define to tell when rdtsc is available. r=nnethercote.
--HG--
extra : convert_revision : 673444e26f4810744ff252ee113fd7f0f3d5a7c9
2010-03-28 15:31:53 -07:00
Edwin Smith
df5c06910a Cleaned up trailing whitespace (r=me)
--HG--
extra : convert_revision : 6ee8bcd6813ffe98061b8d09317f58138bb41bb7
2010-03-24 20:41:39 -04:00
Edwin Smith
c9c6e235ea replace AvmAssert with NanoAssert everywhere (bug 554549 r=nnethercote+)
Also, remove unused AvmAssert, AvmAssertMsg, and AvmDebugLog from nanojit/avmplus.h

--HG--
extra : convert_revision : aeb486b1d227244e42a9dbc7a9f0a5ba9d84b67b
2010-03-24 20:35:15 -04:00
Edwin Smith
b37a609658 Remove now-dead LIR_iaddp/qaddp/addp (bug 542016, r=nnethercote+)
Simplified the code in CseFilter::ins2() as well since addp was
the only non-cse-able binary operator.

--HG--
extra : convert_revision : 0f21522488fc4a7e3efeaad5c77b6bb96ca0f0fc
2010-03-24 20:08:06 -04:00
Nicholas Nethercote
70b954205a Bug 553518 - nanojit: avoid 'test r,r' where possible on i386. r=edwsmith.
--HG--
extra : convert_revision : ec4d959e1cc9337cf30a08bf75b246516a1728a4
2010-03-24 15:34:34 -07:00
Nicholas Nethercote
fac2089f95 Follow-up assertion failure fix for bug 517910. r=me.
--HG--
extra : convert_revision : dfaf13aa4c5928bcd871ac7f279657c87de7b0f9
2010-03-23 15:49:12 -07:00
Nicholas Nethercote
1b27c99df0 Bug 517910 - NJ: add more alias-set annotations to LIR so as to improve CSEing of loads. r=edwsmith.
--HG--
extra : convert_revision : 26cbea5a2acdcc6156b4a72b0c40c0d675f69571
2010-03-23 15:05:47 -07:00
Edwin Smith
02b8d2a422 Fix PPC bustage for bug 507089 (r=me)
--HG--
extra : convert_revision : 0a31a14aba7746483fe8ff6b8ab287e1784de846
2010-03-23 15:09:52 -04:00
Nicholas Nethercote
db95288852 ARM bustage fix for bug 507089. r=me.
--HG--
extra : convert_revision : d04d39fadbb5f075d4f60fc7b73d106a39331453
2010-03-22 12:18:47 -07:00
Jeff Walden
76ae0775d7 Fix ARM-only typo in nanojit merge (NB: NOT being simultaneously merged to nanojit-central out of expediency). r=sparky 2010-03-22 11:48:22 -07:00
Nicholas Nethercote
070e390dac Bug 507089 - TM/nanojit: prepare to add get/set methods for CallInfo::_argtypes. r=edwsmith.
--HG--
extra : convert_revision : 55f02d7976752940a9f328d440fb6601ee2dc9f4
2010-03-21 19:47:02 -07:00
Nicholas Nethercote
5d4adc4b29 Bug 552374 - nanojit: clean up asm_spill() and friends a little. r=edwsmith.
--HG--
extra : convert_revision : 5806c6f3bf1257fc3142f5eb8718e01071bcbb35
2010-03-21 15:08:03 -07:00
Nicholas Nethercote
3c2a94a6ba Another Windows bustage fix for bug 531687.
--HG--
extra : convert_revision : 6cb0cf13894a89a41916baa0b45e12b86267c6dc
2010-03-18 11:36:21 +11:00
Nicholas Nethercote
2a1378699e Windows bustage fix for bug 531687.
--HG--
extra : convert_revision : 9fb3875862d0d0f8f1c6ffb84566c0bd73a66a46
2010-03-18 11:28:32 +11:00
Nicholas Nethercote
7e445d4a01 Bug 531687 - Duplicate node names in TMFLAGS=aftersf printout. r=edwsmith.
--HG--
extra : convert_revision : c844bd17e4a5e66b7913bb534e298088bee3e528
2010-03-18 10:42:30 +11:00
Nicholas Nethercote
5ce0cdcf01 Bug 534310 - nanojit: split asm_quad() into asm_immq() and asm_immf(). r=edwsmith.
--HG--
extra : convert_revision : 04a7a273ac34034a84391f0e9b965220f19200be
2010-03-18 10:21:02 +11:00
Nicholas Nethercote
8d4664b75b Bug 552614 - nanojit: fix AR::Iter::next(). r=rreitmai.
--HG--
extra : convert_revision : 4dd75fe044cc599088bb52ebce8a880528bc05b4
2010-03-18 09:53:06 +11:00
Nicholas Nethercote
8a8418a591 Fix mochitest failures caused by the patch for bug 498193. r=me.
--HG--
extra : convert_revision : c99da00233629d7184224a0a3a8129e248bb86fe
2010-03-17 09:04:22 +11:00
Edwin Smith
8ab25db2b6 Redo X64 asm_fneg to only allocate XMM regs, fix indirect calls, and revert asm_restore to old logic (bug 535706 r=nnethercote+)
The code for indirect calls needed shuffling; we must freeResourcesOf() before
assigning the call address to a register.  The old code was just getting lucky,
and the regstate fixes tickled the latent bug.

asm_restore() can be stricter once we eliminate all cases where an F64 instruction
can be assigned to a GPR.  The only known remaining case is asm_quad which is used
for both LIR_float and LIR_quad, which should be fixed by bug 534310.

--HG--
extra : convert_revision : e46657bf61cade04961da7e8abbb004385aaad7b
2010-03-15 21:52:41 -04:00
Nicholas Nethercote
ba12853b48 Bug 498193 - nanojit: inline all LirWriter functions. r=gal.
--HG--
extra : convert_revision : 63d6441f969c16fe5c963c5c0c500bef4ce051bc
2010-03-16 12:05:43 +11:00
Nicholas Nethercote
05202d0996 Don't use DebugBreak() in NanoAssertFail(), it causes Tinderbox problems on Windows. No bug, r=me.
--HG--
extra : convert_revision : 01a6ad4362eedd1e25ec41d050a3e6bfaeaf5707
2010-03-15 16:23:30 +11:00
Nicholas Nethercote
1476fbf23e Bug 551876 - nanojit: fix avmplus.h warnings. r=edwsmith.
--HG--
extra : convert_revision : 9a999bda712986c15b4590e57029b580621ffcf9
2010-03-15 12:30:32 +11:00
Nicholas Nethercote
5eddcbaa96 Bug 551039 - nanojit: account for eight-byte alignment of stack in StackFilter. r=gal.
--HG--
extra : convert_revision : 73a17dbefb346ec569b86ae5f28a56a06297181d
2010-03-11 14:59:45 -08:00
Nicholas Nethercote
62c45aa35a Fix another WinNT compiler warning. No bug, r=me.
--HG--
extra : convert_revision : ddc0ce7b1670cbbad7aa4505696a71c3613e3324
2010-03-06 09:14:31 +11:00
Nicholas Nethercote
19e00905b7 Fix WinNT compiler warnings. No bug, r=me.
--HG--
extra : convert_revision : de5746d49dcf5073c9f37c35b2a810c7f77bc8d0
2010-03-05 17:44:28 +11:00
Rick Reitmaier
7c80afcc4e Bug 546660 - Clean up mess around LINUX, AVMPLUS_LINUX, __linux__ (r+nnethercote) [kpalacz]
Gcc defines linux on linux, other compilers are supported to the
extent that they emulate gcc's behavior

--HG--
extra : convert_revision : 6bb42c345395fb0a6f779723157f5e43d6669016
2010-03-04 12:35:45 -08:00
Leon Sha<leon.sha@sun.com>
3ef7ef245b Bug 547232 - solaris nanojit compiler error LIR_qcmov is not defined. r=stejohns
--HG--
extra : convert_revision : 3b1d24a51ce4d9fd3fb37ca5d2394f4816763a23
2010-03-02 12:24:17 +08:00
Nicholas Nethercote
e9aaac654a Bug 545274 - nanojit: start adding alias info to loads/stores/calls. r=rreitmai.
--HG--
extra : convert_revision : 4adbf1bbb16cf4751b46a49a4f9c474c0ab0a3b9
2010-03-02 12:43:20 +11:00
Nicholas Nethercote
96d5cd60a5 Bustage fix for Windows. No bug, r=me.
--HG--
extra : convert_revision : 4901be8fd3260bb90b90fda989f624cda7401032
2010-03-02 11:18:48 +11:00
Nicholas Nethercote
10443de653 Bug 535705 - nanojit: finish regstate update fixes for i386. r=edwsmith.
--HG--
extra : convert_revision : 05949faa5b451d5452c9b5eb95296a53b555dda1
2010-03-01 14:57:19 +11:00
Nicholas Nethercote
764bc7aaa8 Bug 542932 - nanojit: make opcode range checks safer. r=stejohns.
--HG--
extra : convert_revision : a5291bc7b0cef4f41f4180db6388edebdbb4c208
2010-03-01 12:02:01 +11:00
Nicholas Nethercote
23edcdcbce Bug 535706 - nanojit: fix regstate updates for X64. r=edwsmith.
--HG--
extra : convert_revision : 6fb5f71fba861a333e17de644fe49de60bb7a1bd
2010-03-01 09:46:17 +11:00
Nicholas Nethercote
99f1ec6fce Bug 531326 - nanojit: improve int32 and int64 constant generation in X64 backend. r=rreitmai.
--HG--
extra : convert_revision : 3fa60904a28ec82b54d7e8a9e9fac6c29e0a5324
2010-02-20 07:31:41 +11:00
Nicholas Nethercote
a361abc6fa Bug 539874 - nanojit: remove LIR_ov. r=edwsmith, Jacob.Bramley.
--HG--
extra : convert_revision : eb5f9b4138530e15b3ffd478071bf98bb7495405
2010-02-19 15:04:55 +11:00
Nicholas Nethercote
22610a9675 Temporarily disable an assertion; bug 547063 has details. r=me.
--HG--
extra : convert_revision : 0eb90b867a1cb9f998cdeaa9b67c984374f8fdb9
2010-02-19 08:41:14 +11:00
Steven Johnson
b965c79326 Bug 546765 - njcpudetect.h needs love for OSX-on-ARM (r=nnethercote)
--HG--
extra : convert_revision : c58036240635ccce9d084c94c6f2aa23be32602d
2010-02-17 16:19:53 -08:00
Nicholas Nethercote
33d5dd6013 Follow-up for bug 542133: fix ARMv5 bustage
--HG--
extra : convert_revision : 5a37374d04fea35b0167d057310aee6d3cadca16
2010-02-17 14:53:33 +11:00
Nicholas Nethercote
4cda0a88e8 Temporarily comment out assertion that is failing bogusly to fix WinMo builds; will be overwritten by the next NJ-to-TM merge, so we need to fix MSVC's compile-time ARM arch detection in the meantime. r=me. 2010-02-18 10:41:48 +11:00
Nicholas Nethercote
ddcc50350c Follow-up for bug 542133: fix ARM bustage.
--HG--
extra : convert_revision : c3de98b9ee6eb052f7fda330172cc740f941605c
2010-02-17 13:36:29 +11:00
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
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