Commit Graph

37074 Commits

Author SHA1 Message Date
Nicholas Nethercote
59368f63e2 Bug 539629 - lirasm: don't have two ways of running the tests (NJ-specific part). r=graydon.
--HG--
extra : convert_revision : c41f7c86b3cd3c2019189f941daa47f311959789
2010-01-21 12:59:56 +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
Jeff Walden
9d7bbdf810 Bug 539488 - |var| statements for existing, read-only/permanent properties should not be errors. r=jorendorff
--HG--
extra : rebase_source : b052779036d0690b92c63e37412b7ae1ebabf4eb
2010-01-20 13:58:36 -08:00
Brendan Eich
92a357e272 Bug 540774: "Assertion failure: top < StackDepth(ss->printer->script)" decompiling upvar (r=jorendorff). 2010-01-20 16:28:18 -08:00
Jason Orendorff
0f530fd289 Bug 538440 - We never jit DOM workers. r=mrbkap. 2010-01-20 14:54:34 -06:00
Nicholas Nethercote
c49922ce68 Update nanojit-import-rev stamp (manually, because I stuffed things up). 2010-01-20 08:54:30 +11: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
Nicholas Nethercote
a7a593136b Bug 538538 follow-up: random-opt.{in,out} weren't added. r=graydon,stejohns.
--HG--
extra : convert_revision : 874d96dc44813f4141e232ea98fa3f4b2d6474fc
2010-01-18 16:34:23 +11: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
a6baa84f77 Bug 539379 - TM: Crash [@ ExecuteTrace] or [@ ExecuteTree] (TM-specific test case). r=edwsmith. 2010-01-18 09:48:39 +11:00
Nicholas Nethercote
9ecc414758 Bug 538538 - lirasm: don't run the optimizers, except when using --random (TM-specific part). r=graydon. 2010-01-18 09:47:31 +11:00
Nicholas Nethercote
d776d4f852 Update nanojit-import-rev stamp. 2010-01-18 09:41:06 +11: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
Nicholas Nethercote
343b23f126 Bug 536293 - nanojit: use a bigger --random size with 'make check' (follow-up). r=me.
--HG--
extra : convert_revision : 3f09056fb0a7e3c7c6ae65eba7d58d095bd0c059
2010-01-12 16:34:41 +11:00
Gregor Wagner
470074111f Gregor Wagner <anygregor@gmail.com> Bug 533450: js_GetStringBytes ignore js_CStringsAreUTF8 when JSString::isUnitString r=brendan 2010-01-15 15:58:33 -08:00
David Anderson
f7e545e0f1 Fixed x64 assertion in tracing JSOP_LENGTH on arguments (bug 539965, r=dmandelin). 2010-01-15 12:05:01 -08:00
David Mandelin
9600769682 Bug 495331: trace JSOP_LAMBDA for non-heavyweight, non-null closures, r=jorendorff,dvander 2010-01-15 11:32:14 -08:00
David Mandelin
c100594692 Bug 532689: guard that index is in range for arguments[k] on trace, r=bz 2010-01-14 18:48:17 -08:00
David Mandelin
f75d33789a Bug 539553: adding one more test case for the new on-trace arguments.length LIR, no_r=me 2010-01-14 18:12:54 -08:00
Jason Orendorff
a37f4974e2 Bug 539553 - Correctness regression on the r-tree benchmark. r=dmandelin. 2010-01-14 18:23:05 -06:00
Jason Orendorff
dbda92dde3 Bug 533876 - In JSScope::{add,put}Property, disregard the SPROP_IN_DICTIONARY bit of the flags. r=brendan.
--HG--
rename : js/src/tests/js1_8_1/regress/browser.js => js/src/tests/js1_8_5/regress/browser.js
rename : js/src/tests/js1_8_1/regress/shell.js => js/src/tests/js1_8_5/regress/shell.js
extra : rebase_source : f86f464a91d8f560a1034e45fe23a5bc4c84d9f5
2010-01-14 17:20:27 -06:00
David Mandelin
588bfec9a5 No bug: fixing manifest bustage introduced in 7d7eb566cd77, no_r=me 2010-01-14 16:05:29 -08:00
Brendan Eich
281fe2cb29 Another followup for 536564, assertion fix. 2010-01-14 15:32:29 -08:00
Brendan Eich
7d53217541 Fast followup fix for thinko (536564, r=jorendorff). 2010-01-14 14:22:00 -08:00
Brendan Eich
495f36adfc Skip regress-324278.js now, revert it to prev version (with comment tweak). 2010-01-14 13:28:32 -08:00
Brendan Eich
983aa690e9 Analyze module pattern and private-statics pattern in order to despecialize from methods to slots/sprops (536564, r=jorendorff). 2010-01-14 09:33:14 -08:00
Igor Bukanov
702de8885c bug 528200 - replacing GC thing flags with a mark bitmap 2010-01-14 11:27:32 +03:00
Jason Orendorff
eb646c48c1 Fix DumpSubtree so it doesn't assert. r=nobody, DEBUG-only JS_PROPTREE_DUMPFILE-only code. 2010-01-13 15:33:55 -06:00
Jeff Walden
c6e83b6125 Bug 538482 - |case null| deoptimizes switch statements to use condswitch. r=jorendorff 2010-01-07 17:22:22 -06:00
Jeff Walden
27f822283d Update nanojit-import-rev stamp.
--HG--
extra : rebase_source : 6392bfcfa6746a8f36bcf2ee7b0b2a516a58ac36
2010-01-08 12:04:48 -06:00
Steven Johnson
f8b93aa061 nanojit/LIR.cpp: LIR_st32f is missing from live() (r=rreitmai,bug=538494)
--HG--
extra : rebase_source : c433a80b05da0600ea4cc1b7ff2f04dfe8bca16a
2010-01-07 17:04:30 -08:00
Steven Johnson
0aac1716b7 Modify nanojit::live, expose ReverseLister, add some options to VerboseWriter (r=edwsmith,graydon,bug=538000)
--HG--
extra : rebase_source : ad86cba5aadd08f820423d0fdd485f8f56491bd1
2010-01-07 16:41:42 -08:00
Edwin Smith
f891912fed Whitespace hygene (r=me)
--HG--
extra : rebase_source : 2711b295a732202b9134f4fa49432d32b622ab4d
2010-01-07 13:05:33 -05:00
Nicholas Nethercote
e6e15d358b Bug 538049 - nanojit: problem with qjoin in ExprFilter. r=stejohns.
--HG--
extra : rebase_source : 7660bd9e2c2ab88b933a1a7be3e0a3acdaa4d97f
2010-01-06 11:43:19 +11:00
Steven Johnson
2ed4792608 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 : rebase_source : 5166a457793f8d99822071b856c3213b23b725ad
2010-01-05 15:28:40 -08: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
65deadfefa Update nanojit-import-rev stamp. 2010-01-12 15:30:15 +11: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