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