Commit Graph

11878 Commits

Author SHA1 Message Date
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