Commit Graph

283 Commits

Author SHA1 Message Date
David Anderson
6c91afa7b7 Fix CALLPROP not guarding that the callee is not NULL (bug 465580, r=gal). 2008-11-19 16:08:41 -08:00
David Anderson
63c268384c Fixed unsafe coercion of JSVAL_VOID to string on trace entry (bug 465483, r=brendan). 2008-11-18 19:48:02 -06:00
Brendan Eich
37c40ca7c0 Merge. 2008-11-17 16:29:40 -08:00
Andreas Gal
f7ca65fe0f Don't demote multiplication, even if result is demoted and inputs are demotable (465308, r=danderson). 2008-11-17 01:39:49 -08:00
Andreas Gal
4287473ba2 Merge. 2008-11-17 00:05:59 -08:00
Andreas Gal
cdbe1015e3 Don't attempt to do CSE across labels (465276, r=danderson). 2008-11-17 00:05:29 -08:00
David Anderson
442b376986 Fixed regression from recent constant folding patch (bug 465272, r=gal). 2008-11-16 22:52:15 -08:00
Andreas Gal
a9d9eff7ee Merge. 2008-11-16 22:13:37 -08:00
Andreas Gal
3c5889df4e Fix tracing of JSOP_IN (465241, r=danderson). 2008-11-16 22:13:13 -08:00
David Anderson
a653ef6015 Fixed branch traces being erroneously marked as dependent trees (bug 464979, r=gal). 2008-11-16 21:58:35 -08:00
David Anderson
637ce7666a Merge. 2008-11-16 21:37:28 -08:00
David Anderson
d46ed014cf Fixed edge case in nanojit register allocation for shl/shr (bug 465135, r=gal). 2008-11-16 21:36:33 -08:00
Andreas Gal
bd10f75bdb Can't bypass ECMADoubleToInt32 in js_StringToInt32 (465239, r=danderson). 2008-11-16 20:43:13 -08:00
Andreas Gal
0218a2502b Merge. 2008-11-16 20:22:52 -08:00
Andreas Gal
b1e33fe0ff JIT affects truthiness of "" <= null (465234, r=Waldo). 2008-11-16 20:22:01 -08:00
Jeff Walden
7c2bb3cab6 Bug 465137 - TM: JIT thinks !NaN is false. r=gal 2008-11-16 18:28:51 -08:00
David Anderson
db46b11fa1 Fixed recorders already deeply aborted being pushed onto the deep abort stack (bug 465145, r=gal). 2008-11-16 02:34:51 -06:00
Andreas Gal
4da6188c80 Implement ordered comparison for objects (465133, r=brendan). 2008-11-15 23:19:46 -08:00
Jeff Walden
dded0f5f95 Bug 462060 - TM: JIT: Initializing an array to a constant in a loop doesn't work for some constant values. r=brendan 2008-11-15 16:42:35 -08:00
Andreas Gal
acebe116c1 Don't flush JIT cache from within the recorder (464403, r=brendan). 2008-11-13 15:58:58 -08:00
Brendan Eich
cb47c4cf08 Bug 456511 - (imacros) TM: Make conversion work on arbitrary JSObjects (r=gal). 2008-11-13 00:30:20 -08:00
David Anderson
30101c6443 Fixed recursion in thin loops accidentally trying to close the parent loop (bug 464089, r=gal). 2008-11-12 19:00:15 -08:00
Andreas Gal
074d900a57 Backed out changeset a40f2117bcc0 2008-11-12 17:39:48 -08:00
Brendan
0ca607d76b Add imacros to support conversion of arbitrary JSObjects (456511, r=gal). 2008-11-12 16:55:45 -08:00
Andreas Gal
55c5823950 Backed out changeset 594ec832d9a8 2008-11-07 18:19:35 -08:00
Andreas Gal
54ba19de70 Trace Function.apply and Function.call (462482, r=brendan). 2008-11-07 15:58:52 -08:00
David Anderson
fa14a92fe7 Fixed multitrees assert when building failed speculated branches (bug 463490, r=gal). 2008-11-07 13:22:05 -08:00
David Anderson
00bfbb7d80 Make sure double slots are marked as undemotable when stabilizing a tree with failed speculation (bug 462407, r=gal). 2008-10-30 15:54:22 -07:00
David Anderson
48b976a104 Don't coerce void to string when compiling inner tree calls (bug 462388, r=gal). 2008-10-30 13:48:22 -07:00
David Anderson
9763f21aae Added multitrees test to trace-tests.js for bug 456479. 2008-10-30 11:52:48 -07:00
David Anderson
2f8b8195c3 Added multitrees test to trace-tests.js for bug 454315. 2008-10-30 11:42:12 -07:00
Brendan Eich
6ddc16bbe2 Bug 462103 - TM: We don't trace some variants of string + other type (gal+brendan red-headed stepchild). 2008-10-29 00:14:30 -07:00
Brendan Eich
8c2eead6a8 Keep testGlobalProtoAccess last. 2008-10-28 17:34:09 -07:00
Jason Orendorff
5258c4d288 Bug 461723 - TM: "Assertion failure: (m != JSVAL_INT) || isInt32(*vp)" with "(0 + void 0) && 0". r=gal. 2008-10-28 11:52:38 -07:00
Brendan Eich
d0d72f5cbc Keep this test last, and clean up prototype pollution, plus test for bug 458851. 2008-10-28 00:11:26 -07:00
David Anderson
bf1a78f4fe Implemented multiple type specialized trees per entry point (bug 450833, r=gal) 2008-10-27 20:42:49 -07:00
Jason Orendorff
154b1955c7 Bug 456384 - TM: v8-richards.js benchmark opens a print dialog in browser with JIT enabled. r=brendan 2008-10-27 16:15:32 -07:00
David Anderson
b2a6f01baa Fixed trace-tests for isPromoteInt patch which reduced tree recompilation counts. 2008-10-25 03:35:07 -05:00
Andreas Gal
06b393e8a2 Trace reading from dense arrays out of bounds and trace undefined -> number conversion in binary ops (461611, r=brendan). 2008-10-24 21:51:04 -07:00
Andreas Gal
ba66d9d48c Added test-case for 459630 (WFM) to make sure we don't regress it down the road. 2008-10-22 19:06:18 -07:00
Andreas Gal
5cc94e1d59 Re-use loop exit side exit if we already have one for that PC location and the same type map (461076, r=danderson). 2008-10-22 16:27:25 -07:00
Blake Kaplan
e36fb599bc Bug 460886 - Substring needs to validate its arguments. r=brendan
--HG--
extra : rebase_source : 24d0131da47e8fb30cb420330bdb92189436aea7
2008-10-21 15:21:23 -07:00
Andreas Gal
b4ee05c105 Trace Number.toString(base), not just Number.toString() (459772, r=brendan). 2008-10-13 19:07:30 -07:00
Andreas Gal
525decaff0 Fix number of expected traces for testNestedExitStackOuter in trace-tests.js 2008-10-13 13:19:37 -07: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
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
Jason Orendorff
3204ec178a Bug 459085 - TM: Number.toString traceable native is broken (r=gal) 2008-10-08 17:19:15 -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
Boris Zbarsky
cab53dbee6 Bug 456165. Trace |new Date()|. r=brendan 2008-10-06 20:28:22 -04:00
Boris Zbarsky
be17e08640 Adding mandelbrot to trace-test 2008-10-02 19:30:46 -04:00
Brendan Eich
502fb4e4c8 Bug 456831 - TM: Trace JSOP_SETLOCALPOP (r=mrbkap). 2008-10-02 15:39:25 -07: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
David Anderson
75e7abcf38 Fixed crash when charCodeAt failed (with NaN) while recording (bug 457795, r=gal). 2008-09-29 23:20:34 -05: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
e6006ef942 Add test case for 457456. 2008-09-27 13:13:42 -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
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
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
Brendan Eich
8030ce9609 Bug 457130 - TM: regexp lastIndex property not traced correctly (r=danderson). 2008-09-25 17:45:14 -07:00
David Anderson
fca4e20f3a Added test case for bug 456667. 2008-09-25 14:16:24 -07:00
Andreas Gal
5b117e1c3f Rewrite and cleanup GETELEM and SETELEM (455748, r=brendan). 2008-09-25 11:31:40 -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
Andreas Gal
958c18fb2a Add builtin for invocation of match() on String objects (454682, r=danderson). 2008-09-23 17:18:40 -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
Boris Zbarsky
5bf1de2855 Bug 456369. Checking of JIT stats should not loop. r=brendan 2008-09-22 17:37:59 -04: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
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
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
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
183ab27e9d Use Object as prototype if the prototype of the constructor is primitive (452960, r=mrbkap). 2008-09-16 18:49:27 -07:00
Andreas Gal
37a7d9274f Add test case for 455408. 2008-09-16 08:07:01 -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
a580bcd185 Implement comparison of numbers against null (455293, r=brendan,danderson). 2008-09-15 15:30:06 -07:00
Andreas Gal
95068bdc26 Properly handle floating point array indexes (453261, r=brendan). 2008-09-15 15:00:40 -07:00
Blake Kaplan
4203e79309 Trace Math.max. r=brendan 2008-09-08 20:06:58 -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
David Anderson
9937dc1262 Trace through Math.log as a known native (bug 453868, r=brendan). 2008-09-05 14:25:01 -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
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
5e828c58d4 Fixed float ops to deal with being handed an LHS GPR reservation on AMD64.
Fixed nanojit LIR verbosity crashing on AMD64.
2008-09-04 11:53:49 -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
Robert Sayre
7cca7713be Add tests containing switch statements 2008-08-30 19:35:38 -04:00
Robert Sayre
52a7fb0b98 Add test for more bitwise ops 2008-08-30 19:20:54 -04:00
Andreas Gal
113ad8babe Add builtins for toLowerCase, toUpperCase and replace(str,str) (452885, r=mrbkap). 2008-08-29 17:35:00 -07:00
Robert Sayre
f35adba372 Add tests covering division. 2008-08-29 13:04:08 -04:00
Robert Sayre
5d1f73ba74 Add tests for continue statement. 2008-08-29 11:01:56 -04:00
Brendan Eich
5d132dba83 Record JSOP_IN (452563, r=gal). 2008-08-27 23:00:43 -07:00
Andreas Gal
4f51cac33e Add test case for decaying inner loops that sometimes are not executed at all since the condition fails pre-entry. 2008-08-26 21:45:53 -07:00
David Anderson
357f1d4e64 Test case for bug 452340. 2008-08-26 20:02:59 -07:00
Robert Sayre
4bd48080dc Add some tests for loops that should exit trace. 2008-08-26 18:46:50 -04:00
Brendan Eich
7adb43eaa6 Align test order with mozilla-central to avoid merge conflicts (I hope). 2008-08-26 12:50:01 -07:00
Robert Sayre
8ce085e0c6 Add test of (attempted) trace recording with an active call object 2008-08-25 17:12:41 -04:00
Brendan Eich
eb8bbd11d2 Cope with sub-optimal JSOP_FORNAME instead of JSOP_FORVAR inside a with, or similar (eval-created locals; 451806). 2008-08-24 08:18:17 -07:00
Andreas Gal
71b12b53fe Enable outlining. If a loop doesn't connect back to its own header (i.e. break inside the loop), see if the outer loop path can be attached to the inner loop (outerlining). Added test case (failure mode is high number of activated traces in trace-test.js). This test exposes a regression in access-fannkuch. Committing so we can diagnose that separately. 2008-08-23 15:11:38 -07:00
Andreas Gal
454b252c63 If the outer loop has a value in a float register but the inner tree expects an int, tell the oracle that we want doubles in that slot in the inner tree and trash the inner tree so it gets re-compiled with a matching layout (451673). 2008-08-22 17:31:23 -07:00
Robert Sayre
c6a7088bae Bug 451580, fix string split assertions and return values. Tests fail with JIT on for other reasons, it seems. r=shaver 2008-08-21 14:06:42 -04:00
shaver@mozilla.org
ed7fab1440 trace |new Array|, via the magic of copy and paste 2008-08-21 00:50:20 -07:00
Andreas Gal
3a4d105a0f If the outer tree has a slot in an integer register, but the inner tree expects a double, make sure to promote the value before calling the tree, otherwise the inner tree will read the value from the stack incorrectly. 2008-08-20 00:51:56 -07:00
Andreas Gal
fb3cf056d9 Correctly calculate tree call stack adjustment, even if we don't have any arguments in the current frame and hand pick some cleanups from the backed-out changeset. 2008-08-19 23:31:33 -07:00
Andreas Gal
39d9d53d83 Back out multi-trees. There is absolutely no way this will be debugged in time for tomorrow. Need a bit more gdb man-power. 2008-08-19 23:28:13 -07:00
Andreas Gal
454c89d72b Support multiple fragments with different entry maps per PC location. 2008-08-19 20:30:16 -07:00
Andreas Gal
1d0582a6ec Add test case for type map merging (450535). 2008-08-15 16:04:44 -07:00
Andreas Gal
c42833b03c Merge. 2008-08-15 10:12:47 -07:00
Andreas Gal
91a71447a9 Change sp_adj in guards to always reflect the current stack depth, so if we enter a trace/loop with something on the stack, sp_adj will reflect always at least that minimum amount. InterpState->sp now always runs in parallel with regs->sp of the current frame. This breaks nesting badly. I really need help with the stack layout logic. 2008-08-15 10:09:36 -07:00
Blake Kaplan
5aa5360905 bug 450529 - pass pc to String.prototype.match so we can avoid unnecessary object creation when tracing. r=brendan 2008-08-15 09:29:03 -07:00
Vladimir Vukicevic
61a89af8e6 b=450176; trace parseInt and parseFloat; r=gal 2008-08-14 15:13:39 -07:00
Andreas Gal
d6e6e333e2 Added bitsinbyte-ish testcase to trace-test.js. This currently still crashes the VM in nested mode. 2008-08-13 21:44:01 -07:00
Andreas Gal
c0e640829a Added test case for nested exits. 2008-08-13 18:13:22 -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
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
David Anderson
a8821cdfc6 Added NaN test case that fails when jitting; currently looking into why. 2008-08-12 15:45:06 -07:00
shaver@mozilla.org
1813fb2fa7 NAMEINC, INCNAME, NAMEDEC, DECNAME 2008-08-12 11:33:40 -04:00
shaver@mozilla.org
cfc93a30d9 cmp over number and (string or bool or undefined) 2008-08-12 01:05:33 -04:00
Brendan Eich
daba5ef959 Dependent string test. 2008-08-11 20:26:04 -07:00
shaver@mozilla.org
16a7af3ef4 JSOP_EQ/NE for objects 2008-08-11 22:11:31 -04:00
Brendan Eich
64fc3b0367 - Fix shapeless callee guarding to guard on function object value.
- Add JSOP_NULLTHIS to help the tracer guard shapeless callees (see trace-tests.js)
- Culled bogus record_JSOP_CALLGVAR left-over forwarding to record_JSOP_GETGVAR.
- Better shapeless callee tests.
2008-08-10 22:36:48 -07:00
Brendan Eich
622dce0a42 joinTest. 2008-08-10 15:21:14 -07:00
Brendan Eich
8d0b5ebbdc camelCaps test names restored (NewTest => newTest, etc.). 2008-08-09 22:24:49 -07:00
shaver@mozilla.org
a937f98d5b JSOP_TYPEOF and JSOP_TYPEOFEXPR 2008-08-09 22:54:01 -04:00
shaver@mozilla.org
c4ca6755bf Builtin for String.prototype.concat (single int-arg version) 2008-08-09 22:15:21 -04:00
shaver@mozilla.org
3341bf1c11 Implement cmp for string-on-string.
Add < and > tests for strings.
Condition the top-level truthies test on a synthetic test name, so it can be
excluded.
2008-08-09 21:50:52 -04:00
Brendan Eich
072c7b59a5 Guard against shapeless callees, with tests (more to do here, can't break the unknown callee case yet, but it should be breakable). 2008-08-08 16:37:01 -07:00
Brendan Eich
153e03bb32 Get operator new on interpreted functions working, along with JSOP_SETPROP on an unmutated object, or one of the right shape but where the setprop is adding the next property, and it's not in the object yet. 2008-08-08 14:38:44 -07:00
shaver@mozilla.org
7c89606155 add tests for missing and excess arity for trace-entry function context 2008-08-06 22:24:39 -04:00
Andreas Gal
c8df243f32 Fix nonEmptyStack1 test. 2008-08-06 17:44:39 -07:00
Brendan Eich
5331ec8967 Add first non-empty stack testcase, which now passes (yay). 2008-08-06 13:53:34 -07:00
shaver@mozilla.org
9615dbd804 add test for non-empty stack on trace entry (fails currently, but no longer crashes) 2008-08-06 16:12:49 -04:00
Brendan Eich
a1c6f2606a Comment or/and test framework not being traceable. 2008-08-05 11:36:25 -07:00
Brendan Eich
5b9f299115 Fix TraceRecorder::ifop backward logic bug in the OBJECT case, and implement the STRING case. Add tests for truthy and falsy strings. 2008-08-02 16:51:22 -07:00
Brendan Eich
3488a68372 Restore lost or/and tests (hg strikes again, grrrr!) 2008-08-02 15:56:28 -07:00
shaver@mozilla.org
b078fb1509 Refactor trace-test.js to permit running a single test via js trace-test.js testName. 2008-07-31 12:15:22 -07:00
shaver@mozilla.org
12614d0334 Coerce strings to numbers for appropriate ops.
(Wants a specialized StringToInt32 and a filter to put it in place.)
2008-07-31 07:41:58 -07:00
shaver@mozilla.org
959dd9184f Implement JSOP_EQ and JSOP_NE over strings, plus JSOP_STRING. 2008-07-30 17:28:59 -07:00
shaver@mozilla.org
b1df95f721 Trace String.fromCharCode.
Handle failure signals of < 0 or NULL from traceable natives.
2008-07-30 15:19:25 -07:00
shaver@mozilla.org
ce85bd8955 JSOP_ADD over strings 2008-07-29 07:53:31 -07:00
shaver@mozilla.org
a8b963d4a4 Trace String.prototype.substring for two-arg case.
* Export str_substring as js_str_substring.
* Add basic String_p_substring builtin (only handle end > begin, both in range).
* Add String_p_substring_1 builtin for the missing-end case.
* INS_CONST for named constants in traces.
* Support boxing of strings.
* Support CALLPROP with primitive this.
* Support traceable natives which require cx and this.
* Support fallible traceable natives.
* Fix JSOP_LENGTH to use i2f on result (need that everything-is-doubles T-shirt).
* Add strings test.
2008-07-29 07:32:18 -07:00
Andreas Gal
e6cc02f5cc If we see a f2i(UnboxDouble) chain, simplify it to UnboxInt32 which does the conversion internally. This also enables a fastpath to read 31-bit jsval integers from arrays. 2008-07-27 14:55:26 -07:00
Andreas Gal
02997616f4 Add a test case for trees. 2008-07-25 19:10:23 -07:00