Brendan Eich
0f1f29e9a4
Merge again, I lost to Andreas\!
2008-08-06 13:44:07 -07:00
Andreas Gal
2acb2afdec
Always trashing the tree on a type mismatch can't work since the first iteration comes in as undefined for loop-outputs and then kills the main tree that deals with the proper stable types. Have to find a different way to deal with this.
2008-08-06 13:41:04 -07:00
Brendan Eich
586464070d
Merge.
2008-08-06 13:37:45 -07:00
Andreas Gal
fcaab6d007
Pull recompile flag out of the state and pass in as argument. Trash the tree if a secondary trace can't be connected to the loop header. This is very aggressive and might need more tinkering. Trashing the tree on every mismatch doesn't seem to work well, so thats currently disabled.
2008-08-06 13:37:29 -07:00
Brendan Eich
6e215765df
- Add builtins to support for-in loops, both iterating and getting/setter properties by name using o[i] instead of o.p where i is 'p'.
...
- Record JSOP_ITER and JSOP_ENDITER, which must be handled since tracing could start in between them (and always will, until we nest or unless we outerline).
- Add a null state guard in JSOP_FORVAR's recorder method.
- Pick include order, indentation, and trailing space nits.
2008-08-06 13:36:29 -07:00
Andreas Gal
d1d2895356
Merge.
2008-08-06 13:23:55 -07:00
Andreas Gal
a253b66a09
If we stop recording, immediately attempt to trigger the tree.
2008-08-06 13:18:30 -07:00
shaver@mozilla.org
9615dbd804
add test for non-empty stack on trace entry (fails currently, but no longer crashes)
2008-08-06 16:12:49 -04:00
Andreas Gal
141f71186c
Properly deal with trace entry with non-empty stack.
2008-08-06 12:38:17 -07:00
Andreas Gal
0ed65746a7
Split side exit handling from js_ExecuteTree.
2008-08-06 06:34:16 -07:00
Brendan Eich
a1c6f2606a
Comment or/and test framework not being traceable.
2008-08-05 11:36:25 -07:00
Brendan Eich
03b511f9e4
- Use JSStackFrame* fp over, don't declare another JSStackFrame* f, in the FORALL macros and clones (f is canonical variable name for nanojit::Fragment*, fp for JSStackFrame*).
...
- Nit-pick include order (alphabetical within each group).
- Trailing space and indentation no-knock raid.
2008-08-03 22:55:28 -07:00
Brendan Eich
da42a8c6f7
Strength-reduced unsigned modulus in the fragment quick cache, don't use signed % which requires a branch and less-than-zero test.
2008-08-03 22:35:15 -07:00
Brendan Eich
fc2c669949
Misc. cleanup.
2008-08-03 01:34:07 -07:00
Brendan Eich
df36d9e36f
Use INS_CONST to addName a few lir->insImm immediates.
2008-08-02 20:01:36 -07:00
Brendan Eich
5b9f299115
Fix TraceRecorder::ifop backward logic bug in the OBJECT case, and implement the STRING case. Add tests for truthy and falsy strings.
2008-08-02 16:51:22 -07:00
Brendan Eich
607e259b69
Fix return NULL in bool to return false.
2008-08-02 16:05:29 -07:00
Brendan Eich
0ac70ec2cc
Avoid JSUint64 (NSPR style), use uint64 (SpiderMonkey style).
2008-08-02 16:05:16 -07:00
Brendan Eich
3488a68372
Restore lost or/and tests (hg strikes again, grrrr!)
2008-08-02 15:56:28 -07:00
Andreas Gal
3799a6f8ff
Merge.
2008-08-02 03:24:03 -07:00
Andreas Gal
3106dc8845
Use quick cache to bypass fragmento is possible.
2008-08-01 22:56:52 -07:00
Andreas Gal
12f1c06952
Factor out most of the remaining code in js_LoopEdge into js_RecordTree and move the code to attach new branches into js_ExecuteTree.
2008-08-01 22:47:15 -07:00
Andreas Gal
746cb91802
Factor out js_ContinueRecording from js_LoopEdge.
2008-08-01 22:39:52 -07:00
Andreas Gal
6df2ea22c9
Add a fragment cache data structure. This will be used to accelerate the fragment lookup during branching.
2008-08-01 22:33:05 -07:00
Andreas Gal
3fea3f5d53
Split up FORALL_SLOTS_IN_PENDING_FRAMES macro in a macro that processes a frame, and a macro that uses that macro to process all pending frames.
2008-08-01 22:27:39 -07:00
Brendan Eich
5c506ec0ba
Merge.
2008-08-01 21:09:48 -07:00
Brendan Eich
1c627f62ca
Backed out changeset 8421b003fb5f -- it broke string to number, demonstrated by running trace-test.js without the -j (jit) option (10 - "1.3" => NaN instead of 8.7).
...
/be
2008-08-01 21:07:17 -07:00
Brendan Eich
269f35e4ad
Fix ifop null/object inverted logic sense bug.
2008-08-01 20:19:28 -07:00
Brendan Eich
9cff9bf4d1
Add || and && tests; use newlines to join pass and fail results now that there are too many tests to be readable joined by commas on one line.
2008-08-01 20:18:10 -07:00
Brendan Eich
88bba45b34
Add || and && tests.
2008-08-01 20:13:11 -07:00
Brendan Eich
3691962a2f
Extend ifop to handle undefined tests; implement JSOP_OR and JSOP_AND (so much work\!).
2008-08-01 12:06:04 -07:00
Brendan Eich
dc1072fe55
Style police raid: function names start in column 1, with one blank line between functions.
2008-08-01 11:03:52 -07:00
Brendan Eich
2cfdd9a55a
1. Don't store thisp literally in state.rp, get it from argv[-1]. 2. Fix DEBUG localNames code.
2008-08-01 10:40:38 -07:00
Brendan Eich
422ce674b5
Remove synthesizeFrames private declaration -- js_SynthesizeFrames is a static helper now.
2008-08-01 08:39:44 -07:00
Brendan Eich
8f837e0784
- Implement interpreter frame reconstruction (js_SynthesizeFrame).
...
- Fix MONITOR_BRANCH to restore frame-dependent interpreter locals (we want fewer of these if they can be removed with no perf loss).
- Fix FORALL_SLOTS_IN_PENDING_FRAMES not to scan argv in callee when it has scanned operand stack in caller.
- Fix import to take the localFrame from whose fun its localNames parameter was computed -- it was using cx->fp which is wrong when FORALL_SLOTS_IN_PENDING_FRAMES iterates other than the top of stack frame.
- A few interval tests that were double-ended are single-ended now.
- Add call.js mini-test (more cases needed).
2008-08-01 08:26:32 -07:00
Andreas Gal
4eba8e4012
Remove entryStackDepth. Calculate sp_adj relative to entryNativeStackSlots.
2008-08-01 02:33:54 -07:00
Andreas Gal
dd3ebd2cfe
Make synthesizeFrame private.
2008-07-31 16:30:00 -07:00
Andreas Gal
144cccb3f1
Merge.
2008-07-31 13:43:02 -07:00
Andreas Gal
bef0cf6f23
Add vprof source files (this time for real.)
2008-07-31 13:42:25 -07:00
David Anderson
ea8cf3b5ce
Fixed builtin_dmod not working on Win32.
2008-07-31 15:42:03 -05:00
Andreas Gal
80036e48d3
Pull in Moh's vprof utility from tamarin-tracing.
2008-07-31 13:39:41 -07:00
Andreas Gal
f0c74cce54
Sync with tamarin-tracing/nanojit tip.
2008-07-31 13:28:12 -07:00
shaver@mozilla.org
df01719b57
use optimized path for fromCharCode
2008-07-31 12:22:48 -07:00
shaver@mozilla.org
c274666457
Refactor js_GetUnitString to permit passing in a bare jschar, and use in js_str_fromCharCode.
2008-07-31 12:21:59 -07:00
shaver@mozilla.org
b078fb1509
Refactor trace-test.js to permit running a single test via js trace-test.js testName
.
2008-07-31 12:15:22 -07:00
shaver@mozilla.org
3221386525
add specialized StringToInt32 and filter for it
2008-07-31 11:35:08 -07:00
shaver@mozilla.org
bccb36ea81
give strtointeger a way to avoid octal, to streamline ValueToNumber a bit
2008-07-31 11:33:55 -07:00
shaver@mozilla.org
12614d0334
Coerce strings to numbers for appropriate ops.
...
(Wants a specialized StringToInt32 and a filter to put it in place.)
2008-07-31 07:41:58 -07:00
shaver@mozilla.org
d200eb863e
merge backout of d24e6005ee4c to fix the world
2008-07-31 06:36:53 -07:00
shaver@mozilla.org
f2c0c93637
Backed out changeset d24e6005ee4c (causing major array-fail).
2008-07-31 06:35:11 -07:00