Commit Graph

1444 Commits

Author SHA1 Message Date
Andreas Gal
13ebda54e6 LirNameMap gets large over time and searching it with binary search is slow (475127, r=shaver). 2009-01-26 18:15:39 -08:00
Robert Sayre
cd3999104d Merge m-c to tm. 2009-01-26 13:54:59 -08:00
Benjamin Smedberg
7ee0b42cb8 Bug 474996 - JS_REQUIRES_STACK violation in TraceRecorder::hasIteratorMethod, r=jorendorff 2009-01-26 14:26:24 -05:00
Robert Sayre
b5cd4ca3dc Backout c0b2c82a524e. 2009-01-25 22:36:46 -08:00
Andreas Gal
e481ee3eb8 Only set onTrace flag while running native code, not when recording (474771, r=brendan). 2009-01-25 20:24:25 -08:00
David Anderson
d1ac280790 Fixed multitrees assert regression from bug 469044 (bug 474935, r=gal). 2009-01-23 22:24:58 -05:00
Brendan Eich
c13882a292 Bug 470187 - TM: "Assertion failure: entry->kpc == (jsbytecode*) atoms[index]" with valueOf, regexp (r=jorendorff). 2009-01-23 14:33:42 -08:00
Andreas Gal
184fc63cd1 Backout bug 468782. Confirmed to leak. 2009-01-25 16:38:31 -08:00
Graydon Hoare
da2b8f5507 Bug 472180 - Move fragment hit and blacklist counts to hashtable in oracle, r=gal. 2009-01-23 14:24:50 -08:00
Jason Orendorff
c9961fe054 Bug 468782 - TM: js_FastValueToIterator and js_FastCallIteratorNext can reenter. r=brendan. Note that this changeset alone does not fix the bug; an upcoming patch in bug 462027 completes the fix. 2009-01-22 16:39:26 -06:00
Andreas Gal
0feab81363 Backout bug 475048, it causes mochitests to hang. 2009-01-25 15:26:52 -08:00
Andreas Gal
8a264cf6ce Only emit alias check in for *PROP if the object's shape matches the global object's shape (475048, r=brendan, relanding). 2009-01-23 10:41:44 -08:00
Andreas Gal
9460746d1d Fixed correctness and leak regression from bug 469044 landing (bug 474769, r=gal, relanding). 2009-01-25 09:05:21 -08:00
Andreas Gal
570f41d3b7 Fix incorrect reliance on the identity of the global object on trace (474888, r=brendan, relanding). 2009-01-25 09:04:03 -08:00
Andreas Gal
1d277bc633 Backout all patches since last mozilla-central merge (Thu Jan 22 19:14:02 2009 -500 by sayrer). 2009-01-25 02:58:22 -08:00
Andreas Gal
b94ebfcf08 Merge. 2009-01-23 20:22:41 -08:00
Andreas Gal
1baff988de Only set onTrace flag while running native code, not when recording (474771, r=brendan). 2009-01-23 20:22:23 -08:00
David Anderson
5554e7d6ae Fixed multitrees assert regression from bug 469044 (bug 474935, r=gal). 2009-01-23 22:24:58 -05:00
Andreas Gal
610cc42b01 Merge. 2009-01-23 16:57:04 -08:00
Andreas Gal
a9682f9dff Backed out changeset 05cbbc9f1ae2, which backed out bug 24106 (so this is re-landing 24106). 2009-01-23 16:56:38 -08:00
Andreas Gal
4f323318a5 Merge. 2009-01-23 15:16:03 -08:00
Andreas Gal
1b154f72a6 Merge. 2009-01-23 15:15:34 -08:00
Andreas Gal
920ecc2113 Backed out changeset 17663da1b840 (bug 462027). 2009-01-23 15:14:46 -08:00
Andreas Gal
347e44c31a Backed out changeset 9fe03078c765 (bug 475048). 2009-01-23 15:13:57 -08:00
Brendan Eich
94412bc214 Bug 470187 - TM: "Assertion failure: entry->kpc == (jsbytecode*) atoms[index]" with valueOf, regexp (r=jorendorff). 2009-01-23 14:33:42 -08:00
Graydon Hoare
0b98b2e8cb Bug 472180 - Move fragment hit and blacklist counts to hashtable in oracle, r=gal. 2009-01-23 14:24:50 -08:00
Andreas Gal
c7f9743a3d Only emit alias check in for *PROP if the object's shape matches the global object's shape (475048, r=brendan). 2009-01-23 10:41:44 -08:00
David Anderson
dc86ddce2f Fixed correctness and leak regression from bug 469044 landing (bug 474769, r=gal). 2009-01-22 22:40:59 -05:00
Andreas Gal
d940283d33 Fix incorrect reliance on the identity of the global object on trace (474888, r=brendan). 2009-01-22 17:58:18 -08:00
Jason Orendorff
9ff9140ae0 Bug 468782 - TM: js_FastValueToIterator and js_FastCallIteratorNext can reenter. r=brendan. Note that this changeset alone does not fix the bug; an upcoming patch in bug 462027 completes the fix.
--HG--
extra : rebase_source : 585d590aace159914629a786489b0883d23cf2a8
2009-01-22 16:39:26 -06:00
Andreas Gal
6e5593d5b7 Make sure vpnum is not used incorrectly in the future (follow-up for 469044, r=shaver). 2009-01-22 12:02:17 -08:00
David Anderson
b3ff178462 Specialize trees to global types, so global type instability does not flush the cache (bug 469044, r=gal,brendan). 2009-01-22 01:45:19 -05:00
David Mandelin
88e1a66b75 Bug 465784: Trace cache OOM crash due to misplaced OOM check 2009-01-21 11:36:52 -08:00
Graydon Hoare
4a62a31460 Bug 470353 - Limit skip() allocations in tracer, r=gal. 2009-01-16 14:43:15 -08:00
Brendan Eich
f4ec0e5fa0 Warning policing (please check and avoid adding). 2009-01-25 13:59:59 -08:00
David Mandelin
fa9fb77bda Bug 472440: JS tracing crash, typo in record_JSOP_CALL_GVAR, r=mrbkap 2009-01-14 11:42:35 -08:00
Igor Bukanov
c032867e33 bug 472702 - using watchdog thread in js shell to trigger operation callback 2009-01-14 18:23:51 +01:00
Andreas Gal
99c4876ef2 Extend tree on shape mismatch (473277, r=danderson). 2009-01-12 19:49:03 -08:00
Jeff Walden
ec7f94e0da Bug 472599 - TM: "Assertion failure: JSVAL_IS_INT(STOBJ_GET_SLOT(callee_obj, JSSLOT_PRIVATE))" with __proto__, call, toString. r=gal 2009-01-12 13:10:09 -08:00
Jeff Walden
136daf85e6 Bug 484495 - new String(obj) asserts when tracing. r=brendan, r=gal 2009-03-22 12:49:15 -07:00
Igor Bukanov
f28d80b499 Backed out changeset e117c22cc1d1 - the landed patch for bug 437325 has a shutdown leak. 2009-03-22 10:15:27 +01:00
Igor Bukanov
a61176553e bug 437325 - JSThread is no longer shared between JSRuntime instances. r=brendan 2009-03-22 10:07:14 +01:00
Andreas Gal
5bb4584e92 Don't reason about fragment when deep aborting (484543, r=brendan). 2009-03-21 14:46:06 -07:00
Andreas Gal
47a36bca0d Property close loops even in the presence of partially constant loop conditions (482800, r=brendan). 2009-03-21 01:07:51 -07:00
Andreas Gal
6368b53aa8 Don't attempt to call fast native constructors on trace (484531, r=brendan). 2009-03-21 00:40:39 -07:00
Andreas Gal
43feef625d Support calling arbitrary JSFastNatives from trace (463238, r=brendan). 2009-03-20 18:52:11 -07:00
Andreas Gal
9bee45ca8e trace JSOP_CALLELEM (484334, r=mrbkap) 2009-03-20 17:21:57 -07:00
Andreas Gal
7b58dd1b90 Make new String() trace (484333, r=brendan). 2009-03-20 16:30:31 -07:00
Vladimir Vukicevic
3e006f19eb void -> bool 2009-03-20 16:10:31 -07:00
Vladimir Vukicevic
005b46e678 b=484196; fix softfloat due to missing iu2fArg call; r=gal 2009-03-20 15:53:35 -07:00
Vladimir Vukicevic
d317d0075d b=480796; detect whether ARM chip has VFP and/or v6t2 instructions; r=gal 2009-03-20 15:53:33 -07:00
Andreas Gal
2018b20826 Bump maxbranches to 32 (484341, r=dmandelin). 2009-03-20 14:24:23 -07:00
Jeff Walden
314cf39c41 Bug 472592 - unbox_jsval is infallible, make the signature reflect that. r=gal 2009-01-11 13:57:42 -08:00
Jeff Walden
179a1749fb Despite the previous log message, the previous push was r=brendan 2009-01-10 15:25:03 -08:00
Jeff Walden
949fc3d056 Bug 466905 - Fix JSOP_NEWARRAY to be not-buggy and use it when possible. NOT REVIEWED YET 2009-01-10 12:15:08 -08:00
Andreas Gal
73fd6451b9 Track timeout side exits separately in jitstats (472761, r=jwalden). 2009-01-09 16:38:57 -08:00
Graydon Hoare
8424af9530 Bug 472553 - Annotations required by jsstack.js analysis, r=jorendorff. 2009-01-07 14:14:51 -08:00
Igor Bukanov
3d5269621d bug 465030 - Support terminating long-running scripts without using extra threads or signals. r=gal,sayrer 2009-01-07 18:45:13 +01:00
Igor Bukanov
33ba59a269 Backed out changeset 763b96e81579 - I committed the wrong patch 2009-01-07 18:44:50 +01:00
Igor Bukanov
01c091bb60 bug 465030 - Support terminating long-running scripts without using extra threads or signals. r=gal,sayrer 2009-01-07 18:40:58 +01:00
Graydon Hoare
6383e1d5d2 Bug 470388 - Tighten assertion for JSFRAME_POP_BLOCKS on trace-entry frame, r=brendan. 2009-01-06 18:20:33 -08:00
Jason Orendorff
7f92f10b08 Bug 468641 - TM: Add bytecode disassembly to JS_JIT_SPEW output (r=crowder) 2009-01-06 16:51:32 -06:00
Jason Orendorff
be00149c86 Bug 462021 - TM: Make JSStackFrame reconstitution infallible (part 4 of 4, rename recoveryDoublePool to reservedDoublePool, r=brendan)
--HG--
extra : rebase_source : d865549cb727aada20fbaa78286de37a97b85bca
2009-01-06 13:39:14 -06:00
Jason Orendorff
b20c028359 Bug 462021 - TM: Make JSStackFrame reconstitution infallible (part 3 of 4, call objects, r=brendan)
--HG--
extra : rebase_source : 14a82b2b08c8b7dbae5e72623685b7c3947df603
2008-12-11 17:53:05 -06:00
Jason Orendorff
acc67a8b40 Bug 462021 - TM: Make JSStackFrame reconstitution infallible (part 2 of 4, stack, r=gal)
--HG--
extra : rebase_source : f8e3e4853793d02e0771ea663cebe7e1a0d98e4e
2008-12-11 17:53:05 -06:00
Jason Orendorff
999ec8e790 Bug 462021 - TM: Make JSStackFrame reconstitution infallible (part 1 of 4, easy stuff, r=gal)
--HG--
extra : rebase_source : 46b26c86f02bb0db70ca357ed71f5a8a9464dc9c
2008-12-11 17:53:04 -06:00
Andreas Gal
61a1479f3e Don't try to deallocate the trace recorder from inside one of its own instance methods (472049, r=brendan). 2009-01-05 16:13:53 -08:00
Andreas Gal
a59109830e Use a single lirbuf for the tracer and rewind lirbuf during GC (471821, r=danderson). 2009-01-02 10:55:02 -08:00
Andreas Gal
8b28ae8610 Store frame state information in the code cache and merely put a pointer to it onto the native call stack (470375, r=danderson). 2009-01-01 17:55:43 -08:00
David Mandelin
90baccb99f Bug 471602 part 1: make regexp compiler use one shared LIR buffer, r=gal 2008-12-31 16:41:33 -08:00
Jeff Walden
6f05e9de07 Make similar-acting code similar-reading as well (but not shared due to the +/- difference), no bug 2008-12-29 07:59:06 -06:00
Jeff Walden
af717d86d5 Bug 470739 - Trace more == cases. r=gal 2008-12-26 14:48:33 -05:00
Igor Bukanov
81c3a2b632 Backed out changeset 2d5e6b1c7254 - busted the WINNT 5.1 talos tracemonkey. 2008-12-23 19:24:09 +01:00
Andrei Saprykin
11dac3f234 bug 453157 - watchdog thread as an alternative to operation count. r=igor,mrbkap 2008-12-23 16:12:11 +01:00
Jesse Ruderman
dba23c0ab9 Fix bustage 2008-12-22 16:07:49 -08:00
Jeff Walden
5d25aca194 Bug 470737 - TM: "switch(1/0){case Infinity:}" 4X slower with JIT enabled. r=gal 2008-12-22 15:42:24 -08:00
Jeff Walden
5d05cfd543 Bug 470409 - TM: Crash [@ js_EqualStrings]. r=brendan 2008-12-21 21:26:08 -08:00
Igor Bukanov
5d5cb0738c bug 469233 - using interrupt hook support in the interpreter for trace recording. r=brendan 2008-12-21 12:55:09 +01:00
Igor Bukanov
8062218e55 Backed out changeset 605fd1985d05 - more merge typos. 2008-12-21 12:50:36 +01:00
Igor Bukanov
1be7edd38e bug 469233 - using interrupt hook support in the interpreter for trace recording. r=brendan 2008-12-21 12:31:38 +01:00
Igor Bukanov
635ca1d23a Backed out changeset f13e2a2a5d66 - I was not careful when merging the unary op changes 2008-12-21 12:23:08 +01:00
Igor Bukanov
3388b615ce bug 469233 - using interrupt hook support in the interpreter for trace recording. r=brendan 2008-12-21 00:16:41 +01:00
Jeff Walden
4710efd8a4 Bug 469942 - TM: 20% slower to compute unary +/-. r=brendan 2008-12-19 19:30:09 -08:00
Brendan Eich
7826ab3e9f Fix warnings pointed out by Waldo from apply patch (465214). 2008-12-19 14:15:35 -08:00
Brendan Eich
608700e168 Back out patch for bug 469625, it mysterious busts stuff. 2008-12-19 01:32:48 -08:00
Brendan Eich
16350be804 Merge, dammit! 2008-12-18 22:40:58 -08:00
Brendan Eich
b9cf426072 Bug 469625 - TM: Crash [@ js_String_getelem] (r=jorendorff). 2008-12-18 22:35:46 -08:00
Brendan Eich
90fd9c4313 Merge m-c into tm again. 2008-12-18 22:11:42 -08:00
Brendan Eich
9af4f618a7 Bug 470300 - "Assertion failure: StackBase(fp) + blockDepth == regs.sp" with |let| (r=gal). 2008-12-18 21:08:57 -08:00
Andreas Gal
bbf40348b6 Trace apply/call with an imacro (465214, r=brendan). 2008-12-18 19:20:47 -08:00
Graydon Hoare
d248d11954 Bug 470176 and bug 470173 - prevent traces from writing to imported properties, r=brendan. 2008-12-18 18:25:12 -08:00
Jeff Walden
201e000573 Bug 470133 - TM: fails to trace case with a type mismatch. r=gal 2008-12-18 10:35:09 -08:00
Brendan Eich
3abd77d8ea Bug 469927 - TM: much slower than interpreter with short loop with |let| (r=mrbkap, a=sayrer). 2008-12-18 01:31:15 -08:00
David Anderson
dbab136074 Fixed bogus assertion in a rare type-instability case (bug 470061, r=gal). 2008-12-18 03:15:09 -05:00
Andreas Gal
589fb9eb38 Merge. 2008-12-17 23:09:55 -08:00
Andreas Gal
3af573343f Backed out changeset 95b210c2fc92 preemptively. Seems to crash the browser. 2008-12-17 23:09:26 -08:00
Andreas Gal
2dffadf0fb Merge. 2008-12-17 22:54:02 -08:00
Andreas Gal
62f0547add Trace apply/call using an imacro (465214, r=brendan). 2008-12-17 22:53:35 -08:00
Graydon Hoare
3477355ddd Bug 465443, bail off trace when readonly properties are written, r=brendan. 2008-12-17 20:50:05 -08:00
Brendan Eich
bbd3fdab2a Bug 469927 - TM: much slower than interpreter with short loop with |let| (r=mrbkap). 2008-12-17 12:34:06 -08:00
Brendan Eich
56658da21f Bug 465460 - TM: valueOf ignored on third iteration of loop (r=gal). 2008-12-16 19:03:42 -08:00
Blake Kaplan
c3dc1ab151 Bug 469761 - Protect against apply on a non-function. r=gal 2008-12-16 15:09:05 -08:00
Andreas Gal
7ba58d96a8 Backed out changeset 5f64a0d18e53 2008-12-12 17:04:32 -08:00
Andreas Gal
f7da8821da Branch-exit and attach traces on shape mismatches (r=danderson). 2008-12-12 14:26:55 -08:00
Robert Sayre
443f738d12 Backed out changeset f682453c06d0. Failing scriptaculous unit tests, doesn't build on windows or mac ppc. 2008-12-11 20:43:32 -08:00
Brendan Eich
ece10ee8df Bug 465460 - TM: valueOf ignored on third iteration of loop (r=gal). 2008-12-11 17:50:56 -08:00
Jeff Walden
6afac16038 Bug 465255 - Rewrite TraceRecorder::cmp, take five. (Three, sir!) Three! r=gal 2008-12-08 21:11:56 -08:00
Graydon Hoare
37cfe58e72 Bug 468484 - Rename avmplus::AvmConfiguration, adjust sites of use, r=gal. 2008-12-10 17:19:40 -08:00
Rick Reitmaier
a70c5b7d48 Bug 468484 - LirBuffer has been modified to provide advance warning of out of memory (OOM) conditions, r=danderson.
LirBuffer has been modified to provide advance warning of
out of memory (OOM) conditions.

A new page is allocated LIR_BUF_THRESHOLD instructions
prior to reaching the end of page.  If the page allocation fails,
call to outOmem() will return true.  The buffer can still be
safely written to during during this period but it is assumed
the higher level code will catch this condition and handle
it appropriately as writing LIR_BUF_THRESHOLD instructions
past this point will cause a crash.

This opportunity was also taken to re-factor the code for
LirBufWriter making it more platform agnostic.
- All non-LInsp data in the instruction stream is now managed
  through structures that overlay the memory region.
- prepFor() was added to replace the multiple
  ensureReferenceable() calls for each instruction.
- insCall() was also modified somewhat in that the
  arguments are now stored growing downwards from
  the position of the pseudo instruction LirCallIns.

CodegenLIR now has LirBuffer checks at the granularity
of each emitXXX() call that is exposed publicly.  This seemed
like a reasonable approach since a client could potentially
call at this level indefinitely.  If we want to reduce the frequency
of these checks then we'd have to push the check up into the
verifier.

Assembler OOM handling has also changed.  The variable
_startingIns was added and contains the location at which
the assembler began writing code for the current
begin/assem/end sequence.   If an OOM condition occurs
the assembler will reset the current instruction pointer
to _startingIns, effectively overwriting the code that has
been generated.  This allows the assembler to produce
code indefinitely (and without error) until the upper layers
have noticed the error and respond accordingly.

The constant LARGEST_UNDERRUN_PROT was added
and needs to be set to a platform specific value that is
equal to or greater than the number of NIns written for
the largest possible instruction.  i.e.  you cannot write
more than this number of NIns to the buffer for each
call to underrunProtect().
2008-11-14 12:46:35 -08:00
Jason Orendorff
b7fb9bc849 Bug 460865 - Read barrier for cx->fp. r=mrbkap, r=dmandelin.
--HG--
extra : rebase_source : 19963188b2f9f96336ce6ca28dbaefccf3a639b7
2008-12-09 10:38:32 -06:00
Jeff Walden
e48c310d01 Dangit, why do the tests run correctly locally in small batches? Backing out bug 465255... 2008-12-08 22:19:54 -08:00
Jeff Walden
f143157358 Bug 465255 - Rewrite TraceRecorder::cmp, take two. r=gal 2008-12-08 21:11:56 -08:00
Andreas Gal
e346e5cf60 Eliminate mergeCount from fragments since its unused (468391, r=danderson). 2008-12-07 19:13:50 -08:00
Jeff Walden
77eeb36575 Back out bug 465255, seems I was wrong about the compile error and warning being the only bugs. 2008-12-05 19:51:35 -08:00
Jeff Walden
f9e63195f3 Followup fix for a typing bug (why wasn't I seeing errors with g++?) and a goto-past-initialization (which I also think should have been caught by g++). r=bustage 2008-12-05 18:14:50 -08:00
Jeff Walden
6cb6d5d43b Bug 465255 - Rewrite TraceRecorder::cmp. r=gal 2008-12-05 16:17:59 -08:00
Andreas Gal
362036b89e Don't try to setup arguments when tracing Function.call() if we don't have at least 2 arguments (468174, r=brendan). 2008-12-05 16:05:21 -08:00
Andreas Gal
3653f3cb56 Merge. 2008-12-04 18:14:17 -08:00
Andreas Gal
e367780a2f Trace apply and call (462482, r=brendan). 2008-12-04 18:07:18 -08:00
David Anderson
9ba9c170dc Fixed assembler errors not blacklisting the loop header, resulting in senseless re-recordings (bug 467854, r=gal). 2008-12-04 16:24:55 -08:00
David Anderson
beea650730 Fixed crashing when deep aborting before a loop header (bug 467857, r=gal). 2008-12-04 16:21:30 -08:00
Andreas Gal
a5c2753bb6 Merge. 2008-12-01 16:45:16 -08:00
Andreas Gal
a78d7744c8 Guard on the JSFunction and parent pointers instead of the identity of the function object in case of shapeless calls (451974, r=brendan). 2008-12-01 16:44:22 -08:00
David Anderson
bce9294e0f Fixed resolve hooks causing recorder to crash (bug 467007, r=gal). 2008-12-01 15:08:40 -08:00
Andreas Gal
f607be887d Don't output JIT statistics if we don't ever record a trace (466942, r=danderson). 2008-11-27 00:50:24 -08:00
David Anderson
4d1da21f33 Fixed TIMEOUT_EXIT guard being in the wrong location (from bug 453157, r=gal). 2008-11-26 08:29:24 -08:00
Graydon Hoare
fb8e45ee46 Bug 454569 - post-landing style and cast fixes, sr=brendan. 2008-11-25 13:20:52 -08:00
Graydon Hoare
5a94caadef Bug 454569 - Improve accuracy of tracemonkey's oracle, r=gal. 2008-11-24 14:53:27 -08:00
David Anderson
c2f9deb2b1 Fixed regression checked in for bug 466128 (bug 466262, r=gal). 2008-11-21 22:55:03 -06:00
David Anderson
cea571a94b Fixed JSOP_NEG not checking overflow at recording time (bug 465688, r=gal). 2008-11-21 17:17:34 -08:00
David Anderson
56fbffe8c4 Allow recorders to trash multiple trees on the way out (bug 466128, r=gal). 2008-11-21 15:31:59 -08:00
David Anderson
37d2933b13 Fixed double-free of treeInfo in a type instability edge case (bug 465686, r=gal). 2008-11-20 17:20:16 -06:00
David Anderson
6c91afa7b7 Fix CALLPROP not guarding that the callee is not NULL (bug 465580, r=gal). 2008-11-19 16:08:41 -08:00
David Anderson
63c268384c Fixed unsafe coercion of JSVAL_VOID to string on trace entry (bug 465483, r=brendan). 2008-11-18 19:48:02 -06:00
Vladimir Vukicevic
7a34f9500d Merge mozilla-central into tracemonkey 2008-11-18 13:54:21 -08:00
Brendan Eich
83c020dce3 Bug 465220 - nested imacro abort not cleanly handled (botches assertions) (r=mrbkap, a=beltzner). 2008-11-17 16:56:01 -08:00
Brendan Eich
37c40ca7c0 Merge. 2008-11-17 16:29:40 -08:00
Igor Bukanov
a76c374322 bug 464334 - removal of no longer applicable asserts that sp <= static spdepth. r=brendan a1.9.1b2=beltzner 2008-11-17 13:48:57 +01:00
Andreas Gal
27b72971da Removed bogus assert when stringifying objects (465209, r=brendan, a=mconnor). 2008-11-17 01:12:18 -08:00
Andreas Gal
f7ca65fe0f Don't demote multiplication, even if result is demoted and inputs are demotable (465308, r=danderson). 2008-11-17 01:39:49 -08:00
Andreas Gal
36cc27f654 Make sure to flush the JIT cache after a gc even if we didn't import globals (464418, r=brendan, 2nd attempt to push). 2008-11-17 01:20:54 -08:00
David Anderson
442b376986 Fixed regression from recent constant folding patch (bug 465272, r=gal). 2008-11-16 22:52:15 -08:00
Andreas Gal
a9d9eff7ee Merge. 2008-11-16 22:13:37 -08:00
Andreas Gal
3c5889df4e Fix tracing of JSOP_IN (465241, r=danderson). 2008-11-16 22:13:13 -08:00
David Anderson
a653ef6015 Fixed branch traces being erroneously marked as dependent trees (bug 464979, r=gal). 2008-11-16 21:58:35 -08:00
Andreas Gal
0218a2502b Merge. 2008-11-16 20:22:52 -08:00
Andreas Gal
b1e33fe0ff JIT affects truthiness of "" <= null (465234, r=Waldo). 2008-11-16 20:22:01 -08:00
David Anderson
6f0cd7b8ba Constant fold additions to avoid erroneous isPromoteInt detection (bug 465249, r=gal). 2008-11-16 20:14:27 -08:00
Jeff Walden
7c2bb3cab6 Bug 465137 - TM: JIT thinks !NaN is false. r=gal 2008-11-16 18:28:51 -08:00
Andreas Gal
78fbb9e673 Merge. 2008-11-16 13:53:02 -08:00
Andreas Gal
012365500f Removed bogus assert when stringifying objects (465209, r=brendan). 2008-11-16 13:51:29 -08:00
David Anderson
db46b11fa1 Fixed recorders already deeply aborted being pushed onto the deep abort stack (bug 465145, r=gal). 2008-11-16 02:34:51 -06:00
Brendan Eich
93a63ea9b2 Avoid bogus assertbotch (more work needed to reconstruct imacro stack depth). 2008-11-15 23:56:49 -08:00
Andreas Gal
4da6188c80 Implement ordered comparison for objects (465133, r=brendan). 2008-11-15 23:19:46 -08:00
David Anderson
321ce0dc05 Deep abort recorders outer recorders if we need to flush the JIT cache early (bug 463829, r=brendan,gal). 2008-11-15 18:54:24 -06:00
Brendan Eich
d3da4b8e87 Fast followup to pick nit in last commit. 2008-11-15 12:49:00 -08:00
Brendan Eich
eb9a67cd20 Bug 465013 - TM: General Error trying to play video on CNN (r=gal). 2008-11-15 12:41:26 -08:00
Brendan Eich
bab1f697ee Bug 464978 - TM: hang with "[] + null" (r=danderson). 2008-11-15 10:33:50 -08:00
Graydon Hoare
acc4b45377 Bug 450000 - Support script timeouts in compiled code, r=gal. 2008-11-14 16:56:00 -08:00
Jeff Walden
8e7fb5c94b Bug 464986 - Crash trying to compile a trace generated from stdin in debug build. r=danderson 2008-11-14 14:36:32 -08:00
Andreas Gal
acebe116c1 Don't flush JIT cache from within the recorder (464403, r=brendan). 2008-11-13 15:58:58 -08:00
Brendan Eich
fab08e017c Fast followup to fix for-each-in (imacros bug, r=me). 2008-11-13 00:43:00 -08:00
Brendan Eich
cb47c4cf08 Bug 456511 - (imacros) TM: Make conversion work on arbitrary JSObjects (r=gal). 2008-11-13 00:30:20 -08:00
David Anderson
30101c6443 Fixed recursion in thin loops accidentally trying to close the parent loop (bug 464089, r=gal). 2008-11-12 19:00:15 -08:00
Andreas Gal
074d900a57 Backed out changeset a40f2117bcc0 2008-11-12 17:39:48 -08:00
Brendan
0ca607d76b Add imacros to support conversion of arbitrary JSObjects (456511, r=gal). 2008-11-12 16:55:45 -08:00
Andreas Gal
d3c38eade4 Backed out changeset 313d3d61333d 2008-11-12 10:12:22 -08:00
Andreas Gal
348e1dc001 Make sure to flush the JIT cache after a gc even if we didn't import globals (464418, r=brendan). 2008-11-11 23:58:36 -08:00
timeless@mozdev.org
de4863a534 Bug 464214 warnings in jstracer
r=gal
2008-11-11 11:21:12 +01:00
Andreas Gal
55c5823950 Backed out changeset 594ec832d9a8 2008-11-07 18:19:35 -08:00
Andreas Gal
54ba19de70 Trace Function.apply and Function.call (462482, r=brendan). 2008-11-07 15:58:52 -08:00
Andreas Gal
41cc8a6bd1 Merge. 2008-11-07 15:24:16 -08:00
Andreas Gal
e609f0bb95 Cleanup GuardRecord, SideExit, and InterpStruct and extract VM-dependant fields (463313, r=danderson). 2008-11-07 15:23:43 -08:00
David Anderson
fa14a92fe7 Fixed multitrees assert when building failed speculated branches (bug 463490, r=gal). 2008-11-07 13:22:05 -08:00
Andreas Gal
a19551a824 Fix GC hangs when OOM during recovery pool re-allocation (463190, r=brendan). 2008-11-05 19:09:12 -08:00
Brendan Eich
7f1675516e Bug 463259 - "Assertion failure: VALUE_IS_FUNCTION(cx, fval)" (r=mrbkap). 2008-11-05 14:25:39 -08:00
Jason Orendorff
5fdc83f169 Bug 462459 - TM: Better tracer support for |new Array(...)|. r=gal. 2008-11-05 07:29:38 -06:00
Andreas Gal
0d6e29aa6c Scale down regexp native code cache to 1MB and delete cache on shutdown (r=danderson). 2008-11-04 19:11:23 -08:00
Andreas Gal
b8168d74d9 Merge. 2008-11-04 15:08:24 -08:00
Andreas Gal
cdec6ab0a7 Interpreter directly emits the this object found in the property cache for JSOP_CALLNAME, so do the same in the tracer (462989, r=mrbkap). 2008-11-04 15:07:38 -08:00
David Mandelin
c92c2000cc Bug 461050 WIP: compiling simple regexps, r=danderson,agal 2008-11-04 14:51:51 -08:00
Robert Sayre
03d49a666b Merge mozilla-central to tracemonkey. 2008-11-04 02:05:05 -05:00
David Anderson
65f7adbd31 Fixed OOM handling when starting a recorder or assembler (bug 451322, r=gal+rreitmai). 2008-11-03 16:10:20 -08:00
timeless@mozdev.org
b93635a72f Bug 454561 TM: Crash when JavaScript-Debugger is enabled [ @ jsd_lock ]
js_SynthesizeFrame needs to fill in all fields of JSInlineFrame.
r=brendan
2008-10-29 11:06:01 +01:00
Jason Orendorff
2c9b2dd1b4 Fix build breakage --with-static-checking. No bug#. 2008-10-31 11:54:48 -07:00
Andreas Gal
37b4dbe474 Don't manipulate stack during cpuid detection (fix for icc, r=danderson). 2008-10-30 17:56:27 -07:00
David Anderson
00bfbb7d80 Make sure double slots are marked as undemotable when stabilizing a tree with failed speculation (bug 462407, r=gal). 2008-10-30 15:54:22 -07:00
David Anderson
48b976a104 Don't coerce void to string when compiling inner tree calls (bug 462388, r=gal). 2008-10-30 13:48:22 -07:00
Andreas Gal
047344b36b Merge. 2008-10-30 12:32:08 -07:00
Andreas Gal
0cc2b0cfdf Fixed assert (fallout from 462265). 2008-10-30 12:31:39 -07:00
David Anderson
1f8d249207 Fixed not tracking linked peers as dependencies (bug 462282, r=gal). 2008-10-30 11:29:25 -07:00
Boris Zbarsky
d1afdda41f Bug 462184. Make INCLUDE_VERBOSE_OUTPUT actually work, and rename it to JS_JIT_SPEW. r=brendan 2008-10-29 21:56:35 -07:00
David Anderson
685543cd89 Mark any double slot in an unstable exit as undemotable (bug 462071, r=gal). 2008-10-29 17:57:14 -07:00
David Anderson
7247e3ffe4 Fixed trees stabilizing from the wrong peer fragment (bug 462240, r=gal). 2008-10-29 16:12:16 -07:00
Andreas Gal
868e7934a2 Emit JSOP_APPLY for .apply(...) similar to JSOP_EVAL for .eval(...) (462209, r=brendan). 2008-10-29 13:30:41 -07:00
Brendan Eich
6ddc16bbe2 Bug 462103 - TM: We don't trace some variants of string + other type (gal+brendan red-headed stepchild). 2008-10-29 00:14:30 -07:00
Andreas Gal
7b8859883f Merge. 2008-10-28 22:41:05 -07:00
Andreas Gal
4eca106b8a Handle dslots == NULL case when reading past the actual length of an array (461974, r=danderson). 2008-10-28 22:40:10 -07:00
Jim Blandy
f83d8c9ea3 Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile.  Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR.  Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR.  Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.

Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.

Give SpiderMonkey it its own copies of many of the files from ./config
and ./build.  These are all exact copies, except as follows:

. js/src/config/Makefile.in: js/src only has a subset of
  js/src/config, and thus a subset of the makefile targets.

. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
  variables to set, not set by the top-level configure script, so it
  needs a custom automake.mk template.

. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
  so that we can build without having an NSPR source tree handy.

Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.

Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.

Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library.  Don't include the js-config script in
Macintosh packages.

Teach client.mk how to rebuild js/src/configure.

Tell Mercurial to ignore files generated by autoconf in js/src.

Further work:

. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
  This is fixed in a subsequent patch.

. js/src/configure is a trimmed copy of ./configure.  It could be
  trimmed more.

--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
Andreas Gal
7da6b31283 Handle dslots == NULL case when reading past the actual length of an array (461974, r=danderson). 2008-10-28 22:40:10 -07:00
David Anderson
55c302718d Fixed false-positive integer demotions on non-number types (bug 461945, r=gal) 2008-10-28 16:33:01 -07:00
Andreas Gal
25404443ff GC no longer flushes the JIT cache. Instead just make sure the shape of the global object will mismatch next time we try to record or execute code, which in turn will force a flush of the code cache (458288, r=brendan/danderson). 2008-10-28 16:22:08 -07:00
Brendan Eich
bad1b50498 Re-land patch for bug 458851 now that latent bug it uncovered (not filed; see hg log) is fixed. 2008-10-28 14:04:29 -07:00
David Anderson
06ec3d4965 Merge. 2008-10-28 14:00:27 -07:00
Brendan Eich
e95f449f88 Fix tracing apply with wrong arguments (no bug, r=gal+dvander). 2008-10-28 13:58:20 -07:00
Jason Orendorff
5258c4d288 Bug 461723 - TM: "Assertion failure: (m != JSVAL_INT) || isInt32(*vp)" with "(0 + void 0) && 0". r=gal. 2008-10-28 11:52:38 -07:00
Jason Orendorff
37724bb378 Backed out changeset d4fe79372140 (bug 458851) due to persistent orange on TraceMonkey tinderboxes. 2008-10-28 10:49:06 -07:00
Brendan Eich
51f987553a Bug 458851 - TM: for-in loops skip every other value in certain cases (r=gal/mrbkap). 2008-10-27 22:30:52 -07:00
David Anderson
bf1a78f4fe Implemented multiple type specialized trees per entry point (bug 450833, r=gal) 2008-10-27 20:42:49 -07:00
Jason Orendorff
154b1955c7 Bug 456384 - TM: v8-richards.js benchmark opens a print dialog in browser with JIT enabled. r=brendan 2008-10-27 16:15:32 -07:00
Andreas Gal
ba12fe7023 Merge. 2008-10-25 01:04:47 -07:00
Andreas Gal
df30935a17 guardDenseArray and guardDenseArrayIndex must guard on the actual outcome, since we don't always abort trace if its not a dense array (461611, r=me). 2008-10-25 01:03:38 -07:00
David Anderson
e33e23e267 Fixed false positive demotions due to missing isPromoteInt (bug 461612, r=gal). 2008-10-25 01:50:38 -05:00
Andreas Gal
06b393e8a2 Trace reading from dense arrays out of bounds and trace undefined -> number conversion in binary ops (461611, r=brendan). 2008-10-24 21:51:04 -07:00
David Anderson
6ebb53e98e Fixed branch demotions using the branch PC rather than the root PC, causing infinite records (bug 455547, r=gal). 2008-10-24 14:01:17 -07:00
Brendan Eich
fcca844194 Bug 461248 - Remove JSOP_RESUME (r=gal/jorendorff). 2008-10-24 12:34:08 -07:00
Jason Orendorff
90796fca26 Bug 461492 - TM: INT32 can't be used as return type for traceable native that actually returns an int. r=gal. 2008-10-24 12:49:54 -05:00
David Anderson
590d3d2443 Fixed crash from JIT cache flushes when js_Interpret was holding TraceRecorders (bug 458288, r=brendan). 2008-10-24 10:47:59 -07:00
Andreas Gal
19ed8b2e9c Only track and look up LOOP_EXIT side exits in the tree info (r=danderson). 2008-10-22 22:29:51 -07:00
Andreas Gal
5b7d8ddbe0 Backed out changeset 82f5fed6d91a (Linux GCC doesn't seem to like clobbering ebx in inline assembly). 2008-10-22 19:08:28 -07:00
Andreas Gal
04b27d4cf3 Avoid pusha/popa inside assembly (icc crashes) when checking for SSE2 using cpuid (461280, r=danderson). 2008-10-22 18:55:54 -07:00
Andreas Gal
5cc94e1d59 Re-use loop exit side exit if we already have one for that PC location and the same type map (461076, r=danderson). 2008-10-22 16:27:25 -07:00
Andreas Gal
e2a6acb46a Use LIR_loop for loop edge to avoid going into a side exit handler at every loop edge (461231, r=danderson). 2008-10-22 16:00:08 -07:00
Andreas Gal
b14d526b66 Merge. 2008-10-21 17:50:52 -07:00
Andreas Gal
ec7efc925c Remove code to unlink trees to reduce the size of GuardRecord. Allow GuardRecords to share one common SideExit structure. The VM places both explicitly into the LIR (460538, r=danderson). 2008-10-21 17:50:32 -07:00
Jason Orendorff
e1877796ba Bug 460501 - Round-trip change due to "&&" constant-folding leaving extra parens. r=brendan. 2008-10-21 13:35:22 -05:00
Vladimir Vukicevic
3164784c33 Make ARM nanojit compile again (doesn't run) 2008-10-20 11:18:30 -07:00
Jason Orendorff
e0b7bce037 Bug 459266 - TM: Allow CALLINFO macros to specify linkage. r=brendan. 2008-10-16 14:24:10 -05:00
Jason Orendorff
f8a75808ed Bug 459446 - Trace JSOP_POPV. r=brendan. 2008-10-15 15:22:05 -05:00
Andreas Gal
ea1d9c5edc Allow a single level of self-calling until we have support for recursion (459775, r=brendan). 2008-10-13 23:20:39 -07:00
Graydon Hoare
bf84bf6273 Merge tamarin-redux (nanojit2) into tracemonkey (457786, r=edwsmith,gal,danderson). 2008-10-13 13:29:18 -07:00
David Anderson
55ee8061f8 Return innermost guard from js_ExecuteTree and not outermost (r=gal). 2008-10-13 12:44:37 -07:00
Jason Orendorff
12c5730930 TM: Remove unreachable "return false" in TraceRecorder::record_JSOP_NOT. No bug, r=gal. 2008-10-13 14:10:35 -05:00
Jason Orendorff
6b88d0da8d Bug 459426 - Reunite record_JSOP_{NEW,CALL}. r=gal. 2008-10-13 11:04:26 -05:00
Andreas Gal
9bfc3c5072 Properly recover from a nested side exit with more than a single level of nesting (459539, r=danderson). 2008-10-12 15:39:32 -07:00
Andreas Gal
d622ee23d8 Merge. 2008-10-11 20:27:03 -07:00
Andreas Gal
798a62ad00 Stack water level is off by +1 in getTop, and JSOP_CALLPROP premature updates the tracker (459537, r=danderson). 2008-10-11 20:26:29 -07:00
Boris Zbarsky
33415ac1fb Adding some documentation 2008-10-10 12:43:30 -04:00
Jason Orendorff
232767cb27 Bug 459294 - TM: move soft float builtins next to SoftFloatFilter. r=andreas. 2008-10-10 11:31:23 -05:00
Andreas Gal
9a086f63ae Don't carry around oldpc in AbortRecording path (459321, r=danderson). 2008-10-09 16:17:13 -07:00
Andreas Gal
35de6c0d9d Merge. 2008-10-08 21:02:57 -07:00
Andreas Gal
c974289da5 Support thin loops (iteration < 2) by closing the loop even if we are on the last iteration (456431, r=danderson). 2008-10-08 21:02:04 -07:00
danderson
c56579e021 Blacklist loop if its unstable and we don't recompile it (459174, r=gal). 2008-10-08 19:58:40 -07:00
Andreas Gal
afc99f7ccc In ifop, avoid eq0(eq0(x)), instead flip guard direction and use single eq0 (459164, r=danderson). 2008-10-08 17:49:54 -07:00
Andreas Gal
471ed73a35 Evaluate cond to true if value evaluates to true in non-fused if (459159, r=danderson). 2008-10-08 17:44:04 -07:00
Andreas Gal
fb350afe17 Non-fused ifs emit different comparison code than the interpreter uses (459151, r=danderson). 2008-10-08 16:23:54 -07:00
Jason Orendorff
3204ec178a Bug 459085 - TM: Number.toString traceable native is broken (r=gal) 2008-10-08 17:19:15 -05:00
Jason Orendorff
a27d101dab Bug 458735 - Improve internal API for traceable natives (r=brendan, nanojit r=edwsmith) 2008-10-08 17:08:33 -05:00
Andreas Gal
52f71e38dc Add missing comparison before letting the result of the conditional move flow into the guard for ordered boolean comparisons (457778, r=danderson). 2008-10-07 13:32:30 -07:00
Andreas Gal
1b0fd40e30 Trace push and pop for dense and sparse arrays (453734, r=brendan). 2008-10-07 11:00:16 -07:00