4b9461f0261837ead4a427bf3b040ef3c7ff23d2
2008-07-04 00:51 -0700
Andreas Gal - Re-integrate trace recording and trace activation infrastructure. Model more closely after Tamarin.
34fa1af7848bb5ccde5d83efebc955e9311c47d5
2008-07-03 23:57 -0700
Andreas Gal - Create a stub for each opcode in TraceRecorder and invoke them from the stubs that are pointed to by the recorder dispatch-table.
401bf43ab0cea67c387d57e4c70522a33f147bef
2008-07-03 22:28 -0700
Andreas Gal - Extend dispatch table to include 256 extra cases for traceing.
5192699cc8d8aac0de2a67746f6e330df58139ed
2008-07-03 22:08 -0700
Andreas Gal - Switch back to mozilla-central jsinter.cpp. Lets try a different approach to attach the tracer to the interpreter.
7e5d184d4d0aaa126293f3b0b0da534d218a8498
2008-07-03 21:45 -0700
Andreas Gal - Sync with mozilla-central.
2bf9378f3362c194415b081e1c13b6ff10e53951
2008-07-03 21:39 -0700
Andreas Gal - Avoid name clash between nanojit and jsinter.cpp (full patch queued up for tamarin).
877f3116faae89f4fecfc20ba728d5a8dabf9b72
2008-07-03 17:02 -0700
Andreas Gal - Fix unnecessary type prefix (reported by bc, doesn't pass gcc 4.2.3)
5b8512aeaa740c7d886c0bc7abd3aba6c7b5d10f
2008-07-02 22:05 -0700
Andreas Gal - Added dmod builtin and flag broken builtins for removal (shaver).
00d6535c9a737ca66d96a967e544a3f995660d71
2008-07-02 21:48 -0700
Andreas Gal - Support recording of ValueToECMAInt32, ValueToECMAUint32 and ValueToBoolean.
d5da6f30023ce6a7128c691fa2ef31cfcdcd5e87
2008-07-02 19:11 -0700
Andreas Gal - VOIDs hang out in the BOOLEAN value space, so we have to treat them like a boolean on the trace. For ValuetoECMAInt32 all special boolean values except TRUE produce 0, and TRUE produces 1. Use a conditional move to implement this.
f6e82eedc29d2d5d231452f0affabe0272402a69
2008-07-02 18:06 -0700
Andreas Gal - Introduce a VMSideExitInfo structure (holds the exit typemap only for now).
0c8bf263ee1cd14f1e87b01a7c0e260911570412
2008-07-02 18:00 -0700
Andreas Gal - Fix returning from trace execution into the interpreter.
7d5278d7f234ee1b3c28c56841dc165828102ce3
2008-07-02 17:24 -0700
Andreas Gal - Shortcut the wait time to activate fragments after compiling a new fragment.
ff52c714902a2d8caeec722eb4408ba2739f2fee
2008-07-02 17:19 -0700
Andreas Gal - Use fragmento to track fragments and add proper trace activiation code.
ea4d2030913b7b0ae8f2685b8cd80e59a248a440
2008-07-02 15:31 -0700
Andreas Gal - Fix unstable trace rejection for optimized build.
da95d4684d0e43fe57ebc6929891e8c5e7b7bde8
2008-07-02 15:17 -0700
Andreas Gal - Fix type stability check.
99ea7b7fbf40404983f2a5972ac6159e9e4ab46e
2008-07-02 15:14 -0700
Andreas Gal - Add type stability check for loop variables. Rename readstack to import.
ac906d2bd9407662524b8230116f93b09dc99ea0
2008-07-02 14:38 -0700
Andreas Gal - Removed attempt to imply ints into doubles on the fly. This can't work. Use proper float loads where needed and add some initial code for builtin functions.
e5752cd92d9f396dc02d1ff547997b4297761f0d
2008-07-02 14:37 -0700
Andreas Gal - Add a vmprivate field to the guard record (queued for review upstream).
8a001f939bd31f8c4d2b42a7e72310f0e48a531c
2008-07-02 09:38 -0700
Andreas Gal - Indicated in a separate primitive when integers get stored as a double because they don't into a jsval.
44bce227ed5d3dcfd9bec3faefef49da244e33c0
2008-07-02 09:35 -0700
Andreas Gal - Backed out changeset 745089a5d1c5
745089a5d1c5a739d7fbb5db98d1b21daee20846
2008-07-02 08:11 -0400
shaver - no need for rooting of integer values
c512cf1203274108a302e72a92fcf4c643216578
2008-07-02 03:33 -0700
Andreas Gal - This patch eliminates ValueToECMAInt32 and instead tries to emit specialized code depending on the true type. 32-bit integers are detected and treated like integers in fetch_int via ValueToECMA32. Similarly, int store_int NewIntInRootedValue is used if the value is really an underlying int. NewIntInRootedValue is a nop on the trace.
b5d17a5c464ab650347de7cf8d7417151f36fd22
2008-07-02 02:53 -0700
Andreas Gal - Flag ints as type INT in the incoming context if its merely a double holding an int that was too large to fit into jsval directly. Along the side exits make sure we can properly box oversized ints (by casting them to doubles). The fetch_int/store_int paths still need fixing to ensure that values are merely passed through (prim_copy) instead of explicit casting or calling to ValueToECMAInt32 etc.
363464372fc4116f68cf4255c1f38ae2f361f5a4
2008-07-02 00:42 -0700
Andreas Gal - Don't allocate 16MB code cache at startup. Instead use an exponentially increasing growth factor.
6d437a2b583246812137955d086e64824fe72bb2
2008-07-02 00:13 -0700
Andreas Gal - Generate proper overflow detection code. Requires a trivial fix in nanojit (included, pending review to be pushed upstream).
2642b6e679c34abddaae281f157e0f953ceec69f
2008-07-01 23:53 -0700
Andreas Gal - Fix circular dependency in makefile.
ad2ddde3fd9d39aa8ab247ebfcd46749115575d8
2008-07-01 23:57 -0400
shaver - use floating point LIR for dealing with doubles
baddd2543fc9a5913cb59d450383b3c05d7df510
2008-07-01 19:44 -0700
Andreas Gal - Merge.
5593833365c9d05bd35482be801b158b5805a98d
2008-07-01 19:43 -0700
Andreas Gal - Create type maps during trace entry and in each side exit and store them in the LIR using LIR_skip. Use these type maps during trace entry and exit.
e5cb0d24cb731bc630120bf11f78a170c7ffc0e1
2008-07-01 22:21 -0400
shaver - beginning of trace-capability regression minisuite; will crash you today!
eee9f1c7556a572c7af8d2b231638239462fdecf
2008-07-01 15:58 -0700
Brendan Eich - snprintf takes sizeof buffer.
3e51f2d90f034fc2cada363da1f736d46abbf577
2008-07-01 14:46 -0700
Andreas Gal - Sync up with TT tip.
3c4ea6051de928a2c1189d1ff8a25e20f2ba709d
2008-07-01 13:36 -0700
Andreas Gal - Merge.
6e00e0f31c560dfb46d1bfa3fc43957524659d39
2008-07-01 02:37 -0700
Andreas Gal - Fix deallocation bug in the recorder. We will have to lift more code Tamarin's Interpreter to stabilize the recording.
698856edc137f6c58f8958c8dd0dc5321b12bd5a
2008-06-30 18:41 -0700
Andreas Gal - Better naming (MARK_EXIT => MARK_REGS).
46d4b17463d41588a03c9c2bb6ccf0994448a3e1
2008-07-01 10:07 -0400
shaver - Assembler requires that guard be on a cmp, so force that
45c643b522a6862dab4200014a7a38379b186db7
2008-07-01 08:11 -0400
shaver - fix frame offset calculation for args, I think also non-entry frames
01359d7a668ae26e5c583865318ebf3829e5d573
2008-07-01 08:06 -0400
shaver - label arg/var/stack/sp/state for easier trace-reading
df77fa4a3e5b743829926413ec8cb47eadad2a55
2008-06-30 18:31 -0700
Andreas Gal - 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
2008-06-30 18:08 -0700
Andreas Gal - Rework memory management, don't leak memory in the filter pipeline.
3dcda8cce1d7913534236f9496e44bf38179a013
2008-06-30 17:12 -0700
Andreas Gal - Save the side exit state at entry in to the opcode (since we want to restart ops) and enable store filter.
4261e41eccc8010be4afc1d1cba2aa6be0d9ba31
2008-06-30 15:33 -0700
Andreas Gal - Sync with TT-tip.
a53a1fc6054cead81ab777e60e28b7eb8d5e8711
2008-06-30 12:00 -0700
Andreas Gal - Cleanup memory management. Use new char[] inside our overloaded new operator that clears out memory.
5669d738e1fee707b49c1fb9895ff8ca41b3f7d6
2008-06-30 11:44 -0700
Andreas Gal - Use #ifdef DEBUG instead of VERBOSE.
b03fd7a5b45d4aff8dc6ac5be0e0f94a48e2a2bc
2008-06-30 11:39 -0700
Andreas Gal - Must use (&gc) new otherwise memory doesn't get cleared (found by danderson).
1bf762639bd07f2ad0c838c23c554e3b6da7e2ab
2008-06-30 09:36 -0700
Andreas Gal - Merge.
079cdd003c8aaaa106ebf8fd7074ea28d218f80b
2008-06-30 09:36 -0700
Andreas Gal - Housekeeping (add comments, removed some dead code.)
739285b494b8fa078f6db8956c61aa6843b51380
2008-06-30 11:18 -0400
shaver - synthesize LIR_ne using LIR_eq instead of LIR_ugt, per edwsmith's wisdom
fbb073357c595f8a9eebbc3380a4fd6d89c2bc16
2008-06-29 23:02 -0700
Andreas Gal - 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
2008-06-29 20:56 -0700
Andreas Gal - Execute trace code. Boxing back the side exit state is not handled yet.
931f133220e3a569150cfbaf2a86961a5317a5b5
2008-06-29 17:17 -0700
Andreas Gal - Fix native frame addressing (reported by vlad.)
2a26ff7f76928afa6b1bfc88aa254940ff76bb04
2008-06-29 16:57 -0700
Andreas Gal - Disable fusing of conditional check and branch when recording.
77cc23e2d53c734ad6caa9602caab8686e94b572
2008-06-29 15:21 -0700
Andreas Gal - 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
2008-06-29 13:53 -0700
Andreas Gal - 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
2008-06-29 12:21 -0700
Andreas Gal - Guard inside the clause, not seperately.
2a09d92140a0334e4de9d22c775e11b908355d12
2008-06-29 10:36 -0400
shaver - guard on inlined branch in TRY_BRANCH_AFTER_COND
d5babbef5f31c07618ce86d434de50a4c22443f3
2008-06-29 10:01 -0400
shaver - Merge with mozilla-central as of c5dc9d84d476, and restore obj-to-boolean fixes
5406f43960b997c6782e889a027b50bbd386d7bf
2008-06-28 18:51 -0700
Andreas Gal - Merge.
0f0c02db960b84edfede54656e67089f82cb4843
2008-06-28 18:47 -0700
Andreas Gal - Remember JSContext instead of trying to keep track of frame pointer.
(0) -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 +10000 tip