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 |
|
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 |
|
shaver@mozilla.org
|
00b1baa734
|
use FASTCALL for builtins
|
2008-07-05 17:37:15 -04:00 |
|
Andreas Gal
|
16b463a6cb
|
Style nitpicking. Fix overlong lines.
|
2008-07-05 14:05:25 -07:00 |
|
Andreas Gal
|
d765c3ead2
|
Finish SETELEM for int and double values.
|
2008-07-05 14:00:32 -07:00 |
|
Andreas Gal
|
1e9c9451e0
|
Merge unboxing code into GETELEM code.
|
2008-07-05 13:44:48 -07:00 |
|
Andreas Gal
|
503bf13dac
|
Merge.
|
2008-07-05 11:46:08 -07:00 |
|
Andreas Gal
|
f9981c8870
|
Added box_int_jsval for the store path. Use only there.
|
2008-07-05 11:45:53 -07:00 |
|
Andreas Gal
|
ba7e66df92
|
Code generators to access object slots and native code callouts (builtins) for boxing doubles and ints. Ints have to be boxed through a native code helper on read and write (BoxInt32 and UnboxInt32), because we sometimes have to cast internally to double to store 32-bit values. We don't want a separate trace in this case, so we have to do this inline in a helper. Also a couple of modifications to shaver's code. Always make sure to check types (JSOP_NEG).
|
2008-07-05 11:35:55 -07:00 |
|
Brendan Eich
|
2e457ec7ab
|
Fix dumb bugs I just committed, use JS_NOT_REACHED.
|
2008-07-05 11:29:28 -07:00 |
|
Brendan Eich
|
ab0e34e2ae
|
Try to keep 64-bit portability via size_t instead of unsigned, jsuword for uintptr instead of long, etc.
|
2008-07-05 11:18:26 -07:00 |
|
Brendan Eich
|
e544b391b2
|
Spacing and comment nits picked while reading.
|
2008-07-05 10:41:35 -07:00 |
|
shaver@mozilla.org
|
ef07fe09b8
|
shift ops
|
2008-07-05 09:59:32 -04:00 |
|
shaver@mozilla.org
|
de59f88d9c
|
Beginning of SETELEM/GETELEM tracing for dense arrays. Needs computed-offset
insLoad before they'll work.
|
2008-07-05 09:47:59 -04:00 |
|
shaver@mozilla.org
|
f298721bf2
|
update to isInt
|
2008-07-05 09:43:00 -04:00 |
|
shaver@mozilla.org
|
13b4f67ef5
|
merge
|
2008-07-05 09:34:19 -04:00 |
|
shaver@mozilla.org
|
92e9aa44c0
|
[mq]: simple-ops
|
2008-07-05 09:15:33 -04:00 |
|
Andreas Gal
|
2df2214a9e
|
Introduce asInt and asDouble to check for the type of values based on the actual value since some 32-bit integers hide out in doubles.
|
2008-07-04 23:53:29 -07:00 |
|
Andreas Gal
|
cef5e9becc
|
Make trace-code 32-bit clean and extend interpreter state to carry the current context (cx). The recorder still has to record a 31-bit int path through the loop, but the emitted code is able to stay in the tree even if values bump over to 32-bit ints.
|
2008-07-04 16:24:42 -07:00 |
|
Andreas Gal
|
e35d351b28
|
Added support for SET_VAR again. bitwise.js working now.
|
2008-07-04 15:21:56 -07:00 |
|
Andreas Gal
|
ab1dc289ba
|
Fixed some stack handling and trace activation issues. We can run trace.js again.
|
2008-07-04 15:07:05 -07:00 |
|
Andreas Gal
|
5e9ca6ef0e
|
Cleanup of stack handling.
|
2008-07-04 13:23:42 -07:00 |
|
Andreas Gal
|
9b8f5f75a8
|
Added back support for the instructions required to compile trace.js.
|
2008-07-04 03:06:18 -07:00 |
|
Andreas Gal
|
1503932551
|
Properly switch tracer on and off depending on loopEdge and abort signaling from trace recorder recording functions.
|
2008-07-04 01:10:57 -07:00 |
|
Andreas Gal
|
efb72df02a
|
Re-integrate trace recording and trace activation infrastructure. Model more closely after Tamarin.
|
2008-07-04 00:51:30 -07:00 |
|