Commit Graph

16979 Commits

Author SHA1 Message Date
Jeff Walden
4b7a8f4d52 Rearrange jsbuiltins.h's list of traceable natives by file. No bug, r=sparky 2010-01-26 18:20:04 -08:00
Igor Bukanov
7df48a8a56 bug 541790 - do not purge again if the GC restarts. r=jorendorf 2010-01-26 22:27:09 +03:00
Luke Wagner
aaded1d133 Fix ARM bustage, part deux 2010-01-26 04:41:00 -08:00
Nicholas Nethercote
6c8c41a7ef Bug 541886 - nanojit: move compile() into class Assembler (TM-specific part). r=dvander. 2010-01-26 14:06:13 +11:00
Nicholas Nethercote
c7b9267ea5 Update nanojit-import-rev stamp. 2010-01-26 13:48:19 +11:00
Nicholas Nethercote
5f5e0c1dd8 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
06b1173f2c 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
e67661965a 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
c9f452bb00 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
8c84e53218 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
Vladimir Vukicevic
bd48cf44f9 b=533659; tracing support for JS typed array types; r=gal 2010-01-25 17:06:36 -08:00
Graydon Hoare
9cd8ae052a Bug 526074 - handle nothing-to-import case in import script, r=gal. 2010-01-25 10:32:33 -08:00
Nicholas Nethercote
4436e387e5 Update nanojit-import-rev stamp. 2010-01-25 14:03:02 +11:00
Nicholas Nethercote
8441743c05 Bug 538924 - nanojit: rework reservations. r=edwsmith.
--HG--
extra : convert_revision : 51a78a175b1074c933323e0bf24d6f64b5c6c35d
2010-01-25 10:39:36 +11:00
Nicholas Nethercote
1fe12afbf2 ARM bustage fix for bug 540351.
--HG--
extra : convert_revision : 4a6d8a20be25e523d261f1754b0be90619fc0554
2010-01-25 09:44:47 +11:00
Nicholas Nethercote
f61071661a Bug 540351 - nanojit: refactor hint() and registerAlloc(). r=rreitmai.
--HG--
extra : convert_revision : fa4f34a51239317d312b9388f2eb9ca2631b463e
2010-01-25 09:40:11 +11:00
Nicholas Nethercote
cb498f29be Bug 534313 - nanojit: split isQuad() into isI64() + isF64() + is64() (TM-specific part). r=dvander. 2010-01-25 08:50:38 +11:00
Nicholas Nethercote
06a18d9d27 Update nanojit-import-rev stamp. 2010-01-25 08:36:49 +11:00
Nicholas Nethercote
2a71b75276 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
ec4ef37377 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
c2ecfcf6d8 (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
Igor Bukanov
5dbf75afbb bug 538275 - ClaimTitle cleanup. r=brendan, jorendorff 2010-01-24 14:15:38 +03:00
Luke Wagner
c850fa4c7b Fix ARM bustage 2010-01-22 16:15:24 -08:00
Luke Wagner
a9ec05dc01 Bug 541452 - put jstracer.cpp in namespace js (r=jorendorff) 2010-01-22 14:49:18 -08:00
Brendan Eich
435e1367d1 Bug 541455 - Do not drop "mumble"; would-be directives in the parser, let them be completion values (or useless expressions for the emitter to cull) (r=jimb). 2010-01-22 12:17:13 -08:00
Luke Wagner
88037b9dce Bug 458421 - dead stuff in spidermonkey (r=jorendorff) 2010-01-22 11:52:17 -08:00
David Mandelin
eac866de48 Bug 541239: don't use upvar for variables in eval if they cross a generator, r=mrbkap 2010-01-21 17:06:11 -08:00
Nicholas Nethercote
64f1f32334 Bustage fix for bug 463137: use insBranch() instead of ins2() to insert LIR_j. r=me. 2010-01-22 16:20:42 +11:00
Nicholas Nethercote
bd4e693335 Bug 463137 - TM/nanojit: type-check LIR (TM-specific part). r=jseward. 2010-01-22 13:41:24 +11:00
Nicholas Nethercote
3638f70015 Update nanojit-import-rev stamp. 2010-01-22 13:38:10 +11:00
Nicholas Nethercote
9b55a0362a 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
0e27f635af Bustage fixes.
--HG--
extra : convert_revision : 7befbe058634dc37e2fcd614969fd92c64507096
2010-01-22 10:21:29 +11:00
Nicholas Nethercote
b4c8968552 Bug 463137 - TM/nanojit: type-check LIR. r=jseward,rreitmai.
--HG--
extra : convert_revision : 162182c5cd78d5366c1ca3ea2ca9b11f40115942
2010-01-22 10:10:59 +11:00
David Mandelin
aeac2f7254 Bug 540243: don't use JSOP_GETUPVAR if def-use chain crosses a generator lexical scope, r=mrbkap 2010-01-21 13:27:36 -08:00
David Mandelin
cd46115783 Bug 540528: don't reset scopeChain JSStackFrame when leaving trace if it was already set by interpreter, r=mrbkap 2010-01-19 19:06:40 -08:00
Nicholas Nethercote
a9676e116f Update nanojit-import-rev stamp. 2010-01-22 08:49:51 +11:00
Nicholas Nethercote
3e6f0b39c9 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
5419fa09ea Update nanojit-import-rev stamp (by hand, due to update-nanojit difficulties). 2010-01-22 08:44:35 +11:00
Nicholas Nethercote
ffbe1ee005 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
David Mandelin
49a3366f24 Bug 540136: remove erroneously duplicated line of code from GetFromClosure, r=dvander 2010-01-21 11:08:08 -08:00
Nicholas Nethercote
48e1a3896e Avoid bogus uninit variable warning. r=gcc. 2010-01-21 13:12:02 +11:00
Nicholas Nethercote
ba7244879c Bug 539629 - lirasm: don't have two ways of running the tests (TM-specific part). r=graydon. 2010-01-21 13:07:59 +11:00
Nicholas Nethercote
bbb120c6c0 Update nanojit-import-rev stamp. 2010-01-21 13:06:10 +11:00
Nicholas Nethercote
0f8961add0 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
3275cd59d5 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
96964bf218 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
8101f0e3d2 Bug 540774: "Assertion failure: top < StackDepth(ss->printer->script)" decompiling upvar (r=jorendorff). 2010-01-20 16:28:18 -08:00
Jason Orendorff
aa87db6fa2 Bug 538440 - We never jit DOM workers. r=mrbkap. 2010-01-20 14:54:34 -06:00
Nicholas Nethercote
a4e8082e48 Update nanojit-import-rev stamp (manually, because I stuffed things up). 2010-01-20 08:54:30 +11:00
Nicholas Nethercote
25a6d72d72 Bug 540522 - nanojit: re-enable StackFilter(!). r=stejohns.
--HG--
extra : convert_revision : f1f968ac0f1498b5d4bbd32f637fb4617f45d501
2010-01-20 08:30:49 +11:00
Jacek Caban
8ced428d1e 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
26dd4d8a25 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
516d8f4cd8 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
2a76bea608 Oops, back out changeset af515d48bdcf, should have gone to nanojit-central instead. :-\ 2010-01-18 20:27:43 -05:00
Jacek Caban
9fcf0e9afb 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
db350c714e Bug 539379 - TM: Crash [@ ExecuteTrace] or [@ ExecuteTree] (TM-specific test case). r=edwsmith. 2010-01-18 09:48:39 +11:00
Nicholas Nethercote
132d288294 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
178ee2177d Update nanojit-import-rev stamp. 2010-01-18 09:41:06 +11:00
Nicholas Nethercote
df9779e7cc 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
50deab113c Bug 539379 - TM: Crash [@ ExecuteTrace] or [@ ExecuteTree]. r=edwsmith.
--HG--
extra : convert_revision : a5115ee971c8496182e9b4f6847ad91619b4a585
2010-01-15 15:07:32 +11:00
Nicholas Nethercote
9a054fb60d WinNT bustage fix for bug 538538.
--HG--
extra : convert_revision : f2f5796b620ed75ed33258163590f4d4a884a200
2010-01-15 10:05:44 +11:00
Nicholas Nethercote
325795e9d3 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
08bfb82a73 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
f82a959134 Missed S14 -> FpSingleScratch renaming
--HG--
extra : convert_revision : 0628e6475f1f08e91a9113e0174230d38272f4e5
2010-01-13 18:10:28 -08:00
Vladimir Vukicevic
6bcacd7770 b=523251; add LIR_f2i; r=njn,edwsmith
--HG--
extra : convert_revision : 95e6284a8725404dfb1f2685e1ee5efdc334d169
2010-01-13 14:40:35 -08:00
Steven Johnson
b9d60d299a 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
ad305a8000 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
815ed29173 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
bbd6af9796 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
d4d7f799dd Fixed x64 assertion in tracing JSOP_LENGTH on arguments (bug 539965, r=dmandelin). 2010-01-15 12:05:01 -08:00
David Mandelin
b868708ae4 Bug 495331: trace JSOP_LAMBDA for non-heavyweight, non-null closures, r=jorendorff,dvander 2010-01-15 11:32:14 -08:00
David Mandelin
54c1e380e8 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
4101ad804e 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
6b90343706 Bug 539553 - Correctness regression on the r-tree benchmark. r=dmandelin. 2010-01-14 18:23:05 -06:00
Jason Orendorff
649d908361 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
13c2fb7749 No bug: fixing manifest bustage introduced in 7d7eb566cd77, no_r=me 2010-01-14 16:05:29 -08:00
Brendan Eich
7d3e7ed2cc Another followup for 536564, assertion fix. 2010-01-14 15:32:29 -08:00
Brendan Eich
9ab262695d Fast followup fix for thinko (536564, r=jorendorff). 2010-01-14 14:22:00 -08:00
Brendan Eich
78e7916894 Skip regress-324278.js now, revert it to prev version (with comment tweak). 2010-01-14 13:28:32 -08:00
Brendan Eich
93805966dd 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
5c08832439 bug 528200 - replacing GC thing flags with a mark bitmap 2010-01-14 11:27:32 +03:00
Jason Orendorff
69e4bd38f4 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
6751e20229 Bug 538482 - |case null| deoptimizes switch statements to use condswitch. r=jorendorff 2010-01-07 17:22:22 -06:00
Vladimir Vukicevic
bbd3d40066 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
e34c9b617e b=523251; add LIR_f2i; r=gal 2010-01-11 21:41:20 -08:00
Nicholas Nethercote
ed82132f80 Update nanojit-import-rev stamp. 2010-01-12 15:30:15 +11:00
Nicholas Nethercote
ebdd2dbd3c 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
1dcde024a1 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
eec8af2652 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
8bbbbe1dd2 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
cc1458485e 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
75bbae7136 Whitespace hygene (r=me)
--HG--
extra : convert_revision : f5f333d75636ed9e4c7869bdcf6aaa69beb35a2e
2010-01-07 13:05:33 -05:00
Nicholas Nethercote
1d3310a087 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
895c1fa2a0 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
Blake Kaplan
3973a05c6d Bustage fix -- We can't assert that constant folding worked. 2010-01-11 18:52:44 -08:00
Brendan Eich
780179914c Bug 538593 - guardClass always does a JS_snprintf even though it usually doesn't use the result (r=dvander). 2010-01-11 18:48:08 -08:00
David Mandelin
85dd455a8b Bug 538314: add ad hoc closure test suite to trace-tests, r=jorendorff 2010-01-11 18:18:42 -08:00
David Mandelin
8ce970600a Backed out changeset 70854fa518da -- toolkit/ files were changed by accident 2010-01-11 18:15:17 -08:00
David Mandelin
b668591309 BUg 538314: add ad hoc closure test suite to trace-tests, r=jorendorff 2010-01-07 13:14:20 -08:00
Vladimir Vukicevic
70bc8745fc No bug. Fix typed array tests; rs=brendan 2010-01-11 17:21:33 -08:00