Commit Graph

1122 Commits

Author SHA1 Message Date
Andreas Gal
e2a6acb46a Use LIR_loop for loop edge to avoid going into a side exit handler at every loop edge (461231, r=danderson). 2008-10-22 16:00:08 -07:00
Andreas Gal
b14d526b66 Merge. 2008-10-21 17:50:52 -07:00
Andreas Gal
ec7efc925c Remove code to unlink trees to reduce the size of GuardRecord. Allow GuardRecords to share one common SideExit structure. The VM places both explicitly into the LIR (460538, r=danderson). 2008-10-21 17:50:32 -07:00
Jason Orendorff
e1877796ba Bug 460501 - Round-trip change due to "&&" constant-folding leaving extra parens. r=brendan. 2008-10-21 13:35:22 -05:00
Vladimir Vukicevic
3164784c33 Make ARM nanojit compile again (doesn't run) 2008-10-20 11:18:30 -07:00
Jason Orendorff
e0b7bce037 Bug 459266 - TM: Allow CALLINFO macros to specify linkage. r=brendan. 2008-10-16 14:24:10 -05:00
Jason Orendorff
f8a75808ed Bug 459446 - Trace JSOP_POPV. r=brendan. 2008-10-15 15:22:05 -05:00
Andreas Gal
ea1d9c5edc Allow a single level of self-calling until we have support for recursion (459775, r=brendan). 2008-10-13 23:20:39 -07:00
Graydon Hoare
bf84bf6273 Merge tamarin-redux (nanojit2) into tracemonkey (457786, r=edwsmith,gal,danderson). 2008-10-13 13:29:18 -07:00
David Anderson
55ee8061f8 Return innermost guard from js_ExecuteTree and not outermost (r=gal). 2008-10-13 12:44:37 -07:00
Jason Orendorff
12c5730930 TM: Remove unreachable "return false" in TraceRecorder::record_JSOP_NOT. No bug, r=gal. 2008-10-13 14:10:35 -05:00
Jason Orendorff
6b88d0da8d Bug 459426 - Reunite record_JSOP_{NEW,CALL}. r=gal. 2008-10-13 11:04:26 -05:00
Andreas Gal
9bfc3c5072 Properly recover from a nested side exit with more than a single level of nesting (459539, r=danderson). 2008-10-12 15:39:32 -07:00
Andreas Gal
d622ee23d8 Merge. 2008-10-11 20:27:03 -07:00
Andreas Gal
798a62ad00 Stack water level is off by +1 in getTop, and JSOP_CALLPROP premature updates the tracker (459537, r=danderson). 2008-10-11 20:26:29 -07:00
Boris Zbarsky
33415ac1fb Adding some documentation 2008-10-10 12:43:30 -04:00
Jason Orendorff
232767cb27 Bug 459294 - TM: move soft float builtins next to SoftFloatFilter. r=andreas. 2008-10-10 11:31:23 -05:00
Andreas Gal
9a086f63ae Don't carry around oldpc in AbortRecording path (459321, r=danderson). 2008-10-09 16:17:13 -07:00
Andreas Gal
35de6c0d9d Merge. 2008-10-08 21:02:57 -07:00
Andreas Gal
c974289da5 Support thin loops (iteration < 2) by closing the loop even if we are on the last iteration (456431, r=danderson). 2008-10-08 21:02:04 -07:00
danderson
c56579e021 Blacklist loop if its unstable and we don't recompile it (459174, r=gal). 2008-10-08 19:58:40 -07:00
Andreas Gal
afc99f7ccc In ifop, avoid eq0(eq0(x)), instead flip guard direction and use single eq0 (459164, r=danderson). 2008-10-08 17:49:54 -07:00
Andreas Gal
471ed73a35 Evaluate cond to true if value evaluates to true in non-fused if (459159, r=danderson). 2008-10-08 17:44:04 -07:00
Andreas Gal
fb350afe17 Non-fused ifs emit different comparison code than the interpreter uses (459151, r=danderson). 2008-10-08 16:23:54 -07:00
Jason Orendorff
3204ec178a Bug 459085 - TM: Number.toString traceable native is broken (r=gal) 2008-10-08 17:19:15 -05:00
Jason Orendorff
a27d101dab Bug 458735 - Improve internal API for traceable natives (r=brendan, nanojit r=edwsmith) 2008-10-08 17:08:33 -05:00
Andreas Gal
52f71e38dc Add missing comparison before letting the result of the conditional move flow into the guard for ordered boolean comparisons (457778, r=danderson). 2008-10-07 13:32:30 -07:00
Andreas Gal
1b0fd40e30 Trace push and pop for dense and sparse arrays (453734, r=brendan). 2008-10-07 11:00:16 -07:00
Brendan Eich
19e9638dc3 Bug 457920 - regexp-dna.js and generality want JSOP_GETELEM(dense array, "0") (r=mrbkap/gal). 2008-10-06 22:30:36 -07:00
Boris Zbarsky
cab53dbee6 Bug 456165. Trace |new Date()|. r=brendan 2008-10-06 20:28:22 -04:00
David Anderson
26d5db2cc5 Merge. 2008-10-06 16:48:14 -07:00
David Anderson
a4daa1c332 Fixed NaN handling again after backout of busted patch (bug 458472, r=gal). 2008-10-06 16:47:05 -07:00
Andreas Gal
40d1236378 Add support for writing back a boxed value when side-exiting on JSOP_RESUME (453734, r=brendan). 2008-10-06 16:22:57 -07:00
Andreas Gal
95b8fa8a84 Backed out changeset 2176f46b2702 (trying to identify cause for tinderbox burning). 2008-10-06 13:58:11 -07:00
David Anderson
c34cf06820 Fixed incorrect handling of NaN in ifop causing one new branch per iteration (bug 458472, r=gal). 2008-10-03 17:28:03 -07:00
Brendan Eich
502fb4e4c8 Bug 456831 - TM: Trace JSOP_SETLOCALPOP (r=mrbkap). 2008-10-02 15:39:25 -07:00
David Anderson
15a55dfe6d Fixed random test failures on AMD64, booleans were being loaded as 64-bit values. 2008-10-02 16:30:58 -05:00
Andreas Gal
49de341e4a Fixed more confusion of quads/numbers while emitting LIR (bug 458076, r=danderson). 2008-10-01 18:04:39 -05:00
Andreas Gal
8aa08cec2a For GETELEM/SETELEM we must check that its a native object first before trying to compare the objects shape to the shape of the global object to ensure its not aliasing the global object (457979, r=shaver). 2008-09-30 20:10:46 -07:00
Vladimir Vukicevic
f761c61b8e TM: move cmov_available setting into nj arch backends where appropriate 2008-09-30 17:15:09 -07:00
Andreas Gal
83ea7eb834 Merge. 2008-09-30 16:35:52 -07:00
David Mandelin
a9fa2e79d8 Don't trace a property access with a watchpoint (455413, r=brendan) 2008-09-30 13:34:17 -07:00
Andreas Gal
9adad6d33a Merge. 2008-09-30 13:02:53 -07:00
Andreas Gal
9c4eefd7ec Fix guarding in case of sparse array setelem (regression from 457580, r=danderson). 2008-09-30 13:02:23 -07:00
David Anderson
0804b51ac0 Fixed cmp number check logic for 64-bit environments (bug 457129, r=gal). 2008-09-30 11:45:00 -05:00
David Anderson
60ff7369b3 Fixed global object ownership change not aborting recording (bug 455173, r=gal). 2008-09-29 23:55:58 -05:00
David Anderson
75e7abcf38 Fixed crash when charCodeAt failed (with NaN) while recording (bug 457795, r=gal). 2008-09-29 23:20:34 -05:00
Brendan Eich
11db6aaf1d Always use JSBool (not bool sometimes, JSBool others) as JSVAL_IS_BOOLEAN's native slot type. 2008-09-29 22:27:43 -04:00
Andreas Gal
320dd48955 Add a resume point (JSOP_RESUME) immediately following JSOP_CALL (457789, r=mrbkap). 2008-09-29 18:49:40 -07:00
Andreas Gal
36e0e1fcbf Catch negative indexes at recording time. At runtime the builtins already check for us. Also guard for shape and setters/getters for non-dense integer index setelem case (57580, r=mrbkap). 2008-09-28 17:11:47 -07:00
Andreas Gal
5fdd5d2b67 Properly handle cmov and sse2 flags, and put them in a central place not into each platform-dependant assembler (457355, r=danderson). 2008-09-26 20:39:21 -07:00
Andreas Gal
5cc5fdedb8 Merge. 2008-09-26 19:21:27 -07:00
Andreas Gal
9960750440 Can't use JSVAL_IS_BOOLEAN on trace since boolean type contains undefined (457351, r=brendan). 2008-09-26 19:20:52 -07:00
David Anderson
ce71880114 Fixed a bug where no shape guard was emitted if a property was not found, causing it to remain unseen if added later. Abort in this case instead. (bug 457171, r=brendan) 2008-09-26 19:18:00 -07:00
Andreas Gal
884eabf3d5 Cleanup SETELEM, box early (in case we side exit on that) and don't set return value if INITELEM or followed by POP (457336, r=brendan). 2008-09-26 17:33:40 -07:00
Andreas Gal
93a292bd90 Merge. 2008-09-26 14:16:25 -07:00
igor
19701dd91b When replenishing the recovery double pool, detect if a GC happens (follow up work for 456826, r=gal). 2008-09-26 14:16:11 -07:00
Boris Zbarsky
fe2220afb1 Bug 456165 part 2. Trace Date.now. r=gal 2008-09-26 14:37:50 -04:00
Boris Zbarsky
a4b9ae6222 Bug 456370. Flush the fragment cache earlier on global shape mismatch. r=gal 2008-09-26 14:37:49 -04:00
Andreas Gal
7bb0a663e6 Use a pre-allocated pool of doubles to make sure we can safely recover in case of OOM or out of doubles (456826, r=brendan). 2008-09-25 19:11:48 -07:00
Brendan Eich
8030ce9609 Bug 457130 - TM: regexp lastIndex property not traced correctly (r=danderson). 2008-09-25 17:45:14 -07:00
David Anderson
3808521295 Workaround for intermittent js_GetClassObject failures (bug 457069, r=brendan). 2008-09-25 17:30:01 -07:00
Brendan Eich
9807c189fe Bug 457127 - TM: Crash on digg.com with adblock plus [@ ReconstructPCStack] (r=danderson). 2008-09-25 17:05:06 -07:00
Brendan Eich
f875d89fa2 Bug 456810 - TM: Crash on digg.com with adblock plus [@ ReconstructPCStack] (r=gal). 2008-09-25 15:04:48 -07:00
Brendan Eich
b7841b8cfd Fixed argc < nargs miscount in js_SynthesizeFrame and adjusted a related assertion (bug 456667, r=danderson). 2008-09-25 13:12:01 -07:00
Andreas Gal
4be7fad144 Merge. 2008-09-25 11:32:00 -07:00
Andreas Gal
5b117e1c3f Rewrite and cleanup GETELEM and SETELEM (455748, r=brendan). 2008-09-25 11:31:40 -07:00
Jason Orendorff
c35bfc3682 Bug 389034 - JS_SetProperty() ends up resolving w/o JSRESOLVE_ASSIGNING (r=brendan, sr=bzbarsky) 2008-09-25 11:13:31 -05:00
Brendan Eich
d56e0c688e Back off premature arguments tracing (453730 temporary measure). 2008-09-25 08:51:40 -07:00
Andreas Gal
97be5eae89 Merge. 2008-09-24 23:32:19 -07:00
Andreas Gal
eb5f8be2b1 Demote modulo operations to integer if both args are int (456934, r=brendan). 2008-09-24 23:28:56 -07:00
Brendan Eich
3238fa4180 Bug 456931 - TM: GVAR op record methods use wrong object (r=gal). 2008-09-24 23:09:46 -07:00
Brendan Eich
86b3bc3671 Bug 456932 - TM: Don't assert that global object can't grow additional properties if none are used by any trace and we don't check for global shape mismatches (r=gal). 2008-09-24 23:05:44 -07:00
Andreas Gal
c3ae2f8027 Merge. 2008-09-24 19:33:04 -07:00
Andreas Gal
f1cdf0fd1c Make sure JSOP_DEFLOCALFUN pushes the right function object (456470, r=brendan). 2008-09-24 19:31:51 -07:00
Brendan Eich
ac41d655c4 Merge pull from mozilla-central. 2008-09-24 18:46:44 -07:00
Andreas Gal
5fdc88e6b7 Only fasttrack applys where the arguments array has the same lengths as the expected arguments of the called function (456494, r=brendan). 2008-09-24 16:45:27 -07:00
Andreas Gal
e50585b158 Merge. 2008-09-24 16:32:36 -07:00
Andreas Gal
2bc1ba7a91 The meaning of T changed in our builtin table to object-only, so we have to mark the string builtins now with S, instead of T (454682, r=brendan). 2008-09-24 16:31:07 -07:00
Brendan Eich
d0645c2e47 Bug 456875 - TM: js_SynthesizeFrame must js_GetCallObject if JSFUN_HEAVYWEIGHT (r=mrbkap). 2008-09-24 15:43:19 -07:00
Brendan Eich
536e07f808 Bug 455146 - TM: Going to NEW Facebook profile page causes crash. [ @FlushNativeStackFrame] (r=danderson,mrbkap). 2008-09-24 15:40:08 -07:00
Andreas Gal
619234db4c Back out attempt to invoke natives that return a boxed value (namely push and pop, 453734). 2008-09-24 15:18:19 -07:00
David Anderson
a53ee95a20 Fixed breaks in switch statements causing premature end-of-traces (bug 456345, r=gal,brendan). 2008-09-24 13:12:25 -07:00
David Anderson
ccd5e825b9 Fixed jstracer's operator delete leaking out into other shared libraries (bug 452721, r=gal). 2008-09-23 18:12:53 -07:00
Andreas Gal
38a8e67fa5 Merge. 2008-09-23 17:19:02 -07:00
Andreas Gal
958c18fb2a Add builtin for invocation of match() on String objects (454682, r=danderson). 2008-09-23 17:18:40 -07:00
Doug Turner
cf6bf884ef Bug 456458 - JS Tracer uses file-system stat structure name - WinCE compile fails. patch by dougt, r=crowder 2008-09-23 14:35:29 -07:00
David Anderson
b3141a864c Fix where recording could crash if globalObj->dslots got reallocated (bug 451137, bug 455137, r=gal). 2008-09-23 13:29:41 -07:00
Andreas Gal
9ae4f39d64 Don't demote dmod to imod since there is no case that is guaranteed to produce valid integer results for all inputs (456540, r=danderson). 2008-09-23 12:21:15 -07:00
Brendan Eich
ef1a9b029a JS_snprintf for portability, not snprintf (bustage fix). 2008-09-23 00:59:59 -07:00
Andreas Gal
b967b5aec8 Use JS_snprintf instead of snprintf which Windows doesn't seem to know about (fix build breakage). 2008-09-23 00:58:11 -07:00
Andreas Gal
5054e0003b Don't emit constant guards for switch and ifop (455605, r=danderson). 2008-09-22 17:58:25 -07:00
Andreas Gal
d85fc31e85 Both sides of a modulo have to be demotable before we can optimize using imod (456477, r=danderson). 2008-09-22 17:02:33 -07:00
David Anderson
d1bc6dc0d8 Fixed jstracer.cpp no longer building in the browser because of -pedantic. 2008-09-22 11:23:22 -07:00
Boris Zbarsky
f1b69640dd Backed out changeset c0364f5e0a84 2008-09-21 09:02:09 -04:00
Boris Zbarsky
f068ba4b22 Adding missing file 2008-09-21 08:59:52 -04:00
Brendan Eich
782b633703 Fix bug 455763 (r=me). 2008-09-21 01:38:39 -07:00
Brian Crowder
d87b65397b Add a JIT stats object in the shell 2008-09-19 22:47:58 -04:00
Boris Zbarsky
4b972f730f Adding test for bug 451605 2008-09-19 21:58:00 -04:00
Andreas Gal
da5081c842 Properly calculate tree exit/call guards (bug 453397, r=danderson). 2008-09-19 18:45:57 -07:00
Andreas Gal
b20918f930 Dynamic reconstruction of arbitrary native frames (454402, r=danderson). 2008-09-19 16:09:18 -07:00
Andreas Gal
16fbc92e91 Backed out changeset 5e4ec981e9ea 2008-09-19 12:07:46 -07:00
Andreas Gal
f06affb8ed Allow tree to grow around unbox operations when the type of the value changes (452514, r=danderson). 2008-09-18 17:40:46 -07:00
Andreas Gal
9d7afa336a Add support for fast native that return jsval and wire up push/pop (453734, r=mrbkap). 2008-09-18 16:53:09 -07:00
Andreas Gal
9908bc1345 Merge. 2008-09-18 16:08:52 -07:00
Andreas Gal
2c406fe617 Add support for JSOP_NOT on strings (451787, r=danderson). 2008-09-18 16:04:54 -07:00
David Anderson
b895f26605 Fixed trying to record arguments past the formal arg count in JSOP_ARGSUB and JSOP_CALL (bug 455757, r=gal). 2008-09-18 15:23:22 -07:00
David Anderson
40d94b8bed Fixed -0 being treated as a promotable unsigned integer (bug 455758, r=gal). 2008-09-18 14:19:17 -07:00
Andreas Gal
708f08ca9c Properly handle side exits in scripted constructors (originally mrbkap, r=brendan, 453462). 2008-09-18 14:13:37 -07:00
Andreas Gal
f074cc7a9f Cleanup and unify comparison code (455811, r=danderson). 2008-09-18 13:31:26 -07:00
Andreas Gal
dab25898eb Don't export operator new/delete except if really needed (452721, r=danderson). 2008-09-16 13:57:59 -07:00
Andreas Gal
6de13bab44 Merge. 2008-09-16 13:24:57 -07:00
Andreas Gal
8ef12c41b5 Removed bogus assert (argv is NULL if callee is NULL, assert segfaults, 452495, r=danderson). 2008-09-16 13:24:34 -07:00
David Anderson
6dcdb6aeb9 Fixed pointer arithmetic bug during trace recording on 64-bit platforms (bug 454981, r=m_kato). 2008-09-16 10:48:54 -07:00
Andreas Gal
4f38e736a7 Backed out changeset 66a76c8c7346 2008-09-16 06:51:33 -07:00
brendan
18c4ef65df Don't forget to set RHS as result in SETPROP in case we don't call either SetPropHit or SetPropMiss (455408, r=gal). 2008-09-16 06:26:57 -07:00
Andreas Gal
61aeda1e95 Detect modulo by constant that is not zero and demote to integer modulo (451788, r=brendan). 2008-09-16 06:20:54 -07:00
Andreas Gal
70d28c8730 Backed out changeset 61b9209c186f 2008-09-15 19:59:06 -07:00
brendan
663c6aeb04 test_property_cache_direct_slot forgot to insist on a direct slot for get ops (453249, r=gal). 2008-09-15 19:40:43 -07:00
Andreas Gal
2e60c6889f Merge. 2008-09-15 17:09:45 -07:00
Andreas Gal
13cc3eaad6 Backed out changeset 87fe68f51647 2008-09-15 17:09:25 -07:00
Andreas Gal
950247bb9d Fix JSOP_NOT (455380, r=brendan). 2008-09-15 17:08:15 -07:00
Andreas Gal
0764f9fccb Demote modulo operation with a constant non-zero right hand side (451788). 2008-09-15 15:59:25 -07:00
Andreas Gal
a580bcd185 Implement comparison of numbers against null (455293, r=brendan,danderson). 2008-09-15 15:30:06 -07:00
Andreas Gal
f369f7dcfb Whitespace nit-pick (453261, r=brendan). 2008-09-15 15:26:16 -07:00
Andreas Gal
cdb4ed8fae Merge. 2008-09-15 15:01:44 -07:00
Andreas Gal
95068bdc26 Properly handle floating point array indexes (453261, r=brendan). 2008-09-15 15:00:40 -07:00
Vladimir Vukicevic
47e9d3a21b b=454530; misc trace abort fixes (trace String.concat); r=brendan 2008-09-15 17:30:05 -04:00
Andreas Gal
be1b44bf0e Trace slow array get/set of indexed props (453261, r=brendan). 2008-09-15 00:54:28 -07:00
Brendan Eich
a834957775 TraceRecorder::record_SetPropMiss mis-layered on top of record_SetPropHit (454689, r=mrbkap). 2008-09-11 15:53:00 -07:00
Brendan Eich
e0626f7799 Bug 453563 - TM: assertion when running unit tests with the JIT on (r=danderson). 2008-09-11 00:07:50 -07:00
Brendan Eich
ef47fcf4f8 Bug 454744 - TM: "Assertion failure: PCVAL_IS_SPROP(entry->vword)" with getter. 2008-09-11 00:00:37 -07:00
Benjamin Smedberg
b7c5804c10 Merge backout of the old patch for bug 453388 - we can statically allocate Oracle again, now that we're linking using the C++ linker magic, r=crowder 2008-09-10 15:38:28 -04:00
Benjamin Smedberg
bfeb170706 Merge backouts of bug 453388 - using g++ to link libjs.so means we can have static classes 2008-09-10 15:27:17 -04:00
Benjamin Smedberg
52e1ae86c7 Backed out changeset fc4a8cc07c9f - bustage fix from the first patch for bug 453388 which is also being backed out 2008-09-10 15:21:30 -04:00
Benjamin Smedberg
e780e5e3ea Backed out changeset e2614011f194 - Bug 453388 - the better solution is to allow static objects and link libjs.so with g++ so that _init and _fini run static constructors/destructors correctly backout r=crowder 2008-09-10 15:20:01 -04:00
Blake Kaplan
88856d9ef1 Merge tracemonkey -> mozilla-central 2008-09-09 23:38:21 -07:00
Brendan Eich
ce15bc7cd3 Bug 454039 - TM: don't abort TraceRecorder::record_JSOP_SETPROP on cache miss (r=mrbkap). 2008-09-09 22:22:52 -07:00
Brendan Eich
7d5c49516c Back out patch for bug 454039. 2008-09-09 16:55:07 -07:00
Brendan Eich
c7b40d9f99 Bug 454039 - TM: don't abort TraceRecorder::record_JSOP_SETPROP on cache miss (r=mrbkap). 2008-09-09 16:05:04 -07:00
Brendan Eich
ad49bd309d Bug 453918 - TM: eliminate silly map_is_native guards on globalObj (r=shaver). 2008-09-09 16:01:01 -07:00
Brendan Eich
94b10f6170 Avoid needless prototype-shape purges (454035, r=igor). 2008-09-09 11:24:03 -07:00
Brendan Eich
40cf4096c7 Avoid needless prototype-shape purges (454035, r=igor). 2008-09-09 09:57:10 -07:00
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
5b35846387 Fix bug 454266 - js_FillPropertyCache uses the wrong scope's shape sometimes (r=mrbkap). 2008-09-08 15:52:35 -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