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