Commit Graph

875 Commits

Author SHA1 Message Date
Andreas Gal
3c8d2430dd Merge. 2008-09-09 17:21:32 +02:00
Andreas Gal
85b1749c8c Capture the typemap of the outgoing stack frame during a function call and store a pointer to it on the native call stack. 2008-09-09 15:16:21 +02:00
Andreas Gal
6a76d26107 Extract the snapshot code for a single slot into determineSlotType() und use that method in snapshot(). 2008-09-09 15:06:23 +02:00
Blake Kaplan
4203e79309 Trace Math.max. r=brendan 2008-09-08 20:06:58 -07:00
Brendan Eich
cd3284e96a Fix bug 454266 - js_FillPropertyCache uses the wrong scope's shape sometimes (r=mrbkap). 2008-09-08 15:51:47 -07:00
Andreas Gal
32f22d2e1e Don't try to record recursion until we support it properly (454277). 2008-09-08 22:49:17 +02:00
Boris Zbarsky
c57647d6f4 Bug 451605. Make sure to properly restore the thisp for the innermost frame when taking a nested side exit with a callDepth > 0. r=brendan,gal 2008-09-08 08:55:20 -04:00
Brendan Eich
082cb07c53 Make return at callDepth 0 terminate the loop, like break (454027, r=gal). 2008-09-08 00:31:18 -07:00
Brendan Eich
e697e5113d Bug 454044 - TM: JSOP_NOT needs isPromoteInt/::demote help. 2008-09-07 01:40:24 -07:00
David Anderson
5018287de0 Trace through parseInt(double), bug 454037 r=gal+brendan. 2008-09-07 02:41:10 -05:00
Brendan Eich
ba17412f5e Easy fixes to avoid aborting on V8/raytrace.js: MAX_CALLDEPTH doubled to 10; JSOP_NOT handles int and undefined. 2008-09-05 18:57:32 -07:00
Brendan Eich
623433f549 Merge. 2008-09-05 18:34:16 -07:00
Brendan Eich
fc936fa1da Checkpoint arguments tour-de-force (453730). 2008-09-05 18:29:08 -07:00
Ginn Chen
2763e5d63e Make TraceMonkey build on Solaris x86 with Sun Studio 12 (bug 452588, r=danderson). 2008-09-05 16:56:03 -07:00
David Anderson
9937dc1262 Trace through Math.log as a known native (bug 453868, r=brendan). 2008-09-05 14:25:01 -07:00
David Anderson
ba87213e86 Abort tracing if a callee encounters a primitive |this| and doesn't support it (bug 453701, r=brendan). 2008-09-05 13:55:03 -07:00
Blake Kaplan
b4d3674f58 Bug 453747 - Replace any holes on the stack with undefined. r=gal 2008-09-04 22:14:27 -07:00
David Anderson
3e31bc7fb2 Another fix for the patch to bug 452884 -- when ignoring switch guards, don't update the tracker stack. 2008-09-04 20:11:58 -07:00
David Anderson
8c610797f3 Merge. 2008-09-04 19:43:58 -07:00
David Anderson
05991c905d Better fix for bug 452884 (changeset badf4c84665f regressed) - don't emit guards rather than bailing out of comparisons (r=gal). 2008-09-04 19:43:07 -07:00
Brendan Eich
ae2a22c019 Bug 453747 - Avoid overuse of the fun_getProperty class getter to optimize getting and setting random properties on functions. r=mrbkap 2008-09-04 19:30:58 -07:00
Brendan Eich
b35babfe1d House style bracing for multiline then clause. 2008-09-04 18:53:31 -07:00
David Anderson
09123ebd63 Don't guard on constant decisions, which will always have the same path (bug 452884, r=gal). 2008-09-04 14:44:59 -07:00
David Anderson
ede63892f9 Disabled building AMD64 JIT in shell until regressions are tracked down. Fixed some compiling errors while I'm poking around here (bug 453674). 2008-09-04 10:58:35 -07:00
Peter Weilbacher
046dd17991 [OS/2] Bug 452630: Build break in jstracer.cpp (r=gal) 2008-08-28 18:28:52 +03:00
David Anderson
afe91e2757 Merge. 2008-09-03 23:28:27 -07:00
David Anderson
b791826dc5 Fixed JSOP_NEG with 0 being tracked as a promotable int, and added an equals-zero guard for the same opcode (bug 453049, r=gal). 2008-09-03 23:27:58 -07:00
Brendan Eich
9657023ef6 Missing guard for CallGetter builtin (453580, r=gal). 2008-09-03 22:32:13 -07:00
Blake Kaplan
d9be63b689 Handle an interpreted constructor returning an object. r=brendan 2008-09-03 18:21:15 -07:00
Andreas Gal
1d44de3cb6 Merge. 2008-09-03 01:22:07 -07:00
Andreas Gal
483b7fd5a1 Removed a bogus assert. Inner loops can exit on a goto in case we hit a break (453051). 2008-09-03 01:21:21 -07:00
Brendan Eich
4fa7c5195d Put the trace-recording/executing flag in the trace monitor to handle many contexts per thread (451666, r=gal). 2008-09-03 00:38:24 -07:00
Andreas Gal
c466258c18 Limit tree growth to 16 traces per tree to avoid code explosion due to tail duplication (452869, r=danderson). 2008-09-02 23:52:11 -07:00
Brendan Eich
3cd36a3b5f Fix JS_THREADSAFE build, pick extern nit. 2008-09-02 23:00:23 -07:00
Vladimir Vukicevic
dfd7f72c0a Fix up some ifdefs and debug printfs 2008-09-02 22:42:25 -07:00
Vladimir Vukicevic
a4ec50d569 Add VFP for floating point ops to nanojit ARM backend. 2008-09-02 22:29:23 -07:00
Vladimir Vukicevic
420e72ed85 b=449526, TM: fix up ARM code generation / softfloat 2008-09-02 22:29:23 -07:00
Brendan Eich
e3916b316d Teach js_IsLoopExit about JSOP_AND, JSOP_OR, etc. and separate extended jump cases so they can get the extended offsets. 2008-09-02 22:29:06 -07:00
Blake Kaplan
3d517dff43 Remove outdated comment. r=gal 2008-09-02 22:18:57 -07:00
Andreas Gal
f91071f139 Allocate the oracle dynamically instead of making it a global object to avoid atexit C compatibility issues (453388, r=danderson). 2008-09-02 21:56:22 -07:00
Blake Kaplan
8f80eec070 Don't flush anything if we're not even enabled. r=gal 2008-09-02 14:02:13 -07:00
Ginn Chen
76f8dc0daf On x86 compilers without fastcall, simulate it when invoking traces and un-simulate it when invoking builtins (bug 452390, r=dvander). 2008-09-02 11:43:55 -07:00
Andreas Gal
1632042ed8 Merge. 2008-09-01 18:37:27 -07:00
Andreas Gal
4a36a6b709 Backed out changeset 25f856429db3. Wrong fix. Looks like jstracer.h is not included. We in fact can call methods of TraceRecorder directly. Sigh. I wish we had a try server. 2008-09-01 18:37:04 -07:00
Andreas Gal
d85543063d Merge. 2008-09-01 18:33:05 -07:00
Andreas Gal
fe70cfea9b Introduce js_DeepAbort to be used from jsinterp.cpp, instead of trying to call TraceRecorder->deepAbort directly (453235). 2008-09-01 18:32:41 -07:00
Brendan Eich
b3042b928d Holey single-element dense array has null dslots, requires nulld defense (453173). 2008-09-01 13:59:30 -07:00
Brendan Eich
cda5a77a1b Fast followup fix for unintended change to 'f' prefix handling in TraceRecorder::record_JSOP_NEW (452878). 2008-09-01 01:44:26 -07:00
Brendan Eich
5a8cb06838 Kind of an Array initialiser tour-de-force for bug 452878:
1. Split FastNewArray from FastNewObject built-in for greater speed/specialization and further splitting into Array_1str, etc.
2. Add Array_1str, Array_2obj, and Array_3num builtins for benchmarked new Array(...) constructions.
3. Export ARRAY_SET_DENSE_LENGTH and ARRAY_GROWBY via jsarray.h to jstracer.cpp.
4. Tweaked SetArrayElement to make common/best case code be the predicted/prefetched path.
5. js_MakeArraySlow now preserves the pre-slow length in JSSLOT_ARRAY_COUTN as a jsval-tagged int if possible -- this will help the tracer avoid aborting on dense arrays that turned slow but not sparse by addition of a named property.
6. Export js_fun_apply and js_Object from their respective .cpp files, in these cases just to jstracer.cpp via local prototypes (no .h files involved).
7. More INS_CONSTPTR and INS_CONST macrology for better names in trace debug spew.
8. Fix TraceRecorder::test_property_cache to avoid aborting on JSOP_SETNAME that creates a new global, by setting it to undefined so it can be lazily imported. This helps 3d-raytrace.js, which has an unintended global loop control variable in a function.
9. JSTraceableNative loses its premature-deadwood tclasp member (my bad).
10. TraceRecorder::record_JSOP_NEW() handles 'new Object' now along with the 'new Array' variations. I also cut down the copy-paste code from JSOP_CALL's record method to mostly what is needed now.
11. Add KNOWN_NATIVE_DECL macro for concise prototype of library-private js_* native functions, and alphabetized the lists (too long for any other order to be winning).
12. Big honking special case for foo.apply(obj, [str]), which we can generalize as needed. Helps string-tagcloud.js. What's cool is how tracing allows us to rewrite this to foo(str) with this set to obj, eliminating the Function.prototype.apply. This requires some rewriting in JSOP_ENDINIT's record method.
2008-09-01 01:24:58 -07:00
Jesse Ruderman
1b5148d940 Bug 452905 - Make js_RecordTree printfs only appear with TRACEMONKEY=verbose. r=gal 2008-08-30 02:21:00 -07:00