Andreas Gal
7d11225df2
If we run into an error during compilation, blacklist that fragment. If we run out of memory, flush the cache.
2008-08-06 22:26:20 -07:00
Andreas Gal
a750469f1a
Flush JIT cache for all contexts. Clear nanojit error state when we start compiling.
2008-08-06 22:18:33 -07:00
Andreas Gal
1405e5e0a2
Remove dead code.
2008-08-06 22:10:30 -07:00
Andreas Gal
72f8db35a1
Add a helper to flush the JIT code cache (and the fragment lookup quick cache). On a global shape mismatch trash the entire cache (might be a bit overly aggressive). Similary, during GC flush the code cache.
2008-08-06 21:56:25 -07:00
Andreas Gal
95bebc4e66
Merge.
2008-08-06 19:31:52 -07:00
Andreas Gal
36af9ec40c
Tracker outer trees for every tree and merge globals of inner trees into all outer trees as we register inner trees with outer trees.
2008-08-06 19:25:24 -07:00
shaver@mozilla.org
a88153c229
add tests for missing and excess arity for trace-entry function context
2008-08-06 22:24:39 -04:00
Andreas Gal
2d0cef9e4a
Add a contains method to Queue.
2008-08-06 19:06:37 -07:00
Andreas Gal
9c88e4b9fb
Fix misleading debug text.
2008-08-06 19:04:41 -07:00
Andreas Gal
0a8f2e58f6
Fix tracing of code inside methods that were called with arity mismatch.
2008-08-06 18:51:26 -07:00
Brendan Eich
f9b7d1c86b
Replace bogus assertion with runtime test for correct abort test (getter or setter, given sprop hit from propcache).
2008-08-06 17:54:36 -07:00
Andreas Gal
84d7e74c31
Fix nonEmptyStack1 test.
2008-08-06 17:44:39 -07:00
Graydon Hoare
f92d5391d2
Bug 447713, remove the import/export functionality from spidermonkey, r=brendan
2008-08-06 17:34:58 -07:00
Bob Clary
059983533d
JavaScript Tests - regression test for bug 443569, by Jesse Ruderman
2008-08-07 05:18:54 -07:00
Bob Clary
b0f81050d2
JavaScript Tests - regression test for bug 442333
2008-08-07 05:00:42 -07:00
Bob Clary
59b81c8215
JavaScript Tests - regression test for bug 442242, by Igor Bukanov
2008-08-07 04:47:33 -07:00
Bob Clary
04dfdc60fe
JavaScript Tests - regression test for bug 441477, by Jason Orendorff
2008-08-07 03:23:36 -07:00
Bob Clary
f8e1cfa526
JavaScript Tests - regression test for bug 440558, by Ben Turner
2008-08-07 02:54:46 -07:00
Bob Clary
da20b9755a
JavaScript Tests - regression tests for bug 435345, by Cyrus Omar
2008-08-06 21:58:03 -07:00
Bob Clary
b535815cda
JavaScript Tests - regression tests for bug 434837, by Cyrus Omar
2008-08-06 21:48:28 -07:00
Bob Clary
305be2402c
JavaScript Tests - regression tests for bug 446169, by romaxa, Igor Bukanov
2008-08-06 19:59:24 -07:00
Bob Clary
abd6467b9a
JavaScript Test - binary operator evaluation order, bug 433672
2008-08-06 19:15:12 -07:00
Gavin Sharp
d01df5b3e6
Bug 449503: fix --enable-dtrace, r=igor
2008-08-06 17:51:38 -07:00
Andreas Gal
822dc23276
Disable outerlining, to be replaced with nesting.
2008-08-06 17:34:06 -07:00
Andreas Gal
bc5952ccb5
Add a helper to emit a tree-call into the currently recording trace.
2008-08-06 16:24:29 -07:00
Andreas Gal
12dad038be
Add CallTree builtin.
2008-08-06 15:56:31 -07:00
Andreas Gal
9a3359278f
Make ip in InterpStruct const*.
2008-08-06 15:55:00 -07:00
Andreas Gal
9a985cecb6
Merge.
2008-08-06 15:04:18 -07:00
Andreas Gal
8d9bd943f9
Cleanup stack offset calculation and eliminate the stack offset fiddling that was necessary for nanojit prior to adding the getTop hook.
2008-08-06 15:04:02 -07:00
Brendan Eich
81ca3977ff
Add first non-empty stack testcase, which now passes (yay).
2008-08-06 13:53:34 -07:00
Brendan Eich
8aea5e6c49
Merge again, I lost to Andreas\!
2008-08-06 13:44:07 -07:00
Andreas Gal
f3a597c35d
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
ada0e648fa
Merge.
2008-08-06 13:37:45 -07:00
Andreas Gal
2b7f0ed256
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
d5c6dcd638
- 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
3fcf2d0688
Merge.
2008-08-06 13:23:55 -07:00
Andreas Gal
2f936f6cc5
If we stop recording, immediately attempt to trigger the tree.
2008-08-06 13:18:30 -07:00
shaver@mozilla.org
8bccd00c7f
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
d4bbd9734b
Properly deal with trace entry with non-empty stack.
2008-08-06 12:38:17 -07:00
Bob Clary
4e201d37bb
JavaScript Tests - regression test for bug 433279, by nanto_vi (TOYAMA Nao), Jesse Ruderman
2008-08-06 10:50:20 -07:00
Igor Bukanov
ca7b7c39f5
bug 447762 - merging var and local JS bytecodes. r=brendan
2008-08-06 16:13:22 +02:00
Andreas Gal
fb421e671a
Split side exit handling from js_ExecuteTree.
2008-08-06 06:34:16 -07:00
Bob Clary
6623bad96e
JavaScript Test - regression test for bug 427798, by Igor Bukanov
2008-08-06 02:39:15 -07:00
Bob Clary
01fd623850
JavaScript Tests - regression test for bug 422269, by Igor Bukanov
2008-08-06 02:25:25 -07:00
Bob Clary
4ce5129041
JavaScript Tests - regression test for bug 410852, by Rob Sayre
2008-08-06 01:46:49 -07:00
Bob Clary
bfa0873fdb
JavaScript Tests - regression test for bug 438415, by Brian Crowder
2008-08-05 23:47:20 -07:00
Blake Kaplan
49d5afa35e
Bug 449152 - js_CheckAccess should init out params on failure, r=brendan
2008-08-05 14:49:50 -07:00
Bob Clary
62d958a2be
merge commit for test, bug 430740
2008-08-05 13:48:32 -07:00
Bob Clary
84d2a73631
JavaScript Tests - modify test for BOM to whitespace conversion, bug 430740
2008-08-05 13:46:36 -07:00
Brendan Eich
ac3b0f4557
Comment or/and test framework not being traceable.
2008-08-05 11:36:25 -07:00
Brian Crowder
927b150481
Bug 384244 - update jsdtoa with interesting pieces of more-recent dtoa, r=igor
2008-08-05 11:18:29 -07:00
Blake Kaplan
e23486ebed
Try to fix the orange by overriding platform-specific errors
2008-08-04 18:04:19 -07:00
Blake Kaplan
d42f0d18f7
Fix missed review comment from bug 408412
2008-08-04 16:54:16 -07:00
Bob Clary
784ecdcdd4
JavaScript Tests - regression test for bug 446494, by Philip Taylor
2008-08-04 16:48:01 -07:00
Blake Kaplan
c0bc5e6e03
Implement ES3.1's Object.getPrototypeOf. bug 444787, r=brendan
2008-08-04 16:43:12 -07:00
Blake Kaplan
bb3043d493
let declarations at top level and function level should not shadow var. bug 346749, r=brendan
2008-08-04 16:37:00 -07:00
Blake Kaplan
e8742b57fd
Don't pass around information we don't use. bug 448595, r=brendan
2008-08-04 16:36:35 -07:00
Blake Kaplan
1707e24478
Cleanup error reporting in dis and dissrc. bug 445743, r=brendan
2008-08-04 16:36:10 -07:00
Blake Kaplan
c1ae312d79
Propagate compilation errors to our caller to make syntax errors easier to debug. bug 408412, r=shaver sr=brendan
2008-08-04 10:03:34 -07:00
Brendan Eich
ccb35b588d
- 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
5b49427b01
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
47dd9ac645
Misc. cleanup.
2008-08-03 01:34:07 -07:00
Brendan Eich
68106102f8
Use INS_CONST to addName a few lir->insImm immediates.
2008-08-02 20:01:36 -07:00
Brendan Eich
dcb09f96df
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
b344a35dd0
Fix return NULL in bool to return false.
2008-08-02 16:05:29 -07:00
Brendan Eich
b57540a87a
Avoid JSUint64 (NSPR style), use uint64 (SpiderMonkey style).
2008-08-02 16:05:16 -07:00
Brendan Eich
12a15d6872
Restore lost or/and tests (hg strikes again, grrrr!)
2008-08-02 15:56:28 -07:00
Andreas Gal
f92e18c58e
Merge.
2008-08-02 03:24:03 -07:00
Andreas Gal
8d0e486947
Use quick cache to bypass fragmento is possible.
2008-08-01 22:56:52 -07:00
Andreas Gal
be665ae142
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
471c0b9fbb
Factor out js_ContinueRecording from js_LoopEdge.
2008-08-01 22:39:52 -07:00
Andreas Gal
1157b3a775
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
d89d579585
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
f799bebb7f
Merge.
2008-08-01 21:09:48 -07:00
Brendan Eich
5f7cffe7ec
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
622bc54d90
Fix ifop null/object inverted logic sense bug.
2008-08-01 20:19:28 -07:00
Brendan Eich
73c8cc0659
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
3dad101a7c
Add || and && tests.
2008-08-01 20:13:11 -07:00
Brendan Eich
b5e4c9bea4
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
4315f6173f
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
298f9c6d8f
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
b792cd9836
Remove synthesizeFrames private declaration -- js_SynthesizeFrames is a static helper now.
2008-08-01 08:39:44 -07:00
Brendan Eich
2faf8f5d7c
- 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
ef57e12366
Remove entryStackDepth. Calculate sp_adj relative to entryNativeStackSlots.
2008-08-01 02:33:54 -07:00
Andreas Gal
a7d09b2ff1
Make synthesizeFrame private.
2008-07-31 16:30:00 -07:00
Andreas Gal
e6a729256a
Merge.
2008-07-31 13:43:02 -07:00
Andreas Gal
78535943cb
Add vprof source files (this time for real.)
2008-07-31 13:42:25 -07:00
David Anderson
b1160d5d83
Fixed builtin_dmod not working on Win32.
2008-07-31 15:42:03 -05:00
Andreas Gal
e606bdb17e
Pull in Moh's vprof utility from tamarin-tracing.
2008-07-31 13:39:41 -07:00
Andreas Gal
5a99fbc025
Sync with tamarin-tracing/nanojit tip.
2008-07-31 13:28:12 -07:00
shaver@mozilla.org
097345ebe0
use optimized path for fromCharCode
2008-07-31 12:22:48 -07:00
shaver@mozilla.org
6c78fa07ea
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
a39e3b2846
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
6906e26d42
add specialized StringToInt32 and filter for it
2008-07-31 11:35:08 -07:00
shaver@mozilla.org
9250c74f1f
give strtointeger a way to avoid octal, to streamline ValueToNumber a bit
2008-07-31 11:33:55 -07:00
shaver@mozilla.org
0fbbdb8209
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
c52ac1a18f
merge backout of d24e6005ee4c to fix the world
2008-07-31 06:36:53 -07:00
shaver@mozilla.org
9b0784225d
Backed out changeset d24e6005ee4c (causing major array-fail).
2008-07-31 06:35:11 -07:00
Andreas Gal
a286f04a51
Merge.
2008-07-31 01:35:56 -07:00
Andreas Gal
f15f73500f
Remove ANY_TYPE and move debug printf around to print entry point even if we can't enter due to type mismatch.
2008-07-31 01:35:18 -07:00
shaver@mozilla.org
b3bbda75fa
Make guard return expected, so we can trace alternate cases easily.
...
Better diagnostic for non-global scope chain head.
2008-07-30 22:59:13 -07:00
Andreas Gal
3f1c0f5bbe
If trees are not enabled, don't try to reuse state and param1.
2008-07-30 21:40:21 -07:00
David Anderson
5fd2db3bf4
Re-use initial parameters on tree fragments.
2008-07-30 23:30:58 -05:00
shaver@mozilla.org
b39a8fb62f
Implement JSOP_EQ and JSOP_NE over strings, plus JSOP_STRING.
2008-07-30 17:28:59 -07:00
Andreas Gal
2bc0d1673f
Merge.
2008-07-30 16:37:35 -07:00
Brendan Eich
b7b8659826
- Export JSSLOT_ITER_* from jsiter.cpp to jsiter.h, for jstracer.cpp to use.
...
- Fix OBJ_GET_SLOT to be STOBJ_GET_SLOT in jsiter.cpp, no thread safety here (bug on file).
- Move JSNativeEnumerator from jsobj.cpp to jsobj.h for jstracer.cpp as well.
- Rename JOF_2BYTE JOF_UINT8 for consistency, and actually decompile it.
- Trace JSOP_FORVAR (can't do anything in JSOP_ITER, it comes before the loop).
- Shortened some guardMyLongSummerVacationWithinBounds names ;-).
- Removed/refactored to avoid dslots_ins obligation on all callers.
2008-07-30 16:32:33 -07:00
Andreas Gal
726ef07e25
Make the global frame layout match the slot layout in the global object. This will allow leaving global values in place when switching trees as long both inner and outer tree use the same value.
2008-07-30 16:28:48 -07:00
Andreas Gal
fd2feabbee
Merge.
2008-07-30 16:06:11 -07:00
Andreas Gal
6d1e6f68d2
Use isGlobal to distinguish whether a value is a global slot instead of scanning the table every time.
2008-07-30 16:05:51 -07:00
shaver@mozilla.org
b8c38e8b76
trace Math.random
2008-07-30 15:51:44 -07:00
shaver@mozilla.org
70faa51284
Trace String.fromCharCode.
...
Handle failure signals of < 0 or NULL from traceable natives.
2008-07-30 15:19:25 -07:00
Andreas Gal
77d945e6a3
Clean up the living room a bit since people are going to come by to look at it.
2008-07-30 13:34:22 -07:00
Andreas Gal
feccfa368d
Add isGlobal to check whether a value is a slot of the global object.
2008-07-30 12:15:53 -07:00
Andreas Gal
f95c73c3a0
Note to self: hacking after 4am is detrimental to my spelling.
2008-07-30 04:20:48 -07:00
Andreas Gal
eb6a8bb7f5
Major shakeup of the interning code for globals. Globals are now detected on demand as they are used and the slots are noted in treeInfo->globalSlots. At the same time the type is recorded in treeInfo->globalTypeMap. The stack type-map is maintained separately in treeInfo->stackTypeMap. All these structures are lists and are maintained as List<T> objects. Imports for globals can appear at the top (if we have already seen some imports for the loop header and are recompiling), or on the fly for lazily found values. We no longer intern all global properties that happen to match a name in the current function, and we also support inlining of functions that touch globals that are not used in the method where the trace started in.
2008-07-30 04:17:22 -07:00
Andreas Gal
0b04649697
Use List<T> to maintain global slot list in TreeInfo.
2008-07-30 01:38:21 -07:00
Andreas Gal
3c9c833bfb
Trash entire tree with all the information associated with it when we have a typemap conflict or the global shape changes.
2008-07-30 01:29:13 -07:00
Andreas Gal
770e84349d
Remember number of global slots known at that point in the trace in every side exit (forward-looking change to cope with dynamic collection of interned globals.)
2008-07-30 00:15:07 -07:00
Andreas Gal
0705fd59e1
Merge.
2008-07-29 23:51:43 -07:00
Andreas Gal
715f4749f9
Add a generic list data structure and fix side exit handling to always pick the right typemap to work with (exit map, not entry map).
2008-07-29 23:48:39 -07:00
dvander@iroh.alliedmods.net
8b8fa77bd8
Merge.
2008-07-29 19:20:36 -05:00
David Anderson
7aef4f402d
Fixed some MSVC whinings, implemented rdtsc on win32
2008-07-29 19:19:51 -05:00
Andreas Gal
b66fe85ded
Merge.
2008-07-29 17:15:00 -07:00
Andreas Gal
da5f6b4a83
Removed unused field from TreeInfo.
2008-07-29 17:14:36 -07:00
David Anderson
dcf6433329
Merge (an empty one, thanks hg)
2008-07-29 19:05:59 -05:00
David Anderson
f62e9a10c8
Fixed infinite looping on non-threaded tracing (rumor is that we do Windows builds of Firefox)
2008-07-29 19:04:17 -05:00
Brendan Eich
3c4e4c6f48
Merge again.
2008-07-29 16:02:53 -07:00
Brendan Eich
0ea7574e95
Guard property cache hits by shape(s).
2008-07-29 16:01:00 -07:00
Andreas Gal
3f20e80741
Rename gslots to globalSlots.
2008-07-29 15:28:23 -07:00
Andreas Gal
4926430047
Remove global frame transition code. Obsoleted by the new on-demand global loading code which we are about to add.
2008-07-29 15:16:35 -07:00
Brendan Eich
1e187d0003
Merge.
2008-07-29 14:52:22 -07:00
Andreas Gal
20185cf2d8
Limit tree growth to side exits that expicitly declare that they want to be grown.
2008-07-29 11:13:41 -07:00
Brendan Eich
739c9a357d
Fix a couple of comments.
2008-07-29 10:53:58 -07:00
shaver@mozilla.org
76237b5e15
JSOP_ADD over strings
2008-07-29 07:53:31 -07:00
shaver@mozilla.org
77fe1a8470
signs, signs, everywhere signs
2008-07-29 07:38:04 -07:00
shaver@mozilla.org
6c0c3ff532
Trace String.prototype.substring for two-arg case.
...
* Export str_substring as js_str_substring.
* Add basic String_p_substring builtin (only handle end > begin, both in range).
* Add String_p_substring_1 builtin for the missing-end case.
* INS_CONST for named constants in traces.
* Support boxing of strings.
* Support CALLPROP with primitive this.
* Support traceable natives which require cx and this.
* Support fallible traceable natives.
* Fix JSOP_LENGTH to use i2f on result (need that everything-is-doubles T-shirt).
* Add strings test.
2008-07-29 07:32:18 -07:00
shaver@mozilla.org
4b69cbdc04
Trace JSOP_LENGTH over flat strings. (Need some cmovery for dep strings.)
2008-07-29 06:51:27 -07:00
Andreas Gal
b234d6acdd
Fix spelling.
2008-07-29 01:02:06 -07:00
Andreas Gal
02191bb3f3
Cleanup global frame switching and add delayed write-back code for doubles.
2008-07-29 01:00:50 -07:00
Brendan Eich
261fde0307
Regularize loop update in SwitchNativeGlobalFrame.
2008-07-29 00:13:59 -07:00
Brendan Eich
360ad1695f
Fix synthesizeFrame's newifp->callerRegs/frame.regs update to pass along the pointer to the precious js_Interpret regs local and update it.
2008-07-29 00:06:29 -07:00
Brendan Eich
60509d7113
Try to fix SwitchNativeGlobalFrame, still studying it but these changes seem necessary.
2008-07-28 23:59:29 -07:00
Brendan Eich
d421df0b22
Fix synthesizeFrame parameterization, and have it reconstruct stack depth; warning and space fixes.
2008-07-28 23:47:20 -07:00
Brendan Eich
338a78127a
Export js_ReconstructStackDepth for use by side-exit code when synthesizing stack frames.
2008-07-28 23:46:27 -07:00
Andreas Gal
f916c69b95
Merge.
2008-07-28 23:31:39 -07:00
Andreas Gal
b7fda1f5e0
Switch from one global frame to another by walking the two sorted gslots lists.
2008-07-28 23:30:16 -07:00
Brendan Eich
b2225a4e98
Fix uninitialized nbytes in synthesize_frame.
2008-07-28 22:25:13 -07:00
Andreas Gal
fc31baea45
Compilation fix for MSVC.
2008-07-28 21:17:43 -07:00
Andreas Gal
f341682074
Cleanup and split native frame reading/writing into stack and global part.
2008-07-28 18:06:34 -07:00
Andreas Gal
578c29bb08
Sort interned global slots in ascending order for fast comparison of two different global frames when switching between them.
2008-07-28 16:49:13 -07:00
shaver@mozilla.org
f4add49f3e
not-yet-working beginnings of frame reconstruction
2008-07-28 09:05:55 -04:00
Andreas Gal
cc8e0edecd
Trash the interned globals of a tree if we experience a global shape mismatch.
2008-07-27 21:44:08 -07:00
Andreas Gal
3dd8ac9ceb
Trash the typemap if a change of the global shape forces us to throw away a tree.
2008-07-27 19:18:51 -07:00
Andreas Gal
38fc2aafda
Abort trace if we inline too deeply.
2008-07-27 16:28:09 -07:00
Andreas Gal
f0df78b6da
Merge.
2008-07-27 16:19:15 -07:00
Andreas Gal
824ec3d48f
Track the type of guards and react accordingly if we bail out on them. Guards that protect against out-of-memory conditions don't try to grow the tree. Instead we just resume the interpreter.
2008-07-27 16:18:53 -07:00
Andreas Gal
255f1fe65f
Don't use ABORT_TRACE outside the recorder.
2008-07-27 15:40:34 -07:00
shaver@mozilla.org
141edf8a24
do setelem in a builtin, so we don't abort trace every 8 times when growing
2008-07-27 18:34:23 -04:00
Andreas Gal
f9440fa493
If we see a f2i(UnboxDouble) chain, simplify it to UnboxInt32 which does the conversion internally. This also enables a fastpath to read 31-bit jsval integers from arrays.
2008-07-27 14:55:26 -07:00
Andreas Gal
16074fb8bb
Merge.
2008-07-27 14:29:24 -07:00
Andreas Gal
03b0e4b45f
Add limited outerlining. Much of this will be subsumed by nested trees.
2008-07-27 14:28:56 -07:00
shaver@mozilla.org
5cd77d7fc9
remove rval tracking, since it's no longer necessary
2008-07-27 15:47:43 -04:00
Andreas Gal
6604e884a5
Remove guardCount. No longer needed.
2008-07-27 12:05:01 -07:00
Andreas Gal
4da5c40227
Merge.
2008-07-27 02:15:42 -07:00
Andreas Gal
5234290eaf
Smarter speculative demotion of numbers to integers and promotion of the trace seems to require actual doubles. If the number at entry looks like an int we make the slot an int and compile as such. If the loop-tail proves the slot to be a double, we recompile the trace. Currently such miss-speculation cannot be handled on secondary traces since we are currently unable to recompile the primary trace. Such secondary traces are blacklisted.
2008-07-27 02:15:17 -07:00
Brendan Eich
b9c3050076
Add JSSF_NO_SCRIPT_RVAL script flag, and uint8 flags field for it.
2008-07-27 00:12:01 +01:00
Brendan Eich
d6697763b7
Fix comment typo.
2008-07-27 00:11:30 +01:00
Blake Kaplan
7ccafb949b
Merge backout
2008-08-04 11:13:34 -07:00
Blake Kaplan
61ceaca2ff
Backed out changeset 90020c4ad446 to fix tinderbox orange while I figure out why a test was failing.
2008-08-04 11:12:51 -07:00
Blake Kaplan
66418514ea
Don't optimize variable names in with statements. bug 448595, r=brendan
2008-08-04 10:07:06 -07:00
Blake Kaplan
6039df5d19
Propagate compilation errors to our caller to make syntax errors easier to debug. bug 408412, r=shaver sr=brendan
2008-08-04 10:03:34 -07:00
Graydon Hoare
ec10e9a4f4
Bug 444845, js hooks to control vtune, r=sayrer
2008-07-29 15:19:26 -07:00
Igor Bukanov
893087a23c
bug 445391 - re-enable OJI for Firefox 3.1, the configure changes is from jst, r=jst,crowder, sr=benjamin
2008-07-29 19:53:03 +02:00
Igor Bukanov
722c2031d6
bug 446320 - fixing -Wformat warnings in debug printouts. r=crowder
2008-07-29 16:11:36 +02:00
Igor Bukanov
2d208d3f5b
bug 448173 - fixing js shell compilation issues on Windows caused by my changes from the bug 447807. r=bclary, not-part-of-the-build
2008-07-28 01:22:29 +02:00
Igor Bukanov
10b11d0ab0
Backed out changeset 65836af09dac - compilation errors
2008-07-27 23:05:52 +02:00
Igor Bukanov
e0e39c56dc
bug 446320 - fixing -Wformat warnings in debug printf code. r=crowder
2008-07-27 22:52:10 +02:00
Andreas Gal
aec2839ca9
Don't try to demote slots on secondary traces (we have to recompile the primary trace as well for that, which we currently don't do.)
2008-07-25 19:30:33 -07:00
Andreas Gal
bd2d7b538a
Add a test case for trees.
2008-07-25 19:10:23 -07:00
Andreas Gal
c39aa77689
Added sunspider tests to t/ for dvander.
2008-07-25 18:43:19 -07:00
Andreas Gal
67298590aa
Eliminate EntryRegs. Its not safe to keep a reference to the entry SP since we might extend the tree from a different outer stack frame. Instead just store the entryStackDepth.
2008-07-25 18:22:15 -07:00
Andreas Gal
164b2b6bb5
Print real recording point, not entryRegs and add an assert that makes sure the guard we come out of is associated with the tree we entered into.
2008-07-25 18:13:57 -07:00
Andreas Gal
f38c550eea
Merge.
2008-07-25 16:54:14 -07:00
Andreas Gal
5e2eaa71ff
The VP engineering broke JSOP_NAME! We have to check whether the slot is actually interned and otherwise abort.
2008-07-25 16:51:42 -07:00
Brendan Eich
3106d2409e
Avoid JSOP_POPV in global scripts from load(), etc.
2008-07-26 01:23:12 +02:00
David Anderson
d5d308b03a
Fixed entry typemap having wrong allocation size.
2008-07-25 13:30:52 -07:00
Bob Clary
fd044e0ccf
JavaScript Tests - regression test for bug 438415, by Jesse Ruderman
2008-07-26 21:13:30 -07:00
Andreas Gal
3a43211d7f
Can't use lr->from. Seems to not get set in certain cases. Go figure. The nanojit tree code is really weird.
2008-07-25 02:29:36 -07:00
Andreas Gal
c5c8b10c27
Factor out AttemptToGrowTree.
2008-07-25 02:00:02 -07:00
Andreas Gal
624bce597b
Determine ahead of time whether a side exit is a loop-terminating side exit instead of re-determining this at every side exit.
2008-07-25 01:44:40 -07:00
Andreas Gal
861f0290c2
Move trace activation code into js_ExecuteTree().
2008-07-25 01:20:40 -07:00
Andreas Gal
f5ffb0d227
Make demotion threshold optional (0=off, 32=default). Turn off to debug the type assert bug.
2008-07-24 17:33:34 -07:00
Andreas Gal
72432f4348
Don't demote slots in overly long traces (based on counting the number of guards, current threshold=32).
2008-07-24 16:25:18 -07:00
Graydon Hoare
3645b59597
Bug 447844: fix build with JS_HAS_SCRIPT_OBJECT, r=mrbkap
2008-07-24 16:07:00 -07:00
Andreas Gal
691b899b41
Cleanup iteration over all slots to use a single macro to avoid code duplication.
2008-07-24 14:51:14 -07:00
Brian Crowder
39fc6f9e57
merging backout
2008-07-24 14:07:05 -07:00
Brian Crowder
56c72aac22
Backed out changeset a5fc387c4622
2008-07-24 14:05:29 -07:00
Igor Bukanov
ef1f2bb9ff
bug 447807 - allow to override the object dir when building js shell. r=crowder
2008-07-24 22:08:18 +02:00
Brian Crowder
c3132a330c
Fixing a typo in a comment.
2008-07-24 12:59:11 -07:00
Brian Crowder
9088022ac6
Bug 384244 - Updating dtoa from David M. Gay's latest code, and refactoring to
...
accept patches from this upstream source more easily. r=mrbkap, r=igor
2008-07-24 12:43:41 -07:00