Commit Graph

17494 Commits

Author SHA1 Message Date
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
Andreas Gal
9ea4e8a477 Merge. 2008-08-12 16:57:55 -07:00
Andreas Gal
d56662f293 Enumerate missing argument slots on the caller's stack and initialize them to undefined (450304). 2008-08-12 16:51:55 -07:00
Brendan Eich
a4111eea56 Fix shapelessUnknownCalleeHelper. 2008-08-12 16:36:32 -07:00
Brendan Eich
0ceb399b55 Merge. 2008-08-12 16:35:11 -07:00
David Anderson
a8821cdfc6 Added NaN test case that fails when jitting; currently looking into why. 2008-08-12 15:45:06 -07:00
Brendan Eich
25fc093756 Fix annoying warnings, finally. 2008-08-12 14:50:42 -07:00
Andreas Gal
4b6c770288 Merge. 2008-08-12 14:29:09 -07:00
Andreas Gal
1819586877 js_obj_hasOwnProperty is supposed to return a boolean but was incorrectly generating code to return a number, resulting on a failure in the boolean comparison due to an unexpected i2f (450304). 2008-08-12 14:28:15 -07:00
David Anderson
f4b6e09a98 Merge. 2008-08-12 11:53:24 -07:00
David Anderson
c340cb93c0 Only use fastcall on x86. 2008-08-12 11:46:57 -07:00
Brendan Eich
64fa74acf5 More guard argument formatting. 2008-08-12 11:36:52 -07:00
David Anderson
5e75ec729a Merge. 2008-08-12 10:47:50 -07:00
David Anderson
40213894ff Fixed nanojit using a variable before it got set (verbosity mode only it seems). 2008-08-12 10:45:24 -07:00
shaver@mozilla.org
3e4452be3c fix !JS_TRACER build 2008-08-12 13:16:47 -04:00
shaver@mozilla.org
3f2af7e42d add way to explicitly disable tracer for easier testing 2008-08-12 13:16:30 -04:00
Brendan Eich
827b341985 Consolidate common name (global slot) addressing code. 2008-08-12 09:42:29 -07:00
Brendan Eich
26c7507913 Put trailing args on their own lines when they otherwise would seem to associate with a nested call in a previous arg position. 2008-08-12 09:27:54 -07:00
Brendan Eich
74c6d3ffe3 Merge, plus ((void)0) parens. 2008-08-12 09:23:38 -07:00
Brendan Eich
fd08308ba0 Fix goto over init whinage. 2008-08-12 09:18:19 -07:00
shaver@mozilla.org
41a6158c57 fix build for !JS_TRACER, both threaded and switch interps 2008-08-12 12:09:59 -04:00
shaver@mozilla.org
9d4a33a8c6 guard all of jstracer.h against non-tracer builds 2008-08-12 11:36:29 -04:00
shaver@mozilla.org
1813fb2fa7 NAMEINC, INCNAME, NAMEDEC, DECNAME 2008-08-12 11:33:40 -04:00
Andreas Gal
b94f5433e5 Merge. 2008-08-12 03:40:16 -07:00
Andreas Gal
b4f7639e6e Don't read type from typemap if we already have it in a local variable. 2008-08-12 02:00:05 -07:00
Andreas Gal
7e95e972d8 Don't re-record traces over and over in case of excessive type mismatches. Instead, blacklist the fragment and slowly back away from recording it. 2008-08-12 01:31:28 -07:00
Brendan Eich
8d77aad49c JSOP_FORNAME. 2008-08-12 01:06:02 -07:00
Brendan Eich
d2e6e9e641 Factor forInOp from JSOP_FORLOCAL, use it from JSOP_FORARG's recorder too; tighten up JSOP_SETNAME. 2008-08-12 00:34:43 -07:00