Andreas Gal
|
c9ee018202
|
Merge.
|
2008-07-08 20:20:24 -07:00 |
|
shaver@mozilla.org
|
815f787a8a
|
merge
|
2008-07-08 23:14:47 -04:00 |
|
Andreas Gal
|
ade00cfeb0
|
Removed bogus debug printfs.
|
2008-07-08 20:09:15 -07:00 |
|
Andreas Gal
|
795edf3334
|
Fixed frame walking FORALL_PENDING_FRAME_SLOTS and add 4 to sp in getTop (hotfix, not the right way to do it.)
|
2008-07-08 20:06:54 -07:00 |
|
shaver@mozilla.org
|
4fcad3cb1e
|
rval tracking and JSOP_POPV
|
2008-07-08 22:21:25 -04:00 |
|
Andreas Gal
|
4d84965bb8
|
Merge.
|
2008-07-08 19:17:15 -07:00 |
|
Andreas Gal
|
8e439abde3
|
Use more efficient address mode for LIR_load if possible and removed bogus printf.
|
2008-07-08 19:16:56 -07:00 |
|
shaver@mozilla.org
|
ff2b728cfd
|
protect printf with DEBUG
|
2008-07-08 21:22:46 -04:00 |
|
Brendan Eich
|
6a2a47ede9
|
Merge.
|
2008-07-08 18:14:14 -07:00 |
|
Brendan Eich
|
654d46135f
|
Single-ended interval tests, plus space patrol.
|
2008-07-08 18:12:22 -07:00 |
|
shaver@mozilla.org
|
46bdd14d57
|
Implement JSOP_SETNAME for globals.
|
2008-07-08 21:07:27 -04:00 |
|
David Anderson
|
daa8ef943b
|
Merge.
|
2008-07-08 17:20:11 -07:00 |
|
David Anderson
|
fcf8410125
|
Builds against latest nanojit; merged VMSideExitInfo into SideExit
|
2008-07-08 17:16:51 -07:00 |
|
Andreas Gal
|
444ffb8230
|
Fixed argv[n] and vars[n], should be [0] of course.
|
2008-07-08 17:14:01 -07:00 |
|
Andreas Gal
|
27628a1abf
|
Add dummy vpname/vpnum parameters when not compiling in DEBUG mode.
|
2008-07-08 16:46:54 -07:00 |
|
Andreas Gal
|
4550dd77f0
|
Introduce a generic stack frame walking macro. This eliminates the 6 (hg pull) redundant blocks of code that all walked the stack in 6 different ways, each with their individuals quirks.
|
2008-07-08 16:29:23 -07:00 |
|
Andreas Gal
|
9a4e0a6467
|
Don't check the types for invalid global slots in checkType. Proper gvar lookup in boxing path. We have to unify the stack frame traversal and enumeration code. I fixed this bug before, just in a different place. 11x speedup for gvar.js
|
2008-07-08 01:30:29 -07:00 |
|
Andreas Gal
|
c1491b01c2
|
Properly display the 'any' type in the side exit map printout.
|
2008-07-08 01:14:02 -07:00 |
|
Andreas Gal
|
0afa601949
|
Cleanup definition of tracker (don't use LInsp, use T, its a template now).
|
2008-07-08 00:46:53 -07:00 |
|
Andreas Gal
|
ac0b138197
|
Hack: demotable stores have to be flagged as int in the exit typemap. This needs cleanup.
|
2008-07-07 22:41:58 -07:00 |
|
Andreas Gal
|
64bf4baa1c
|
Don't expect args and vars in a top-level frame that is mapped to the native frame.
|
2008-07-07 22:20:27 -07:00 |
|
Andreas Gal
|
1e0a9a8363
|
Merge.
|
2008-07-07 22:00:25 -07:00 |
|
Andreas Gal
|
a6d30ed7c2
|
Fixed native frame offset calculation for globals.
|
2008-07-07 22:00:07 -07:00 |
|
shaver@mozilla.org
|
8fa1b5215f
|
fix type checking of gvars
|
2008-07-08 00:19:20 -04:00 |
|
shaver@mozilla.org
|
3f51971710
|
more detailed type-instability diagnostics
|
2008-07-07 23:51:56 -04:00 |
|
Andreas Gal
|
205ab22204
|
We urgently need shaver's magic native stack/typeframe iterator. Fixed exit map builder to skip argv/vars for global scope.
|
2008-07-07 19:29:54 -07:00 |
|
Andreas Gal
|
2f939b51d1
|
Fixed increment for DECGVAR.
|
2008-07-07 19:27:36 -07:00 |
|
Andreas Gal
|
a0c960adee
|
Bugfixes to the native stack and typemap handling code.
|
2008-07-07 19:20:40 -07:00 |
|
Andreas Gal
|
56397d3c0e
|
Attempt at cleaning up the typemap/stack frame iteration code.
|
2008-07-07 18:35:38 -07:00 |
|
Andreas Gal
|
6aaa63a172
|
ngvars and the slot index are not related, so don't rely on ngvars < JS_INITIAL_NSLOTS to decide whether dslots exists
|
2008-07-07 18:08:28 -07:00 |
|
Andreas Gal
|
0fe5682c00
|
Make gvar ops use the global varobj values we unbox onto the native stack. The stack offset handling needs more work.
|
2008-07-07 17:21:54 -07:00 |
|
Andreas Gal
|
a4f454ae32
|
We shouldn't read globals onto the stack if the global object is used by another context so we just refuse to execute the trace in this case.
|
2008-07-07 15:23:48 -07:00 |
|
Andreas Gal
|
1d36b97516
|
Unbox global variables onto the native stack and re-box them. This has certain synchronization implications but will make top-level scripts quite a bit faster.
|
2008-07-07 15:15:56 -07:00 |
|
Andreas Gal
|
4da1b65be4
|
Don't try to demote a slot we already decided we can't demote. Also, make sure we only demote additions with constants where the constant fits into an int.
|
2008-07-07 12:58:28 -07:00 |
|
Brendan Eich
|
affcda00d2
|
Merge.
|
2008-07-07 02:56:52 -07:00 |
|
Brendan Eich
|
175ce14f5b
|
Indentation and comment wrapping (at 79, 99 looks too long and most comments still avoid going past 80+/-).
|
2008-07-07 02:55:03 -07:00 |
|
Andreas Gal
|
ef4a0f7533
|
Merge.
|
2008-07-07 02:51:36 -07:00 |
|
Andreas Gal
|
e4f8fa2f97
|
Sync nanojit with tamarin-tracing tip.
|
2008-07-07 02:47:40 -07:00 |
|
Brendan Eich
|
6d65efee60
|
Use jsopcode.tbl for tracer JSOP_* method decls; trim trailing whitespace.
|
2008-07-07 02:21:04 -07:00 |
|
Andreas Gal
|
e15355bc04
|
Cleanup the native frame -> interpreter frame boxing code. We sometimes end up with numbers on our stack in double format that are really ints. We have to detect those and properly store them as in on the interpreter stack.
|
2008-07-07 01:37:40 -07:00 |
|
Andreas Gal
|
a38e8a96c3
|
Add support to demote stores of constants that are currently represented as float but are really integers. bitwise.js is now compiled complete fp-casts free.
|
2008-07-07 01:05:53 -07:00 |
|
Andreas Gal
|
efa3309778
|
Demote floating point comparisons even if one side is constant (bug in nanojit, filed as #443884 against tamarin). Also demote add/sub/mul using the integer overflow detection side exit code that Ed adopted upstream. Tight loops (bitwise) are not emitted completely as integer code after the initial compilation using doubles triggered a speculative demotion of the context slots.
|
2008-07-07 00:43:40 -07:00 |
|
Andreas Gal
|
8ce0de1ad7
|
Sink type conversions into the side exit by updating the map and seeing though the cast in the store (in ExitFilter). Add a whole bunch of asserts on the varios speculative type states to make sure we get the state machine right. Import speculated integer values as integers into the trace (indicate in entry map).
|
2008-07-07 00:10:22 -07:00 |
|
Andreas Gal
|
34c2283213
|
Added loop-tail driven context slot type demotion. Without all the buzzwords, what this essentially means is that we detect if the last value that the trace leaves in a slot (which is the value that flows along the backedge back to the loop header) is known to originate from an integer value via i2f, we flag the slot as type integer and recompile the trace. We do this where type stability is certain (result of an and, i.e.) or where its very likely (++operator). If the speculation fails, the same analysis flags the slot as blocked, which means it will always be double. The hope is that this analysis converges quickly (1-2 recompilations tops).
|
2008-07-06 22:35:19 -07:00 |
|
Andreas Gal
|
d6172e525e
|
Make sure we don't get the argument order in BoxDouble wrong again.
|
2008-07-06 20:27:50 -07:00 |
|
Andreas Gal
|
efee2381b5
|
Make typemap uint8_t and fix order of arguments in call to BoxDouble.
|
2008-07-06 20:25:49 -07:00 |
|
shaver@mozilla.org
|
9ed160ad12
|
remove outdated guard (now inferred via filter as needed)
|
2008-07-06 23:11:59 -04:00 |
|
shaver@mozilla.org
|
2c69d44f6f
|
we only speak double around here now
|
2008-07-06 23:01:58 -04:00 |
|
shaver@mozilla.org
|
10d122ba09
|
remove bogus NOT_REACHED
|
2008-07-06 22:39:02 -04:00 |
|
Andreas Gal
|
312d176937
|
Strength reduce i2f(doubleToInt32(x)) and u2f(doubleToUint32(x)) to x. This eliminate most of the on-trace overhead, but we still need type peeling of loop variable into int to win back the performance loss casting introduced.
|
2008-07-06 17:43:08 -07:00 |
|