Commit Graph

16139 Commits

Author SHA1 Message Date
Gavin Sharp
3bbd185188 Debugging followup (bug 431745) 2008-07-06 19:39:50 -04:00
Andreas Gal
5ec69f76a7 Strength reduce BoxDouble(i2f(x)) to BoxInt32(x). Make sure loop indexes are actually integers. This guard will be eliminated further down in the pipeline if we decided to peel the type of the loop variable (index) down to integer. 2008-07-06 16:38:54 -07:00
Andreas Gal
a990d4a2e6 Since numbers are now always represented by doubles at the recorder/type level, using BoxDouble and UnboxDouble only when moving numbers from or to memory. A filter will then turn f2i(UnboxDouble) into UnboxInt where appropriate. 2008-07-06 16:18:45 -07:00
Andreas Gal
aeeff83beb Move the type level from int/double to number. All traces start out as double in all slots, and denote and promote to/from int as needed. The FuncFilter optimizes on-trace casting and elininates redundant f->i-> chains. More optimization needed on this of course, and this code is now a bit slower than the previous integer-register use. However, this does solve the q += 2.5 issues. The heap access code does not properly cast yet and is likely unstable. 2008-07-06 15:55:04 -07:00
Gavin Sharp
d2915d5735 Temporary debugging patch to try and get to the bottom of the test_sleep_wake failures (bug 431745) 2008-07-06 18:39:37 -04:00
shaver@mozilla.org
b28afaa80d Trace GETGVAR and INCGVAR, though not yet correctly. 2008-07-06 16:59:59 -04:00
Robert Kaiser
7267233b08 bug 440932 - toolkit dlmgr should be buildable by suite, supplemantal patch for including config.mk early enough, r=ted 2008-07-06 22:37:07 +02:00
Robert Kaiser
89f6228191 bug 442503 - Use MOZILLA_DIR for the Mozilla source dir in makensis.mk, r=ted 2008-07-06 22:34:45 +02:00
Robert Kaiser
5954a9c126 bug 442484 - packager.mk doesn't work correctly with non-default topsrcdir, r=ted 2008-07-06 22:30:32 +02:00
Andreas Gal
d30b7d1c8a Add unary and binary helpers that automatically demote and promote when dealing with integer operations (not used yet, need loop typemap peeling in place first.) 2008-07-06 13:16:34 -07:00
Andreas Gal
4e1aa1d977 JSVAL_IS_BOOLEAN does what isTrueOrFalse was trying to do. 2008-07-06 12:16:55 -07:00
Andreas Gal
5816dee707 Fix template, should use typename, not class. 2008-07-06 12:03:51 -07:00
Igor Bukanov
e1c0b7d628 Bug 443746 – Optimizing the enumeration state allocation. r=brendan 2008-07-06 21:02:44 +02:00
Andreas Gal
1343901446 Add ExitFilter, which builds side exit typemaps for us. This had to be moved into a filter, because this has to happen after we eliminate redundant i2f-f2i chains as we can sink those into the side exit by simply storing the unpromoted/undemoted value and just flip the type in the exit map. 2008-07-06 11:48:41 -07:00
Andreas Gal
84ec537a0c Merge. 2008-07-06 11:19:06 -07:00
Andreas Gal
9501bcd749 Added doubleToUint32 builtin and make tracker a template. 2008-07-06 10:59:55 -07:00
shaver@mozilla.org
d881a494aa fix builtin_UnboxInt32 signature and name shape_ins for debugging 2008-07-06 13:58:59 -04:00
shaver@mozilla.org
45b3826103 Trace JSOP_NAME, and refactor out jsval unboxing. 2008-07-06 13:38:55 -04:00
shaver@mozilla.org
06a27ca367 begin on JSOP_NAME, refactor stobj_get_slot to chain better 2008-07-06 12:15:55 -04:00
shaver@mozilla.org
d5f1772186 Fix optimizer flags for interp and builtins in debug mode, and clean out old
TestNanojit.
2008-07-06 10:24:09 -04:00
shaver@mozilla.org
f463dc6891 actually record at HOTLOOP1 (fencepost) 2008-07-06 09:56:25 -04:00
shaver@mozilla.org
7f5f2ae1c8 some remaining low-hanging ops 2008-07-06 09:52:50 -04:00
shaver@mozilla.org
38235e2eec move JSOP_DOUBLE impl to, er, JSOP_DOUBLE (wtf?) 2008-07-06 09:33:13 -04:00
shaver@mozilla.org
2d307b4b59 Implement JSOP_DOUBLE. 2008-07-06 07:28:36 -04:00
Andreas Gal
100f4ea5e0 Added support for semi-stable loop variables. Compiling for(...) q += 2.5; is ridiculously difficult because it flip-flops between int and double. Add support to promote integer values to doubles at the loop tail if at loop entry we expect a double. Since this isn't possible the other way around, we have to get luck that we catch a path into the loop where q is already double. For this we add 3 trigger points (10, 13, 37). We will try three times to record a trace at those iteration counts of a loop. If none succeed the loop is blacklisted. This probably needs more tuning down the road. 2008-07-05 23:21:53 -07:00
Andreas Gal
41efb6c488 Merge and rename jsIf to ifop. 2008-07-05 22:23:34 -07:00
Andreas Gal
a48c36fae3 Added FuncFilter from tamarin core (not part of nanojit yet since its slightly VM dependant). 2008-07-05 22:20:35 -07:00
Andreas Gal
0b28897ad3 Add helpers for i->f and f->i conversion. The f->i path goes via builtin calls. 2008-07-05 22:04:58 -07:00
Andreas Gal
68359155b9 Add type primitives for numbers (isNumber and asNumber). 2008-07-05 21:51:26 -07:00
shaver@mozilla.org
a268883f3c Implement JSOP_IFEQ, JSOP_IFNE, JSOP_DUP, JSOP_DUP2. 2008-07-05 23:47:24 -04:00
Andreas Gal
075e3f00a6 Add casting for objects and cleanup casting code. 2008-07-05 20:30:11 -07:00
shaver@mozilla.org
501239ca11 let JSOP_GETELEM handle boolean values too 2008-07-05 23:04:42 -04:00
shaver@mozilla.org
26cc9c9e54 Handle boolean lval in SETELEM; now runs access-nsieve unmodified. 2008-07-05 22:39:34 -04:00
Andreas Gal
0245a6ba7c Believe it or not NEG can actually overflow the int32 range, so add an overflow bailout. This will only trap for -0x80000000. 2008-07-05 19:25:38 -07:00
Andreas Gal
54a349ce1f Merge. 2008-07-05 19:18:14 -07:00
Andreas Gal
48e459ba73 Added blacklisting of recording points where we failed to complete a trace (overly aggressive at this point, needs tuning, we want to try several times for each point.) 2008-07-05 19:15:00 -07:00
shaver@mozilla.org
1c4f82c592 Allow hole-filling JSOP_SETELEM to remain on trace. 2008-07-05 21:50:54 -04:00
Andreas Gal
04ae2a44d4 Fixed boolean boxing. 2008-07-05 18:36:40 -07:00
Andreas Gal
cf8e2a555b Added boolean boxing/unboxing code. 2008-07-05 18:34:41 -07:00
Andreas Gal
8ac9e3ca57 Use default parameter in LSH/RSH/URSH to indicate we don't care for the overflow. 2008-07-05 18:18:06 -07:00
Jesse Ruderman
f8eb550eca Turn "running past end" assertions in nsLineBox.h into aborts (bug 443529). r+sr=dbaron. 2008-07-05 18:11:12 -07:00
Jesse Ruderman
b40e4a8578 Fix spelling error in a log message (bug 443520). 2008-07-05 18:09:24 -07:00
Jesse Ruderman
a34e166b7f Bug 443757 - Extra semicolon in nsMacShellService::SetDefaultBrowser makes "conditional" code unconditional. r=mano 2008-07-05 18:06:57 -07:00
Gavin Sharp
03c56c2768 Bug 441876: remove UTF-7 option from browser Character Encoding menus, r=smontagu, sr=bzbarsky 2008-07-05 20:53:48 -04:00
Andreas Gal
3ba61e4c01 Added missing jsbuiltins.cpp 2008-07-05 17:29:55 -07:00
Andreas Gal
888d2f9aee Add support for some misc opcodes including binary and arithmetic and/or/not. 2008-07-05 17:26:00 -07:00
Andreas Gal
810d54beac Track trace entry/exit in debug mode and count cycles. 2008-07-05 17:10:58 -07:00
Andreas Gal
19152ffb1f Signal error from the boxing/unboxing using magic cookies since gcc seems to very seriously object to the use of uint64 return values during a fastcall (horribly inefficient code). 2008-07-05 16:28:03 -07:00
Andreas Gal
05c4c4bb27 Help the branch predictor in the builtins. 2008-07-05 15:46:58 -07:00
Dave Townsend
3f6b3bfe52 Bug 443367: Remove timeout and network access from unit test. r=robstrong 2008-07-05 23:44:03 +01:00