Commit Graph

2994 Commits

Author SHA1 Message Date
Andreas Gal
8f6bbaaa5f Abort recording when an error occurs. 2008-08-21 05:21:01 -07:00
Brendan Eich
d62ee36613 Fix script->owner maintenance; also fix warning. 2008-08-21 05:04:20 -07:00
Brendan Eich
b1e05f4fc9 JSThread is not zeroed when allocated, grrr. 2008-08-21 04:51:46 -07:00
Brendan Eich
e4a3506856 Fix typo. 2008-08-21 04:22:48 -07:00
Brendan Eich
7ebaf5bf1c Merge. 2008-08-21 04:17:49 -07:00
Andreas Gal
a49e15bd85 Remove FastEval builtin. 2008-08-21 04:17:17 -07:00
Brendan Eich
791221dfae Followup upvar fix, easy assertbotch avoidance. 2008-08-21 04:16:50 -07:00
Brendan Eich
fd148818e1 Add split built-in, also sort knownNatives for my own sanity (should sort builtins.tbl and jsbuiltins.cpp by function while at it, but too tired). 2008-08-21 04:13:07 -07:00
Brendan Eich
147018b013 Merge, plus restore TraceRecorder::activeCallOrGlobalSlot. 2008-08-21 03:51:37 -07:00
Brendan Eich
9cd8e5a539 Upvar, v0.1 (limited to looking up from eval in a function, to the function's args and vars). 2008-08-21 03:47:33 -07:00
shaver@mozilla.org
35915d94ea disable tracing with active call object pending perf fix 2008-08-21 03:19:17 -07:00
Andreas Gal
f2c2859267 Merge. 2008-08-21 03:13:57 -07:00
Andreas Gal
d9acfb10f0 Remove FastEval, broken by design (r=brendan). 2008-08-21 03:13:31 -07:00
David Anderson
f34f92698f Fixed code generation bug in AMD64 port. Enabled AMD64 JIT now. 2008-08-21 02:53:53 -07:00
Brendan Eich
324b9c7f4e Remove lambda-replace built-in, it's not safe to record into a nested js_Interpret. 2008-08-21 01:39:16 -07:00
Brendan Eich
2c4e22add3 Fix CHECK_RECORDER macro to use XOR to evaluate both terms. 2008-08-21 01:38:50 -07:00
Andreas Gal
2e767b124c Convert undefined to NULL on tree entry if the tree wants an object type. 2008-08-21 01:13:07 -07:00
shaver@mozilla.org
ed7fab1440 trace |new Array|, via the magic of copy and paste 2008-08-21 00:50:20 -07:00
Brendan Eich
321ae383ba Merge. 2008-08-21 00:47:51 -07:00
Andreas Gal
5a8f2bff2b Merge. 2008-08-21 00:45:44 -07:00
Andreas Gal
fcd8670fec If we expect a concrete value but see an undefined come into the trace, convert undefined to the concerete value. 2008-08-21 00:43:45 -07:00
Brendan Eich
9b56ca4984 Tidy up globalShape mismatch reporting. 2008-08-21 00:19:04 -07:00
Andreas Gal
a7b0f45c3f Export js_NaN. 2008-08-21 00:13:40 -07:00
Brendan Eich
e5f489dcbb Merge. 2008-08-20 23:47:47 -07:00
Brendan Eich
b9d10512b7 Use JS_FRIEND_API for new JS_ArrayToJSUint8Buffer, etc., and use it on prototypes and definitions (fixes some platform builds). 2008-08-20 23:46:31 -07:00
Andreas Gal
e26e3234f4 Merge. 2008-08-20 23:40:24 -07:00
Andreas Gal
12fcdd141f Remove bogus fadd +1 check at the end of the loop. We have long switched over to starting slots as int and hence n++ will be emitted as integer add with i2f, so checking for i2f only is sufficient. 2008-08-20 23:39:57 -07:00
Andreas Gal
ddf445130e Increase HOTEXIT to 1 (from 0). 2008-08-20 23:35:00 -07:00
Andreas Gal
1261e82b42 Eliminate redundant BoxDouble(UnboxDouble) chains. 2008-08-20 23:19:48 -07:00
shaver@mozilla.org
6870d297ef say what we're returning from from EnterFrame 2008-08-20 23:12:28 -07:00
Brendan Eich
9e4119701e Merge. 2008-08-20 22:44:16 -07:00
Brendan Eich
e9b635b38a 1. Add activeCallOrGlobalSlot, used by JSOP_NAME, JSOP_CALLNAME, etc. recorders to cope with Call objects on the scope chain, if they represent still-active frames covered by callDepth.
2. Add builtin for eval, to be optimized further, to handle very short eval'ed programs as found in popular benchmarks.
3. Add common scopeChain TraceRecorder helper, to generate the LIR to load cx->fp->scopeChain.
4. Add ABORT_TRACE to LeaveFrame for clarity.
2008-08-20 22:40:39 -07:00
Andreas Gal
8468ac7444 Support multiple returns from called trees by continueing the outer tree with a new nested guard. 2008-08-20 22:37:00 -07:00
Andreas Gal
36ddb45efb Restore state.sp and state.rp before the nested guard exit point so we can have a sequence of them and still have rp/sp adjusted correctly. 2008-08-20 22:23:17 -07:00
Brendan Eich
4a25cf5a32 Defer eval'ed script destruction to next GC; expose js_obj_eval for tracing. 2008-08-20 22:18:42 -07:00
Andreas Gal
e9f3ccf839 Push actual guard that failed in a nested call, not the expected. 2008-08-20 20:12:19 -07:00
Andreas Gal
87295d3d95 Merge. 2008-08-20 19:25:26 -07:00
Andreas Gal
1b99fe0e1e Don't emit a guard at the end of CALLNAME and friends since the values CALLNAME puts on the stack (callee, this) are not seen by the interpreter yet, and thus get store killed. Instead, emit the guard in CALL, at which point the values are properly stacked. 2008-08-20 19:24:57 -07:00
shaver@mozilla.org
9817a0cd97 fix js_IsLoopExit to better handle for-in exits, r=mrbkap 2008-08-20 18:50:49 -07:00
Andreas Gal
49f0b4f6cb Add a switch to disable the oracle, in which case we never demote any slots. 2008-08-20 16:10:56 -07:00
Andreas Gal
fdb661bd5e Clear the oracle on every GC. 2008-08-20 16:01:56 -07:00
Andreas Gal
3a2b40e4c4 Merge. 2008-08-20 15:43:57 -07:00
Andreas Gal
3e55729492 If at loop entry we expect a double, but at the loop tail we store an int because we suck the i2f into the side exit, we have to explicitly cast back up to double using i2f otherwise we won't be able to make sense of the value when we load it at the top of the next iteration. 2008-08-20 15:43:26 -07:00
shaver@mozilla.org
913b472c52 disable vprof building so that we can build on XP 2008-08-20 15:23:44 -07:00
Andreas Gal
98f67af6d0 Add a way to clear the oracle. 2008-08-20 15:18:43 -07:00
Andreas Gal
0954618ab1 Merge. 2008-08-20 15:04:22 -07:00
Andreas Gal
ccfca5d79f Clear global slots and global type map when clearing the code cache. 2008-08-20 15:03:51 -07:00
Andreas Gal
f3972bfb84 Backed out changeset be63a51a0a3b. Breaks tofte if run from ./time.sh. 2008-08-20 14:57:49 -07:00
Vladimir Vukicevic
9a3d208ae4 b=451242, add fast-paths for dense array to uint/int/double buffer conversion; r=bent/mrbkap 2008-08-20 14:47:01 -07:00
Brendan Eich
6bc330ef33 Don't disable property caching in eval (this requires GC'ing eval scripts). Do tolerate active Call object at head of scope chain in record_JSOP_CALLNAME, and go straight to the stack slots. 2008-08-20 14:04:37 -07:00
Andreas Gal
1859be808c Stub the getter and setter on class prototypes and constructor (bz, r=brendan, bug 451154). 2008-08-20 12:58:07 -07:00
Andreas Gal
8df2fc18c8 When adjusting integers to doubles in tree calls start with the current stack frame only. 2008-08-20 12:47:39 -07:00
David Anderson
d6aef7cf26 Fixed some valgrind whinings (not actual bug fixes). 2008-08-20 12:17:31 -07:00
Vladimir Vukicevic
1bbc109274 wrong condition check in nanojit with qjoin(qlo,qhi) 2008-08-20 11:32:22 -07:00
David Anderson
54cfb5e424 Fixed typo that broke the tree. Sorry! 2008-08-20 10:38:50 -07:00
shaver@mozilla.org
d1f7543e1b default to non-verbose for DEBUG, set TRACEMONKEY=verbose in env to go verbose 2008-08-20 10:15:42 -07:00
David Anderson
d84ad33955 Another portability fix. math-spectral-norm is crashing in the test harness so keeping 64-bit JIT off (everything else works). 2008-08-20 09:59:23 -07:00
David Anderson
738ce385fa Merge. 2008-08-20 09:50:41 -07:00
shaver@mozilla.org
5d3ad68bbe merge from mozilla-central 2008-08-20 08:17:17 -07:00
Brendan Eich
deca6a9d50 Add str + obj concatenation for 3d-raytrace.js. 2008-08-20 02:35:17 -07:00
Dave Camp
fd49970e20 Backed out changeset af00b3f27c64 (Bug 418051) 2008-08-20 01:15:25 -07:00
Andreas Gal
3a4d105a0f If the outer tree has a slot in an integer register, but the inner tree expects a double, make sure to promote the value before calling the tree, otherwise the inner tree will read the value from the stack incorrectly. 2008-08-20 00:51:56 -07:00
Andreas Gal
fb3cf056d9 Correctly calculate tree call stack adjustment, even if we don't have any arguments in the current frame and hand pick some cleanups from the backed-out changeset. 2008-08-19 23:31:33 -07:00
Blake Kaplan
62fcdc68d4 bug 418051 - Don't allow shorthand object initializer through destructuring assignment. r=brendan 2008-08-19 23:31:21 -07:00
Andreas Gal
39d9d53d83 Back out multi-trees. There is absolutely no way this will be debugged in time for tomorrow. Need a bit more gdb man-power. 2008-08-19 23:28:13 -07:00
Andreas Gal
55c1e3d15d Always blacklist the first fragment in the peer list, and blacklist if we see a loop that is not type-stable. 2008-08-19 23:10:28 -07:00
Andreas Gal
25bf562fe6 Don't build trees inside tree calls if no suitable tree can be found (for now.) 2008-08-19 23:00:19 -07:00
Andreas Gal
4ee5ead209 Improved debug output. 2008-08-19 22:59:08 -07:00
David Anderson
69c4638355 Merge. 2008-08-19 22:33:43 -07:00
Andreas Gal
8569359e49 Add debugging facilities for typemaps and fix sp_adj calculation for tree calls. 2008-08-19 22:29:02 -07:00
David Anderson
9fa5be54af Merge. 2008-08-19 21:32:22 -07:00
David Anderson
20e464b4f9 More AMD64 fixes (release build works now, and fixed verbosity bug). 2008-08-19 21:31:23 -07:00
Andreas Gal
454c89d72b Support multiple fragments with different entry maps per PC location. 2008-08-19 20:30:16 -07:00
Jason Orendorff
f9365c3994 Backing out changeset cf6c811e1272 (bug 407216) due to debug assertions. 2008-08-19 22:28:26 -05:00
Jason Orendorff
fe99024391 Bug 407216 - DOM quick stubs - faster paths for top N DOM methods (r+sr=jst, security r=mrbkap, build r=bsmedberg)
* * *
* * *
2008-08-19 21:38:24 -05:00
David Anderson
9a5b3b4307 AMD64 trace-tests.js passes now (hacked in LIR_qcmov opcode, corrected builtin return types). 2008-08-19 17:19:19 -07:00
Neil Rashbrook
f48015a1f0 Bug 450651 Use host outoption for host binaries r=mrbkap 2008-08-20 00:02:44 +01:00
Andreas Gal
b3efe4fbeb Clear out the list of global slots when the shape changes. 2008-08-19 13:34:20 -07:00
Andreas Gal
1ee261ca2e Emit the tree call stack setup code before executing the inner tree, otherwise we might see stale references to instructions prior to the call that no longer guarantee certain types (since the inner tree overwrite them.) 2008-08-19 13:11:18 -07:00
Andreas Gal
1ded8ec0ad Merge. 2008-08-19 11:32:52 -07:00
Andreas Gal
e79f9ed689 Intern globals per-context, not per tree, which allows transitioning between trees that use globals. The type of all global slots compiled code uses is expected to remain stable, otherwise the entire code cache has to be flushed. Changes to the shape of the global object also flush the code cache. Working for trace-tests.js, but fails math-partial-sum.js 2008-08-19 11:32:36 -07:00
David Anderson
b279c87417 Disabled 64-bit JIT for now, failing 3 test cases. 2008-08-19 11:19:56 -07:00
David Anderson
ee4a887045 Merge. 2008-08-19 11:02:57 -07:00
David Anderson
aef458673b Fixed codegen bug for amd64 64-bit binary ops. 2008-08-19 11:00:17 -07:00
Brendan Eich
c2229dbd5e Back out changeset 1d0574db8320 (for 450997), it was based on a bum steer. 2008-08-18 22:18:33 -07:00
Andreas Gal
dfb94ccec1 Add a global type map to the monitor and rename slotList to globalSlots. 2008-08-18 21:08:35 -07:00
Brendan Eich
76380c598b Add a final js_ReconstructStackDepth assert after setting fp->regs->sp in js_ExecuteTree's bail-out epilog. 2008-08-18 19:26:47 -07:00
Brendan Eich
87a6e416ef 1. Fix json2.js (it crashes later, another bug) to restore a non-empty stack for a call with missing args after a nested bail-out. This involves changing js_SynthesizeFrame to return the number of stack slots it reconstructed that map to native slots. It also means not counting the missing args in the spdist uint16 pushed onto the state.rp stack (this was the root of all over-counting evil, for this bug).
2. Use if (C) { do {...} while (C); } instead of if (C) { while (C) {...} } and other style fixage.
2008-08-18 18:36:05 -07:00
David Anderson
e503629dbe Fixed AMD64 accidentally treating the shape as a 64-bit integer. 2008-08-18 17:36:24 -07:00
David Anderson
908183cf6f Merge. 2008-08-18 16:38:32 -07:00
David Anderson
0f46c5d568 Fixed some bugs in the AMD64 port, still crash in 5 sunspider tests. 2008-08-18 16:23:37 -07:00
Brendan Eich
21b6e353e2 Cosmetic cleanup. 2008-08-18 15:32:17 -07:00
Andreas Gal
f1b353f1c2 Add a place to store the current shape of the global object as we add slots it the global slot list. 2008-08-18 13:14:19 -07:00
Andreas Gal
ad4bfa3b5b Add a global slot list to the trace monitor. 2008-08-18 13:12:19 -07:00
David Anderson
938044313a Added AMD64 JIT building to the makefile. 2008-08-18 12:57:35 -07:00
Andreas Gal
199891edab Merge. 2008-08-18 12:55:09 -07:00
David Anderson
751ef6d2af Improved AMD64 nanojit compatibility. 2008-08-18 12:54:04 -07:00
Andreas Gal
afc782cbe2 Make sure to trasm the vmprivate of dependent trees as well. 2008-08-18 12:53:38 -07:00
David Anderson
d584e27cb8 Fixed compiling on AMD64. 2008-08-18 12:41:55 -07:00
David Anderson
b39fadd1f3 Updated nanojit for the AMD64 patch. 2008-08-18 12:32:14 -07:00