Commit Graph

17571 Commits

Author SHA1 Message Date
Andreas Gal
8d4c97dbef FlushNativeStackFrame currently only handles the innermost nested trees writeback, so at least make it use the proper adjusted stack base for that. 2008-08-13 19:23:28 -07:00
Brendan Eich
8efccf4d7d Abort recording if unwinding from js_Interpret to js_Invoke and still recording (this can happen via fun.call/.apply). Also assert in threaded interpreter BEGIN_CASE and DO_OP (from END_CASE) that we either have no recorder or are using the recordingJumpTable. 2008-08-13 19:22:07 -07:00
Andreas Gal
01efe3882f Update inlineCallCount with the total call stack height, which is the sum of rp_adj and any adjustments nested trees added. Also make sure to read all stack adjustment information from the tree we exit on, not the tree we entered (might be different in case of nesting.) 2008-08-13 19:09:05 -07:00
Andreas Gal
30b82dbcbd Print relative stack instead of absolute stack address upon side exit (debug mode). 2008-08-13 18:28:43 -07:00
Andreas Gal
c0e640829a Added test case for nested exits. 2008-08-13 18:13:22 -07:00
Andreas Gal
9350282579 Implement nested side exits. 2008-08-13 18:10:19 -07:00
Andreas Gal
222e746fe7 Merge. If I had a cent for every merge. Sigh. 2008-08-13 17:48:04 -07:00
Andreas Gal
f1d87d6234 Reshuffle code lines in the side-exit return path (do asserts closer to the GlobalFrame writeback.) 2008-08-13 17:47:18 -07:00
David Anderson
4d25c18771 Merge. 2008-08-13 17:46:58 -07:00
David Anderson
87d9c2089d Merge. 2008-08-13 17:45:50 -07:00
Brendan Eich
fc782418ee Set rval_ins with initializing=true because nothing will get the callee, so the tracker won't have tracked it yet if it's in virgin stack. 2008-08-13 17:45:49 -07:00
David Anderson
3652f7c126 Fix from brendan for propertyIsEnumerable having an inconsistent return type. 2008-08-13 17:44:26 -07:00
Brendan Eich
880030b373 Forgot to string-tag before going from atom to jsid in two builtins. 2008-08-13 17:20:16 -07:00
Andreas Gal
eac5c3ed47 Merge. Lame. 2008-08-13 17:13:53 -07:00
Andreas Gal
201341cfc5 Add nestedExit to InterpState and comment its fields. 2008-08-13 17:12:55 -07:00
David Anderson
a9922db939 Merge. 2008-08-13 17:12:08 -07:00
David Anderson
4c7aaa248b Merge. 2008-08-13 17:11:22 -07:00
Brendan Eich
ca1e2a283a Fix prototype hit case in prop to advance obj and obj_ins up the proto chain. 2008-08-13 17:10:18 -07:00
David Anderson
fe66e966ca Fixed from brendan for counting disparity between nativeStackSlots and FORALL_SLOTS_IN_PENDING_FRAMES.
Added debug code to catch future disparities.
2008-08-13 17:09:16 -07:00
Andreas Gal
ee55743358 Don't print LeaveFrame debug info when falling out of the global frame. 2008-08-13 16:57:14 -07:00
Andreas Gal
9c95a20382 Merge. 2008-08-13 16:43:46 -07:00
Andreas Gal
e702dc5ac4 When re-importing register values after a tree call, make sure to use the inner tree's nativeStackBase, since we also use the inner tree's sp. 2008-08-13 16:29:59 -07:00
Brendan Eich
7fc14c40cf Fix bogus varval assert. 2008-08-13 16:14:22 -07:00
Andreas Gal
27c128f706 Merge. 2008-08-13 15:50:40 -07:00
Andreas Gal
e68f9ee859 Read back registers used by inner tree relative to inner_sp (the adjusted sp value). Print frames we enter into and return to in Enter/LeaveFrame. 2008-08-13 15:50:11 -07:00
Brendan Eich
3d21588b2c Major and winning overhaul to for-in codegen (mad props to Andreas for advice). 2008-08-13 14:02:35 -07:00
Andreas Gal
892137794b Don't call inner trees if they use global slots since we don't support those in inner trees yet. 2008-08-13 14:00:37 -07:00
Andreas Gal
1d809d7adf Merge. 2008-08-13 13:52:21 -07:00
Andreas Gal
fa09943222 Flexible call stack allocation with proper guarding for call stack overflows. 2008-08-13 13:51:59 -07:00
David Anderson
ff9bb9ea9d Fixed ifop predicting NaNs as true when they should be false. 2008-08-13 12:25:50 -07:00
Andreas Gal
76a2288dcc Assert on bogus always-exit guards. 2008-08-13 12:01:06 -07:00
David Anderson
b070351870 Fixed ExprFilter emitting corrupt LIR when reducing guards. 2008-08-13 11:11:37 -07:00
Andreas Gal
fa3085ca3d Merge. Nothing to see here. Move along. 2008-08-13 03:55:24 -07:00
Andreas Gal
5d7914a698 Blacklist a trace if we hit a global shape mismatch. This makes us suck less on date-format-tofte until we find a way to fix the property cache misses. 2008-08-13 03:54:54 -07:00
Andreas Gal
2a60d7a27b Only trash the tree, not the entire cash, on global shape mismatch. 2008-08-13 03:50:53 -07:00
Brendan Eich
ed5f8343a2 Fix deep for-in loop bug (450334). 2008-08-13 00:41:13 -07:00
Brendan Eich
9226769821 Add missingArgTest2 to cover the nativeStackOffset bug fixed recently. 2008-08-12 23:58:50 -07:00
Andreas Gal
335fb1edd8 Merge. 2008-08-12 23:31:12 -07:00
Andreas Gal
91e81a361d Don't cache loads in import into the nativeFrameTracker, since when coming back from a nested tree we re-load the frame state into registers using import() based on the called tree's state, which pushes loads into the nativeFrameTracker that are relative to the inner tree's call depth. Only cache on writes now, which should be always safe. 2008-08-12 23:30:49 -07:00
Brendan Eich
17a4dd5c46 Remove bogus assertion. 2008-08-12 23:30:38 -07:00
Andreas Gal
8af146d25b Merge. 2008-08-12 23:25:40 -07:00
Andreas Gal
a271a0ee0e When re-importing registers after a tree call, make sure to use the inner trees calldepth at its side exit, not the call depths of the calling tree. 2008-08-12 23:25:17 -07:00
Brendan Eich
452bea0c69 Fix missing argument stack offset computation (in both places: FORALL_FRAME_SLOTS and nativeStackOffset). Clear missing args in nativeFrameTracker. 2008-08-12 23:21:52 -07:00
Andreas Gal
58cd4dc419 Introduce a large fixed-size native frame stack and store its ceiling in state->eos. 2008-08-12 21:39:44 -07:00
Andreas Gal
3fd013cd9b Merge. 2008-08-12 20:19:05 -07:00
Andreas Gal
ed3125b915 Hands down the hardest bug I had to debug in TM so far. Make sure to read back any registers an inner tree might have changed before writing out the typemap for the nested_exit guard, otherwise we might be pointing to old stale pre-(inner-)loop state and pick an incorrect (in this case too narrow) type. fannkuch=2.8x with this. 2008-08-12 20:18:29 -07:00
Brendan Eich
967ec56341 - Add String match and three replace overloadings, and allow known native matching to continue in search of exact match (not best, and not abort on first mismatch).
- Add CallGetter built-in and use it for regexp class-getter-implemented prototype properties.
- Add BUILTIN5 support (this should be "it" ;-).
2008-08-12 18:52:28 -07:00
Andreas Gal
4ebf8a417d Merge. 2008-08-12 17:40:56 -07:00
Andreas Gal
95c7647b28 Add constvalp and isconstp to LIR instructions (nanojit). 2008-08-12 17:37:38 -07:00
Brendan Eich
48181da4e7 Use aobj consistently in test_property_cache (450317). 2008-08-12 17:21:32 -07:00