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
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
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
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
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
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
Andreas Gal
2c370239e5
Add a way to calculate the current size of the native frame.
2008-06-27 16:24:17 -07:00
shaver@mozilla.org
06500a1a50
merge
2008-06-27 12:01:28 -04:00
shaver@mozilla.org
af19dd5627
rename ENABLE_TRACER to TRACING_ENABLED and explicitly parameterize on cx
2008-06-27 11:41:59 -04:00
Andreas Gal
5d9de143af
More concise conversion from object to boolean.
2008-06-27 07:48:18 -07:00
Andreas Gal
afd5f3b1e3
Clarified argument names in guard code and explain better why we guard for overflow the way we do.
2008-06-27 07:28:10 -07:00
Andreas Gal
a13289ec80
Added missing > which has been bugging me for the past month every time I saw it.
2008-06-27 07:21:37 -07:00
Andreas Gal
e59076860a
Instead of guarding on null -> boolean conversion just emit a null compare and use the boolean result.
2008-06-27 06:53:10 -07:00
Andreas Gal
3492763c96
Throw out a bunch of primitives (guards) that we are no longer interested in.
2008-06-27 06:18:12 -07:00
Andreas Gal
0c5757a21f
Add a new option -j to enable the JIT. The default is off so we can easily benchmark the overhead without the tracer.
2008-06-27 00:22:53 -08:00
Andreas Gal
a21ca6a788
Prepare LIR_ov to be used as soon Ed adds it and add a few comments that explain how overflow is handled.
2008-06-26 23:34:50 -08:00
Andreas Gal
49fe7a95eb
More cleanup and code move into TraceRecorder and prepare for LIR_ov.
2008-06-26 23:22:16 -08:00
Andreas Gal
8c67877472
Slight cleanup of the guard code emission in the trace inlines.
2008-06-26 22:05:44 -08:00
Andreas Gal
f357ff14f0
Move the recorder functionality into TraceRecorder to unclutter trace inlines.
2008-06-26 21:58:57 -08:00
Andreas Gal
0c98250a90
Move set/get into recorder and introduce init.
2008-06-26 21:41:10 -08:00
Andreas Gal
431b7b810a
Moved loading context slots into the recorder (more to follow).
2008-06-26 21:33:33 -08:00
Andreas Gal
2dca610f28
Make sure nativeOffset uses 64-bit slots on the native stack.
2008-06-26 21:25:30 -08:00
Andreas Gal
693ee7f0cc
Turn macros into inline functions and start prepatations for inlining function calls.
2008-06-26 21:19:11 -08:00
Andreas Gal
c7bab6721b
Drop JS prefix from classes related to traceing.
2008-06-26 19:49:04 -08:00
Andreas Gal
ad5ceed9cd
Merge.
2008-06-26 19:46:51 -08:00
Andreas Gal
a1b42735cd
Backed out changeset fa82b7eda72a
2008-06-26 19:44:23 -08:00
Andreas Gal
2fddbfdceb
Removed debug printfs from tracker.
2008-06-26 19:41:58 -08:00
Andreas Gal
5b4f0aaeaa
Allocate recorder dynamically to avoid having a vtable in the struct holding the reference. Emit writebacks for every update to the tracker, not just stack writes.
2008-06-26 19:37:28 -08:00
Andreas Gal
407b9cdf75
Parameterize tracker.
2008-06-26 17:13:54 -08:00
Andreas Gal
d3e1a067e5
Merge.
2008-06-24 15:58:21 -07:00
Andreas Gal
4678be95aa
Fix a bug in tracing can_do_fast_inc_dec (wasn't tracking a copy and traced incorrect code). Merge with TT tip.
2008-06-24 15:57:33 -07:00
dvander@traceknight.local
76d930e192
Fixed malloc/delete mismatch (Valgrind was complaining)
2008-06-23 18:00:03 -07:00
Andreas Gal
d8e0d5edec
Removed debug code.
2008-06-23 17:17:48 -07:00