46d4b17463d41588a03c9c2bb6ccf0994448a3e1: Assembler requires that guard be on a cmp, so force that
shaver@mozilla.org - Tue, 01 Jul 2008 10:07:20 -0400 - rev 17374
Assembler requires that guard be on a cmp, so force that
45c643b522a6862dab4200014a7a38379b186db7: fix frame offset calculation for args, I think also non-entry frames
shaver@mozilla.org - Tue, 01 Jul 2008 08:11:49 -0400 - rev 17373
fix frame offset calculation for args, I think also non-entry frames
01359d7a668ae26e5c583865318ebf3829e5d573: label arg/var/stack/sp/state for easier trace-reading
shaver@mozilla.org - Tue, 01 Jul 2008 08:06:02 -0400 - rev 17372
label arg/var/stack/sp/state for easier trace-reading
df77fa4a3e5b743829926413ec8cb47eadad2a55: Save the VM registers into markRegs at opcode entry and restore that state when ending or aborting recording. The same info is pushed into sideexit and used by guards. With this change we can eliminate the hack in MONITOR_BRANCH that had to adjust the stack pointer depending on the opcode type, and it also allows us to trace through the recently added boolean guard opcode fusing. This improves trace code quality, since only the pre-conditional check state is saved. The guard restores into that state, so the trace code doesn't have to emit the value of the conditional evaluation onto the stack, saving a handful ops.
Andreas Gal <gal@uci.edu> - Mon, 30 Jun 2008 18:31:29 -0700 - rev 17371
Save the VM registers into markRegs at opcode entry and restore that state when ending or aborting recording. The same info is pushed into sideexit and used by guards. With this change we can eliminate the hack in MONITOR_BRANCH that had to adjust the stack pointer depending on the opcode type, and it also allows us to trace through the recently added boolean guard opcode fusing. This improves trace code quality, since only the pre-conditional check state is saved. The guard restores into that state, so the trace code doesn't have to emit the value of the conditional evaluation onto the stack, saving a handful ops.
30a18c0f363b7afc9e8b97dafcb06d43433c172e: Rework memory management, don't leak memory in the filter pipeline.
Andreas Gal <gal@uci.edu> - Mon, 30 Jun 2008 18:08:32 -0700 - rev 17370
Rework memory management, don't leak memory in the filter pipeline.
3dcda8cce1d7913534236f9496e44bf38179a013: Save the side exit state at entry in to the opcode (since we want to restart ops) and enable store filter.
Andreas Gal <gal@uci.edu> - Mon, 30 Jun 2008 17:12:52 -0700 - rev 17369
Save the side exit state at entry in to the opcode (since we want to restart ops) and enable store filter.
4261e41eccc8010be4afc1d1cba2aa6be0d9ba31: Sync with TT-tip.
Andreas Gal <gal@uci.edu> - Mon, 30 Jun 2008 15:33:41 -0700 - rev 17368
Sync with TT-tip.
a53a1fc6054cead81ab777e60e28b7eb8d5e8711: Cleanup memory management. Use new char[] inside our overloaded new operator that clears out memory.
Andreas Gal <gal@uci.edu> - Mon, 30 Jun 2008 12:00:31 -0700 - rev 17367
Cleanup memory management. Use new char[] inside our overloaded new operator that clears out memory.
5669d738e1fee707b49c1fb9895ff8ca41b3f7d6: Use #ifdef DEBUG instead of VERBOSE.
Andreas Gal <gal@uci.edu> - Mon, 30 Jun 2008 11:44:47 -0700 - rev 17366
Use #ifdef DEBUG instead of VERBOSE.
b03fd7a5b45d4aff8dc6ac5be0e0f94a48e2a2bc: Must use (&gc) new otherwise memory doesn't get cleared (found by danderson).
Andreas Gal <gal@uci.edu> - Mon, 30 Jun 2008 11:39:00 -0700 - rev 17365
Must use (&gc) new otherwise memory doesn't get cleared (found by danderson).
1bf762639bd07f2ad0c838c23c554e3b6da7e2ab: Merge.
Andreas Gal <gal@uci.edu> - Mon, 30 Jun 2008 09:36:38 -0700 - rev 17364
Merge.
079cdd003c8aaaa106ebf8fd7074ea28d218f80b: Housekeeping (add comments, removed some dead code.)
Andreas Gal <gal@uci.edu> - Mon, 30 Jun 2008 09:36:10 -0700 - rev 17363
Housekeeping (add comments, removed some dead code.)
739285b494b8fa078f6db8956c61aa6843b51380: synthesize LIR_ne using LIR_eq instead of LIR_ugt, per edwsmith's wisdom
shaver@mozilla.org - Mon, 30 Jun 2008 11:18:43 -0400 - rev 17362
synthesize LIR_ne using LIR_eq instead of LIR_ugt, per edwsmith's wisdom
fbb073357c595f8a9eebbc3380a4fd6d89c2bc16: Mockup of trace execution. Speedup is 10x for a tight loop. Keep in mind that this is a hack and the trace code is not optimized yet.
Andreas Gal <gal@uci.edu> - Sun, 29 Jun 2008 23:02:22 -0700 - rev 17361
Mockup of trace execution. Speedup is 10x for a tight loop. Keep in mind that this is a hack and the trace code is not optimized yet.
676e746becda45cd99a64d7fef758fe7bf1fed2b: Execute trace code. Boxing back the side exit state is not handled yet.
Andreas Gal <gal@uci.edu> - Sun, 29 Jun 2008 20:56:06 -0700 - rev 17360
Execute trace code. Boxing back the side exit state is not handled yet.
931f133220e3a569150cfbaf2a86961a5317a5b5: Fix native frame addressing (reported by vlad.)
Andreas Gal <gal@uci.edu> - Sun, 29 Jun 2008 17:17:39 -0700 - rev 17359
Fix native frame addressing (reported by vlad.)
2a26ff7f76928afa6b1bfc88aa254940ff76bb04: Disable fusing of conditional check and branch when recording.
Andreas Gal <gal@uci.edu> - Sun, 29 Jun 2008 16:57:27 -0700 - rev 17358
Disable fusing of conditional check and branch when recording.
77cc23e2d53c734ad6caa9602caab8686e94b572: When a conditional branch instructions terminates the trace, we have to make sure its restartable, so put the conditional value it was deciding on back onto the stack by incrementing sp before jumping back to the outer interpreter.
Andreas Gal <gal@uci.edu> - Sun, 29 Jun 2008 15:21:50 -0700 - rev 17357
When a conditional branch instructions terminates the trace, we have to make sure its restartable, so put the conditional value it was deciding on back onto the stack by incrementing sp before jumping back to the outer interpreter.
5e199f65bd2485f5a65cff2eea530a7ab1965470: Initialize jump table when side-entering the interpreter. Keep track of cx and sp directly in the recorder instead of going through the tracker.
Andreas Gal <gal@uci.edu> - Sun, 29 Jun 2008 13:53:40 -0700 - rev 17356
Initialize jump table when side-entering the interpreter. Keep track of cx and sp directly in the recorder instead of going through the tracker.
52a27edd2802d137aa7a4e42a7abc0cf4dc7c37f: Guard inside the clause, not seperately.
Andreas Gal <gal@uci.edu> - Sun, 29 Jun 2008 12:21:16 -0700 - rev 17355
Guard inside the clause, not seperately.
(0) -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 +100000 +300000 tip