Brendan Eich
9a38bf0cdc
Eliminate useless genexp for(;;) conditions (442342, r=jorendorff).
2008-07-01 13:05:11 -07:00
bcrowder@mozilla.com
9f3e12daf8
Bug 438415 - Assertion failure: *vp != JSVAL_HOLE, r=shaver, r=brendan
2008-07-01 12:47:09 -07:00
bcrowder@mozilla.com
9736e0887f
Bug 435345 - Cannot accurately watch the 'length' property of arrays, r=shaver
2008-07-01 12:47:09 -07:00
shaver@mozilla.org
6e5e783b3d
Assembler requires that guard be on a cmp, so force that
2008-07-01 10:07:20 -04:00
shaver@mozilla.org
da72d620b9
fix frame offset calculation for args, I think also non-entry frames
2008-07-01 08:11:49 -04:00
shaver@mozilla.org
50d599cb99
label arg/var/stack/sp/state for easier trace-reading
2008-07-01 08:06:02 -04:00
Andreas Gal
d3e7a57a68
Fix deallocation bug in the recorder. We will have to lift more code Tamarin's Interpreter to stabilize the recording.
2008-07-01 02:37:07 -07:00
Andreas Gal
1567618f99
Better naming (MARK_EXIT => MARK_REGS).
2008-06-30 18:41:22 -07:00
Andreas Gal
84274f1b33
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.
2008-06-30 18:31:29 -07:00
Andreas Gal
87396e1870
Rework memory management, don't leak memory in the filter pipeline.
2008-06-30 18:08:32 -07:00
Andreas Gal
19b4bcdc69
Save the side exit state at entry in to the opcode (since we want to restart ops) and enable store filter.
2008-06-30 17:12:52 -07:00
Andreas Gal
e6b28ce4f8
Sync with TT-tip.
2008-06-30 15:33:41 -07:00
Andreas Gal
f8a6a789d0
Cleanup memory management. Use new char[] inside our overloaded new operator that clears out memory.
2008-06-30 12:00:31 -07:00
Andreas Gal
7511e45275
Use #ifdef DEBUG instead of VERBOSE.
2008-06-30 11:44:47 -07:00
Andreas Gal
806d0de678
Must use (&gc) new otherwise memory doesn't get cleared (found by danderson).
2008-06-30 11:39:00 -07:00
Andreas Gal
dbd9bb7b09
Merge.
2008-06-30 09:36:38 -07:00
Andreas Gal
5d1d997c9d
Housekeeping (add comments, removed some dead code.)
2008-06-30 09:36:10 -07:00
shaver@mozilla.org
9cf9a554b6
synthesize LIR_ne using LIR_eq instead of LIR_ugt, per edwsmith's wisdom
2008-06-30 11:18:43 -04:00
Andreas Gal
d8d25140f9
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.
2008-06-29 23:02:22 -07:00
Andreas Gal
b1e24b8c98
Execute trace code. Boxing back the side exit state is not handled yet.
2008-06-29 20:56:06 -07:00
Andreas Gal
e267cb120c
Fix native frame addressing (reported by vlad.)
2008-06-29 17:17:39 -07:00
Andreas Gal
eff9ce9111
Disable fusing of conditional check and branch when recording.
2008-06-29 16:57:27 -07:00
Andreas Gal
b3060293c7
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.
2008-06-29 15:21:50 -07:00
Andreas Gal
253b2572b2
Initialize jump table when side-entering the interpreter. Keep track of cx and sp directly in the recorder instead of going through the tracker.
2008-06-29 13:53:40 -07:00
Andreas Gal
28d2ed62d9
Guard inside the clause, not seperately.
2008-06-29 12:21:16 -07:00
shaver@mozilla.org
d93ba06080
guard on inlined branch in TRY_BRANCH_AFTER_COND
2008-06-29 10:36:31 -04:00
shaver@mozilla.org
d571eaac32
Merge with mozilla-central as of c5dc9d84d476, and restore obj-to-boolean fixes
...
from 2b107c27dedf (accidentally backed out during an earlier merge). 22 test
suite failures for -L lc2 lc3 spidermonkey-n slow-n, probably needs some guard
work in TRY_BRANCH_AFTER_COND.
2008-06-29 10:01:59 -04:00
Andreas Gal
4cc6b3292a
Merge.
2008-06-28 18:51:59 -07:00
Andreas Gal
ef71223de2
Remember JSContext instead of trying to keep track of frame pointer.
2008-06-28 18:47:12 -07:00
Andreas Gal
628a1f6985
Cleanup trace abort/end code.
2008-06-28 18:19:21 -07:00
shaver@mozilla.org
47f657d0a4
Fix prim_object_as_boolean (was reversed in meaning in both interp and trace
...
cases).
2008-06-28 21:12:55 -04:00
Andreas Gal
ba35b66f90
Make internal form of nativeFrameSize private.
2008-06-28 17:22:08 -07:00
Andreas Gal
91c85e9cb4
Merge.
2008-06-28 17:14:42 -07:00
Andreas Gal
6df975a5b5
Rewritten frame management. Use cx->fp->regs chain instead of direct passing of those structures.
2008-06-28 17:14:06 -07:00
shaver@mozilla.org
f81f153710
fix typo in DoIncDec leading to script termination
2008-06-28 19:28:56 -04:00
shaver@mozilla.org
fac133d1e5
Implement icmp_ne (in terms of LIR_ugt(i, 0)!) and make JSOP_NE traceable.
2008-06-28 17:47:33 -04:00
Mats Palmgren
b70c9931b1
Don't use the surface if there was an error creating it. b=441995 r+sr=roc
2008-06-28 23:45:53 +02:00
shaver@mozilla.org
8cb49dede9
avoid trace-troubling temporaries via cast gymnastics
2008-06-28 14:48:02 -04:00
Andreas Gal
552425ee07
Hook up pc and sp to the tracer in order to generate proper PC/SP adjustment code.
2008-06-28 11:00:18 -07:00
Andreas Gal
b6773c0340
Move obj_is_xml into interp since its not a primitive.
2008-06-28 10:12:24 -07:00
Andreas Gal
44e0963c4e
Merge.
2008-06-28 09:58:48 -07:00
Andreas Gal
1f37ae3e62
Small cleanups and licensing blurb housekeeping.
2008-06-28 09:58:15 -07:00
Robert Kaiser
8cddf8247e
bug 442121 - Don't call into mailnews from toolkit-makefiles.sh, r=ted
2008-06-28 18:49:06 +02:00
shaver@mozilla.org
cc9079bc60
More work on tracing EQUALITY_OP. Still need to synthesize LIR_ne before it
...
traces correctly. (This loses the length-test equality-check short-circuit
for strings, until such time as we have a builtin for EqualStrings as well:
regresses js1_5/String/regress-322772.)
2008-06-28 12:46:21 -04:00
Josh Aas
06b4d2563f
Re-landing. Decomtaminate native menu system. Add new native menu API. Lots of cleanup for the native menu system code. Memory usage and speed improvements. b=433952 r=bent r=kreeger sr=roc
2008-06-28 03:55:30 -04:00
Alexander Surkov
6704d53385
bug 441888 - ARIA checked menu items are not included in the total list of menu items, r=MarcoZ
2008-06-28 08:16:34 +02:00
shaver@mozilla.org
293db3763e
abort tracing if we see an XML object in an equality op
2008-06-28 00:14:21 -04:00
shaver@mozilla.org
4fc71515e0
Add guards for XML objects, and some tracer bits to accommodate them.
2008-06-27 23:58:06 -04:00
Andreas Gal
e5d4f398ef
Merge.
2008-06-27 18:09:33 -07:00
Andreas Gal
40f1a90a78
Move recorder initialization into TraceRecorder and encapsulate its state.
2008-06-27 18:06:50 -07:00