Commit Graph

813 Commits

Author SHA1 Message Date
Andreas Gal
57a8fae3d1 Merge. 2008-08-29 15:17:20 -07:00
Andreas Gal
9e7246a2b9 Track locations of control-flow merges in cfgMerges during recording (452869). 2008-08-29 15:12:17 -07:00
David Anderson
a2fdc866ff Fixed assumptions that nanojit's insCall() would not clobber the input argument array (bug 452853, r=gal). 2008-08-29 14:22:21 -07:00
David Anderson
f10bd19c8e Abort recording on invalid string indexes for JSOP_GETELEM (bug 452713, r=brendan). 2008-08-29 13:05:41 -07:00
Brendan Eich
f92de94117 Fix bogus JOF_VARPROP test; fix uninitialized id in JSOP_IN recorder, should have caught it when I reviewed danderson's patch. 2008-08-29 00:58:10 -07:00
Brendan Eich
655888f31e Consolidate equal and cmp code harder, trace switch ops, use INS_CONST more (bug to be filed -- bugzilla down atm). 2008-08-28 23:50:48 -07:00
Andreas Gal
1115d0162b Unroll loops we were not able to call once, but only if we don't have a tree available for that loop header. 2008-08-28 23:19:23 -07:00
Andreas Gal
535bdef3ee Merge. 2008-08-28 22:34:14 -07:00
Andreas Gal
c263b7a218 Merge. 2008-08-28 22:33:45 -07:00
David Anderson
951c95658a Fixed trying to record JSOP_IN with some unusuable left-hand values (bug 452724, r=brendan). 2008-08-28 22:33:32 -07:00
Andreas Gal
4fb4d1fdc5 Monitor downward branches only during recording (452709). 2008-08-28 22:33:22 -07:00
Brendan Eich
1f07d79c75 Abort trace if forInLoop values are not stable; currently, not strings (bug 452703). 2008-08-28 21:41:15 -07:00
Brendan Eich
25a591f870 Fixed bogus assertion in test_property_cache (bug 452693, r=dvander). 2008-08-28 21:15:39 -07:00
Andreas Gal
f10a08c384 Cleanup detection of gotos that were emitted as a result of a BREAK statement. 2008-08-28 17:46:25 -07:00
Andreas Gal
65bc53f864 Merge. 2008-08-28 17:01:22 -07:00
Andreas Gal
c0e0852952 Notify the monitor of all branches, not just backwards branches. 2008-08-28 17:00:52 -07:00
Blake Kaplan
977123733e Bug 452338 - Abort on the weird case where we find a global name on the prototype of the scope chain. r=brendan 2008-08-28 16:37:03 -07:00
Andreas Gal
c274daed5c Merge. 2008-08-28 14:51:16 -07:00
David Anderson
1b50da7117 Abort recording on JSOP_INCPROP with an invalid slot (bug 452336, r=brendan). 2008-08-28 14:43:44 -07:00
Andreas Gal
453ea3339f If the inner tree cannot be adjusted to match the call site of the outer tree because it uses an int where the outer tree uses a double, trash the inner tree, not the outer one. In CallTree, return the innermost guard we return from, not the outermost one. Jump over at most 1 loop edge that doesn't go back to our own header, not an arbitrary amount. 2008-08-28 14:24:58 -07:00
David Anderson
48fe80af99 Merge. 2008-08-28 13:15:34 -07:00
David Anderson
eb051d8c73 Better fix for bug 451666 - only track new rval for primitives (r=brendan). 2008-08-28 13:14:59 -07:00
Blake Kaplan
1006bbf99c Bug 452333 - Don't push tagged jsvals on the stack. r=brendan 2008-08-28 12:40:48 -07:00
David Anderson
d7c4af1e0c Merge. 2008-08-28 11:56:45 -07:00
David Anderson
d7b5791be9 Track new rval from JSOP_RETURN when constructing inline frames (same as JSOP_STOP). 2008-08-28 11:55:58 -07:00
Blake Kaplan
2bcc0a39b5 Bug 452573 - The interpreter's JSOP_VOID doesn't push anything, so we shouldn't expect it to. r=brendan 2008-08-28 11:55:27 -07:00
Jesse Ruderman
df0d2c793b Remove extra space in tracing statistics message (bug 452571). r=gal 2008-08-28 00:16:50 -07:00
Brendan Eich
5d132dba83 Record JSOP_IN (452563, r=gal). 2008-08-27 23:00:43 -07:00
Andreas Gal
2316d281a0 Keep unrolling inner loops as long we are not hitting the same inner loop edge twice in a row (452362). 2008-08-27 17:48:15 -07:00
Andreas Gal
4b9cda096c Merge. 2008-08-27 17:26:36 -07:00
Andreas Gal
cff18f06cd Fix trashing of inner trees. Keep track of trees that call to a tree and flush them as well since they directly embed the code address. Since flushing an inner tree might invalidate the tree we are currently compiling, trees are now trashed in the destructor of TraceRecorder. 2008-08-27 17:25:56 -07:00
David Anderson
ccc26331ca Removed INS_CONSTPTR use with JSVAL_TAG to discourage future 64-bit problems. Fixed 32-bit build. 2008-08-27 16:32:11 -07:00
David Anderson
98306ccb74 Merge. 2008-08-27 16:09:17 -07:00
David Anderson
d0d64bbeff Added LIR_qior/pior. Fixed more AMD64 page jumping bugs. Fixed some other AMD64 usage bugs in jstracer. 2008-08-27 16:08:59 -07:00
Andreas Gal
e8fcb3bd37 Merge. 2008-08-27 14:48:59 -07:00
Andreas Gal
3fb237f38c Loops with a single iteration start tracing, but never complete since we immediately walk past the loop edge after the first iteration. At least try to complete the loop around it by walking past such thin inner loops when compiling the outer loop (452362). 2008-08-27 14:46:57 -07:00
Brendan Eich
4842b435c5 Oops, not enough copying... 2008-08-27 13:54:05 -07:00
Brendan Eich
510ec8bdce Fix a bug Jesse reported: insufficient copy/paste from record_JSOP_CALL to record_JSOP_NEW. 2008-08-27 13:52:46 -07:00
Brendan Eich
9cb246a8fc Fix another broken assert (452372). 2008-08-27 01:10:44 -07:00
Andreas Gal
7df899a9f5 Merge. 2008-08-26 21:46:21 -07:00
Andreas Gal
418b15eadd Flag a side exit as loop exit only if the underlying loop condition actually targets the current loop header, otherwise treat it as a branch exit. This is required for inner loops where we unroll the first iteration but the loop condition immediately fails. If we report such exits as loop exits, no branch gets ever attached to them and we keep side-exiting over and over. 2008-08-26 21:43:59 -07:00
Brendan Eich
ae9605be38 Correct (but sadly a bit slower) property cache guarding (452140, r=shaver). 2008-08-26 21:26:10 -07:00
Brendan Eich
e326b78b55 Added knownNative for num_toString (bug 452340, r=dvander). 2008-08-26 20:00:11 -07:00
Andreas Gal
40796f4154 For global code assume that no slots are below the current frame. 2008-08-26 13:25:40 -07:00
Andreas Gal
795f7ae426 Merge. 2008-08-26 01:01:24 -07:00
Andreas Gal
eb0c261390 When extending an outer tree from its nesting guard, the guard we actually exited on determines the typemap for the current frame and all inlined frames, whereas the nesting guard is consulted for all type information frames below the current frame. 2008-08-26 01:00:53 -07:00
Brendan Eich
a7cdb3ddb2 Fix warning. 2008-08-25 23:22:20 -07:00
Andreas Gal
4bb68b852c Rename lr->anchor in AttemptToExtendTree() 2008-08-25 23:19:00 -07:00
Andreas Gal
24b663fd61 Determine the tree we have to grow from the side exit we attach to in AttemptToExtendTree() instead of passing the parameter in. 2008-08-25 23:17:38 -07:00
Brendan Eich
43b25b3c09 Rename gcDontBlock to runningJittedCode, and assert it's false on entry to js_Interpret (for 451657, but not the fix, just prolog). 2008-08-25 23:08:21 -07:00