Commit Graph

11855 Commits

Author SHA1 Message Date
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
Brian Crowder
2355faa1e9 Bug 446494 - Number.toLocalString() doesn't handle Infinity or exponential notation correctly, r=mrbkap 2008-07-24 12:43:40 -07:00
Andreas Gal
a2fc64ea01 Add shark support to md5.js directly, no longer around the recorder. 2008-07-24 11:08:37 -07:00
Andreas Gal
8278ce69a1 Make the interpreter notify us when frames are popped so we see he right cx->fp value. Fix return value tracking for JSOP_STOP. 2008-07-24 10:35:10 -07:00
Andreas Gal
9780602644 Backed out changeset a58e7ce6eb7f. stack(0) is wrong, if at all it should have been stack(-(1 + argc)). But anyway, its impossible to write through to the frame via set() at that point because leaveFrame() doesn't actually modify cx->fp. We need to wait for the interpreter to do so. Until then nativeFrameOffset produces incorrect values and the assert fails in set. 2008-07-24 10:09:51 -07:00
Igor Bukanov
ba2f1df80c bug 447705 - fixinge makefile for js shell to handle parallel make invocations. r=crowder, not-part-of-the-build. 2008-07-24 11:03:19 +02:00
shaver@mozilla.org
3d0176f370 fix return-value handling for new stack layout 2008-07-24 00:31:37 -07:00
Andreas Gal
0a1e83ca07 Maintain a separate frame for globals using InterpState->gp.
This will allow nested loops to access the globals interned by outer loops while at the same time sharing parts of the stack of the outer loop.
2008-07-23 23:18:02 -07:00
Bob Clary
0e5ddfabc5 Sisyphus|JavaScript Tests - add repository information to failure tracking, bug 447738 2008-07-24 01:04:56 -04:00
Bob Clary
1a7e7f7720 merge commit for bug 399397 2008-07-24 00:52:24 -04:00
Bob Clary
4d3c8132ec Sisyphus|JavaScript Tests - update public failures, bug 399397 2008-07-24 00:50:21 -04:00
Andreas Gal
d66db351a0 Add a fast path for nativeFrameOffset that walks entire groups at a time, not slots. Check against the result calculated by the FORALL macro in DEBUG builds (for sanity). 2008-07-23 16:39:17 -07:00
Andreas Gal
0c67428824 Merge. Make sure we clear out all slots from the tracker when leaving a frame. 2008-07-23 15:56:27 -07:00
Brendan Eich
d2d299a0e2 Space nit fix. 2008-07-24 00:55:41 +02:00
Andreas Gal
475f3b2370 When addressing locations above the stack water level, use ->sp as base. Shaver accidently changed this to ->spbase when merging Igor's patch, so we were writing past the water mark and the stores were killed. 2008-07-23 15:48:15 -07:00
Blake Kaplan
22db57f27e Merging backout 2008-07-23 13:20:41 -04:00
Blake Kaplan
625e1cefb6 Backed out changeset 084567d3ebe6. It actually made us not comply with ECMAScript 3. 2008-07-23 13:19:44 -04:00
Blake Kaplan
9db685722c Attempt to make XPC_XOW_ClassNeedsXOW faster. bug 444779, r=jorendorff/jst sr=jst 2008-07-23 12:55:57 -04:00
John Fitzgerald
5f2490ab93 Calculate the time zone offset correctly. bug 445879, r=mrbkap 2008-07-23 12:46:39 -04:00
shaver@mozilla.org
ee1bc42ef1 tighten up some bounds, still not quite right 2008-07-23 11:42:52 -04:00
Andreas Gal
e0f05951e4 Lazy fill the stackTracker as we lookup the nativeFrameOffset for values. Purge all entries related to the current frame when it is popped. This code could be further simplified if Tracker was a template. 2008-07-23 02:57:56 -07:00
shaver@mozilla.org
d853312135 merge from andreas 2008-07-23 01:08:23 -04:00
shaver@mozilla.org
0ae0232183 merge (still not working, probably box/unbox dumbness) 2008-07-23 01:06:18 -04:00
shaver@mozilla.org
13beafcd1a merge (now compiling, untested) 2008-07-23 00:20:29 -04:00
shaver@mozilla.org
d6b7e95f5b merge (mostly, doesn't build) 2008-07-22 23:58:43 -04:00
Andreas Gal
28d41c849c Handle leaving of frames in one central place. 2008-07-22 20:16:12 -07:00
Andreas Gal
fa30479a65 Reduce HOTLOOP threshold to 2. 2008-07-22 18:31:44 -07:00
Andreas Gal
86108222f1 Avoid calculating native frame offset by tracking the last load/store for every slot and extracting the offset from there. 2008-07-22 17:54:04 -07:00
Andreas Gal
636de55594 Avoid nativeFrameOffset calls in import(). 2008-07-22 17:24:29 -07:00
Igor Bukanov
139cdca010 bug 330765 - patch from romaxa to fix NativeCompareAndSwap implementation on ARM. r=myself 2008-07-22 16:12:04 +02:00
Andreas Gal
4e7d7ebb5d Merge. 2008-07-21 19:38:03 -07:00
Andreas Gal
988bfce570 Add a pattern to recognize safe_add and emit a simple add for it. 2008-07-21 19:37:43 -07:00
shaver@mozilla.org
c998f5492d use nargs rather than argc, since bytecode only refers to [o-nargs) args 2008-07-21 22:31:08 -04:00
shaver@mozilla.org
4e20ef2007 make time.sh more useful 2008-07-21 21:44:21 -04:00
Andreas Gal
f75ac4ed76 Reverse the insanity that used to be tamarin's arg passing in ins2. Now it makes sense. 2008-07-21 17:59:42 -07:00
Andreas Gal
edaf656e39 Avoid overflow checks on integer adds when its safe to do so. 2008-07-21 17:50:17 -07:00
Johnny Stenback
438112013e Landing fix for bug 442708. JS_GC with GC_SET_SLOT_REQUEST doesn't loop until all threads are satisfied. Patch by brendan@mozilla.org, r=bent.mozilla@gmail.com 2008-07-21 16:58:24 -07:00
Johnny Stenback
6e95111554 Landing fix for bug 444880. Make the JS component loader use the JS context stack so that pending requests are suspended while components load. Patch by bent.mozilla@gmail.com, r+sr=jst@mozilla.org 2008-07-21 16:56:45 -07:00
Andreas Gal
b149b25974 Eliminate entryFrame pointer (not safe to carry that around.) 2008-07-21 16:20:53 -07:00
Andreas Gal
cb8f2b1107 Use callDepth instead of entryFrame in the FORALL macro. 2008-07-21 16:19:38 -07:00
Bob Clary
fa9992c713 Sisyphus|JavaScript Tests - allow user to execute tests from other location than TEST_DIR, bug 446097, r=cbook 2008-07-21 18:18:15 -04:00
Brendan Eich
c1547ca25f Always select gvar ops for declared global vars, instead of only if loopy/enough-used (445901, r=shaver). 2008-07-21 15:14:14 -07:00
Andreas Gal
568e3f882c Eliminate exit filter, write the type map directly in snapshot. 2008-07-21 15:09:19 -07:00
Andreas Gal
81d604c67d Sink stack-targeting type conversion in the set() path instead of in the ExitFilter. 2008-07-21 15:01:47 -07:00
Andreas Gal
3ca6099bab Use callDepth, not entryFrame in nativeFrameSlots(). 2008-07-21 14:55:41 -07:00
Andreas Gal
7d41fd6a8e Remove excess parameters of verifyTypeStability. 2008-07-21 13:21:00 -07:00
Andreas Gal
83dcd55ff1 Track call depth in the trace recorder. This lays the groundwork to get rid of entryFrame. 2008-07-21 13:18:08 -07:00
Jason Orendorff
4a48e072f3 Bug 445624 - Delete dead code in JSObject2NativeInterface hot path (r+sr=jst) 2008-07-21 15:16:47 -05:00
shaver@mozilla.org
640220ca0f beginning of entryFrame removal 2008-07-21 15:57:02 -04:00
Andreas Gal
7466af13cc Merge. 2008-07-21 12:44:03 -07:00
Andreas Gal
e4b7f9cdbb Use ti instead of fi for TreeInfo pointers. 2008-07-21 12:43:51 -07:00
Andreas Gal
fe52907712 Rename VMFragmentInfo to TreeInfo. 2008-07-21 12:41:43 -07:00
Andreas Gal
6c9d3d7051 Merge. 2008-07-20 17:36:47 -07:00
Andreas Gal
a344d8eb92 Style cleanup and eliminate redundant f2u(i2f|u2f) chains. 2008-07-20 17:36:11 -07:00
Brendan Eich
46e183a6c2 Fix property cache fill to use the best shape (445899, r=shaver). 2008-07-20 16:27:10 -07:00
Brendan Eich
796ede974c Cite bug 445262 with a FIXME instead of omfgHack_ prefix ;-). 2008-07-20 16:21:45 -07:00
Brendan Eich
bc62129a68 Tighten up js_IsLoopEdge and include JSOP_IFNEX. 2008-07-20 16:11:52 -07:00
Brendan Eich
9de8dbd4a7 Nit patrol. 2008-07-20 16:09:08 -07:00
shaver@mozilla.org
84071cde06 merge time is fun time 2008-07-20 18:04:27 -04:00
shaver@mozilla.org
f3fe654c91 add simple timing harness 2008-07-20 18:03:07 -04:00
Andreas Gal
ba670ddc66 Simplify updating of the side exit target. 2008-07-20 14:56:04 -07:00
shaver@mozilla.org
42c8798d31 simpler loop exit check (backwards is a loop exit, forwards is not) 2008-07-20 17:54:16 -04:00
shaver@mozilla.org
b881262443 force Math to be interned, and defend against non-interned globals until upvar saves us all 2008-07-20 17:23:39 -04:00
Andreas Gal
92ad36939a Use exponential backoff when trying to extend trees. 2008-07-20 14:28:56 -07:00
Andreas Gal
e42833b0db Merge. 2008-07-20 13:29:20 -07:00
Andreas Gal
6922d0cd5f Don't emit boxed values, use the unboxed representation for constants. 2008-07-20 13:28:53 -07:00
Andreas Gal
99e9e80629 Removed meaningless assert. 2008-07-20 13:25:36 -07:00
shaver@mozilla.org
65d84971d7 don't pretend we can trace INCELEM and friends (fixes trace-test.js, ahem) 2008-07-20 16:21:43 -04:00
shaver@mozilla.org
62dccff8dd move summarization to the end, so I can see it through the debug spew 2008-07-20 16:17:58 -04:00
Igor Bukanov
af90a7ef45 bug 441686 - eliminating JSStackFrame.(nvars|vars). r=brendan 2008-07-20 22:13:17 +02:00
shaver@mozilla.org
bddc445991 improve tracing/recording diagnostics 2008-07-20 15:42:19 -04:00
Igor Bukanov
d422c4995e [Bug 446229] Fixing GCC conversion warnings within SpiderMonkey. r=brendan 2008-07-20 14:53:21 +02:00
shaver@mozilla.org
f3857ddac7 discard trace on global shape mismatch 2008-07-19 22:32:45 -07:00
Brendan Eich
2e642f1990 Breathe, vertical-spacing, breathe! 2008-07-19 15:42:31 -07:00
Igor Bukanov
9b3583218a [Bug 444846] Fixing GCC warning on x86-64 about redefined HAVE_VA_LIST_AS_ARRAY. r=crowder 2008-07-19 19:51:05 +02:00
Igor Bukanov
538622bcaa merge 2008-07-19 19:31:48 +02:00
shaver@mozilla.org
3a9c816fe0 Avoid tracking object properties, make incElem work. 2008-07-19 10:24:10 -07:00
shaver@mozilla.org
3e6f34993a fix no-tracer build 2008-07-21 06:59:38 -04:00
shaver@mozilla.org
cfafd2fe01 Implement DEFLOCALFUN for the fully-lightweight case.
Reset atoms base register on function entry and exit.
2008-07-19 06:29:56 -07:00
Brendan Eich
96bdefd1f1 Improve js_IsLoopExit (unannotated JSOP_GOTO is still ambiguous). 2008-07-19 10:52:24 -07:00
Brendan Eich
e903444286 Fix incProp to box and store (incElem still todo). 2008-07-19 10:24:28 -07:00
Andreas Gal
3fd3d3a835 Merge. hg sucks. 2008-07-19 00:40:54 -07:00
Andreas Gal
00fd64b6e5 Don't demote fmul since it overflows in math-partial. We might try to demote it and then promote back if this happens (depends how aggressively we want so speculate). Speedup 6.6 for math-partial (since its sin/cos/pow heavy.) 2008-07-19 00:27:45 -07:00
Brendan Eich
90f08bf3bf First stab at incops, plus unbox_jsval tag-masking guard fixes, plus misc. cleanup. 2008-07-19 00:15:22 -07:00
Brendan Eich
d594b18211 Property-cache JSOP_NAMEINC etc. direct slot case (445893, r=shaver). 2008-07-18 22:53:22 -07:00
L. David Baron
4de7d5bbe6 Backed out changeset 5c009a853d70 for hitting a fatal JS_Assert during xpcshell unit tests (xpcom/unit/test_bug374754.js) on the DO_NEXT_OP(JSOP_INCNAME_LENGTH) line on !JS_THREADED_INTERP platforms (Windows). 2008-07-18 21:53:07 -07:00
Andreas Gal
cac6830023 Merge. 2008-07-18 19:16:16 -07:00
Brendan Eich
a98fde76a6 Property-cache JSOP_NAMEINC etc. direct slot case (445893, r=shaver). 2008-07-18 19:16:15 -07:00
Andreas Gal
fdce9ce73c Abort trace is STOP is leaving the recording context. 2008-07-18 19:15:49 -07:00
shaver@mozilla.org
e195fca1f0 Propagate TCF_COMPILE_N_GO through to inner functions, so that we can avoid nulling their parents and then cloning expensively in DEFLOCALFUN.
Also make Process do COMPILE_N_GO.
2008-07-18 17:15:41 -07:00
Andreas Gal
2422eabd22 Make entryFrame/entryRegs relative to the tree entry since we only adjust ip/sp/rp when exiting from the tree, not in between fragments. 2008-07-18 16:21:22 -07:00
Andreas Gal
7eea6badf4 Adjust ip/sp/rp in the interpreter recovery code, not on the trace. 2008-07-18 15:35:59 -07:00
Andreas Gal
13a006aee6 Write all the debug output to stdout (we can't easily make everything go to stderr, so this way at least it all goes into the same place.) 2008-07-18 14:13:31 -07:00
Andreas Gal
9af8ba0394 Rework some of David's changes. Make sure we don't modify the tree until we are ready to attach the new fragment. Share lirbufs between tree branches. 2008-07-18 14:11:01 -07:00
David Anderson
854288fbb0 Got side exits seemingly working, added if.js to trace-test.js 2008-07-18 10:33:17 -07:00
shaver@mozilla.org
43bff554d7 Handle more operand types in ifop(). 2008-07-18 08:01:51 -07:00
shaver@mozilla.org
0f5b220b76 Better diagnostic info for trace abort. 2008-07-18 07:59:37 -07:00
shaver@mozilla.org
3048327072 lookup/find, but do not fill prop cache from recorder 2008-07-18 00:46:18 -07:00
shaver@mozilla.org
51a8a7e736 When PROPERTY_CACHE_TEST misses, fall back to doing our own lookup via js_GetPropertyHelper. 2008-07-17 23:57:56 -07:00
Andreas Gal
b1cd6900dc Merge. 2008-07-17 21:32:23 -07:00
Andreas Gal
3bcedb1095 Try to clean up the memory allocation/deallocation through the avmplus glue code. 2008-07-17 21:31:50 -07:00
Brendan Eich
20608de4bf Warning elimination. 2008-07-17 18:30:54 -07:00
Andreas Gal
b85a05ff26 Make sure we compile again if we reject a trace by decrementing hits. 2008-07-17 18:15:55 -07:00
Andreas Gal
ec2639cd39 Fix hot loop triggering. 2008-07-17 18:10:47 -07:00
shaver@mozilla.org
c3b817fc24 can't easily find real names for globals, so just number them 2008-07-17 17:33:18 -07:00
Igor Bukanov
d68ca228cc [Bug 445818] Using explicit assembly to implement compare-and-swap on x86-64 to avoid __sync_bool_compare_and_swap (GCC intrinsic) as the latter is buggy at least on ARM. r=brendan 2008-07-18 02:18:45 +02:00
Andreas Gal
e0d138cd5c Merge. 2008-07-17 17:13:41 -07:00
Andreas Gal
c2f37ab89c Disable trees for the time being. 2008-07-17 17:12:28 -07:00
Andreas Gal
93c1fd0a24 Add if.js example for trees. 2008-07-17 16:38:09 -07:00
Andreas Gal
abaf140791 Add the beginning of support for trees. 2008-07-17 16:20:13 -07:00
Bob Clary
8ce164689b JavaScript Tests - update public-failures and universe.data to include mozilla-central 1.9.1 branch, remove unsupported machine configurations, bug 399387 2008-07-18 13:59:09 -04:00
Bob Clary
a007fa4e96 Sisyphus - JavaScript Tests - add detect-universe.sh, bug 446037 2008-07-18 12:56:47 -04:00
shaver@mozilla.org
f91a0cdef3 Label globals and locals with their source-names in trace.
Show line number on abort.
2008-07-17 15:09:48 -07:00
Brendan Eich
b333ac3111 Use the property cache for JSOP_NAMEINC, etc. 2008-07-17 16:54:01 -07:00
Brendan Eich
891c98121c Fix property cache fill to use the right shape. 2008-07-17 16:51:27 -07:00
Brendan Eich
094c419af4 Merge. 2008-07-17 16:50:09 -07:00
Andreas Gal
877cd419c5 Don't allocate FpRegs if sse2 is enabled. 2008-07-17 15:00:22 -07:00
Andreas Gal
8802c2daa2 Add js_IsLoopExit that indicates whether a side exit is likely to continue the loop or not. 2008-07-17 14:58:09 -07:00
Brendan Eich
421f1ba794 Always select gvar ops for declared global vars, instead of only if loopy/enough-used. 2008-07-17 14:37:25 -07:00
Brian Crowder
0af033d4da Bug 430740 - BOM characters are stripped from javascript before execution
r=igor
2008-07-17 16:58:06 -04:00
Andreas Gal
d2e031b38d Cleanup recorder activation, use a single hot loop threshold (10). 2008-07-17 13:42:58 -07:00
Andreas Gal
e70830b8ca Merge. 2008-07-17 10:30:00 -07:00
Andreas Gal
353383c65c Added statistics and a js_DestroyJIT hook. Also use debug_only and not verbose_only as #ifdef DEBUG shortcut. 2008-07-17 10:22:40 -07:00
Ben Turner
799c423cd5 Bug 443870 - Add JSAutoSuspendRequest to match JSAutoRequest
r=brendan
2008-07-17 12:37:32 -04:00