Andreas Gal
28deb1f5b0
Merge.
2008-07-28 23:31:39 -07:00
Andreas Gal
0bb95b6c46
Switch from one global frame to another by walking the two sorted gslots lists.
2008-07-28 23:30:16 -07:00
Brendan Eich
9894a22d65
Fix uninitialized nbytes in synthesize_frame.
2008-07-28 22:25:13 -07:00
Andreas Gal
ed2b81df60
Compilation fix for MSVC.
2008-07-28 21:17:43 -07:00
Andreas Gal
a9e5f84f42
Cleanup and split native frame reading/writing into stack and global part.
2008-07-28 18:06:34 -07:00
Andreas Gal
52bda2ec2c
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
9c4c8495f9
not-yet-working beginnings of frame reconstruction
2008-07-28 09:05:55 -04:00
Andreas Gal
cd39ba2407
Trash the interned globals of a tree if we experience a global shape mismatch.
2008-07-27 21:44:08 -07:00
Andreas Gal
4df581e3b3
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
b798d08035
Abort trace if we inline too deeply.
2008-07-27 16:28:09 -07:00
Andreas Gal
4710877c9a
Merge.
2008-07-27 16:19:15 -07:00
Andreas Gal
6126f5fa5c
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
51b608badc
Don't use ABORT_TRACE outside the recorder.
2008-07-27 15:40:34 -07:00
shaver@mozilla.org
a4af3457f4
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
e6cc02f5cc
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
7837aae392
Merge.
2008-07-27 14:29:24 -07:00
Andreas Gal
a3eb60b77e
Add limited outerlining. Much of this will be subsumed by nested trees.
2008-07-27 14:28:56 -07:00
shaver@mozilla.org
e69c5b7239
remove rval tracking, since it's no longer necessary
2008-07-27 15:47:43 -04:00
Andreas Gal
ca563057ee
Remove guardCount. No longer needed.
2008-07-27 12:05:01 -07:00
Andreas Gal
05870cebe8
Merge.
2008-07-27 02:15:42 -07:00
Andreas Gal
8a7bb9c550
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
4d1de6a956
Add JSSF_NO_SCRIPT_RVAL script flag, and uint8 flags field for it.
2008-07-27 00:12:01 +01:00
Brendan Eich
8b62f00bae
Fix comment typo.
2008-07-27 00:11:30 +01:00
Blake Kaplan
d1c2f6d0ef
Merge backout
2008-08-04 11:13:34 -07:00
Blake Kaplan
1c6155e1bf
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
74e6fd4abf
Don't optimize variable names in with statements. bug 448595, r=brendan
2008-08-04 10:07:06 -07:00
Blake Kaplan
52a3888cfa
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
78450de1f0
Bug 444845, js hooks to control vtune, r=sayrer
2008-07-29 15:19:26 -07:00
Igor Bukanov
dcdf0df942
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
0e9a6fa3da
bug 446320 - fixing -Wformat warnings in debug printouts. r=crowder
2008-07-29 16:11:36 +02:00
Igor Bukanov
b85cc2c8a0
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
0f9d60d4c4
Backed out changeset 65836af09dac - compilation errors
2008-07-27 23:05:52 +02:00
Igor Bukanov
e04b341333
bug 446320 - fixing -Wformat warnings in debug printf code. r=crowder
2008-07-27 22:52:10 +02:00
Andreas Gal
a4fc19765e
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
02997616f4
Add a test case for trees.
2008-07-25 19:10:23 -07:00
Andreas Gal
059abfa50f
Added sunspider tests to t/ for dvander.
2008-07-25 18:43:19 -07:00
Andreas Gal
812989bb8a
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
bbb1bc89c0
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
24447ee8fb
Merge.
2008-07-25 16:54:14 -07:00
Andreas Gal
1b7930d39d
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
a8c6046d8c
Avoid JSOP_POPV in global scripts from load(), etc.
2008-07-26 01:23:12 +02:00
David Anderson
4560ed961f
Fixed entry typemap having wrong allocation size.
2008-07-25 13:30:52 -07:00
Bob Clary
ba65f510c3
JavaScript Tests - regression test for bug 438415, by Jesse Ruderman
2008-07-26 21:13:30 -07:00
Andreas Gal
d952f192ba
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
dee805421b
Factor out AttemptToGrowTree.
2008-07-25 02:00:02 -07:00
Andreas Gal
ecb79b1640
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
f3573b9940
Move trace activation code into js_ExecuteTree().
2008-07-25 01:20:40 -07:00
Andreas Gal
3999210c12
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
e838b138b8
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
f335bdf69d
Bug 447844: fix build with JS_HAS_SCRIPT_OBJECT, r=mrbkap
2008-07-24 16:07:00 -07:00
Andreas Gal
f0399ffea7
Cleanup iteration over all slots to use a single macro to avoid code duplication.
2008-07-24 14:51:14 -07:00
Brian Crowder
645304c008
merging backout
2008-07-24 14:07:05 -07:00
Brian Crowder
019e94ec12
Backed out changeset a5fc387c4622
2008-07-24 14:05:29 -07:00
Igor Bukanov
7ee86f95f8
bug 447807 - allow to override the object dir when building js shell. r=crowder
2008-07-24 22:08:18 +02:00
Brian Crowder
8d3b212c33
Fixing a typo in a comment.
2008-07-24 12:59:11 -07:00
Brian Crowder
cdc07f72ab
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
10901da2a8
Bug 446494 - Number.toLocalString() doesn't handle Infinity or exponential notation correctly, r=mrbkap
2008-07-24 12:43:40 -07:00
Andreas Gal
e7f92ecf31
Add shark support to md5.js directly, no longer around the recorder.
2008-07-24 11:08:37 -07:00
Andreas Gal
6df91a21a0
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
5ae4ef819e
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
f2afe03bb6
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
b989e7b3e7
fix return-value handling for new stack layout
2008-07-24 00:31:37 -07:00
Andreas Gal
41e0593392
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
756a07e31b
Sisyphus|JavaScript Tests - add repository information to failure tracking, bug 447738
2008-07-24 01:04:56 -04:00
Bob Clary
5e4e630789
merge commit for bug 399397
2008-07-24 00:52:24 -04:00
Bob Clary
b42b1e15b8
Sisyphus|JavaScript Tests - update public failures, bug 399397
2008-07-24 00:50:21 -04:00
Andreas Gal
117bc4d9f9
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
4cc2061091
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
2100afe584
Space nit fix.
2008-07-24 00:55:41 +02:00
Andreas Gal
df280d08d7
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
9153202245
Merging backout
2008-07-23 13:20:41 -04:00
Blake Kaplan
5ec9f1693f
Backed out changeset 084567d3ebe6. It actually made us not comply with ECMAScript 3.
2008-07-23 13:19:44 -04:00
Blake Kaplan
742d27285f
Attempt to make XPC_XOW_ClassNeedsXOW faster. bug 444779, r=jorendorff/jst sr=jst
2008-07-23 12:55:57 -04:00
John Fitzgerald
c21fd6d356
Calculate the time zone offset correctly. bug 445879, r=mrbkap
2008-07-23 12:46:39 -04:00
shaver@mozilla.org
c29aa4c3d2
tighten up some bounds, still not quite right
2008-07-23 11:42:52 -04:00
Andreas Gal
5dd9876515
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
f0a625f5bc
merge from andreas
2008-07-23 01:08:23 -04:00
shaver@mozilla.org
6f5e58e443
merge (still not working, probably box/unbox dumbness)
2008-07-23 01:06:18 -04:00
shaver@mozilla.org
a93fbcc99d
merge (now compiling, untested)
2008-07-23 00:20:29 -04:00
shaver@mozilla.org
8a97552a28
merge (mostly, doesn't build)
2008-07-22 23:58:43 -04:00
Andreas Gal
c9cac5757f
Handle leaving of frames in one central place.
2008-07-22 20:16:12 -07:00
Andreas Gal
c6828d3504
Reduce HOTLOOP threshold to 2.
2008-07-22 18:31:44 -07:00
Andreas Gal
06365155c2
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
48b195e651
Avoid nativeFrameOffset calls in import().
2008-07-22 17:24:29 -07:00
Igor Bukanov
e32ac96bff
bug 330765 - patch from romaxa to fix NativeCompareAndSwap implementation on ARM. r=myself
2008-07-22 16:12:04 +02:00
Andreas Gal
14b0a0827d
Merge.
2008-07-21 19:38:03 -07:00
Andreas Gal
9b799905ed
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
e0b2e86c09
use nargs rather than argc, since bytecode only refers to [o-nargs) args
2008-07-21 22:31:08 -04:00
shaver@mozilla.org
c0213c60b9
make time.sh more useful
2008-07-21 21:44:21 -04:00
Andreas Gal
2d2bcf0fc8
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
3b2a943332
Avoid overflow checks on integer adds when its safe to do so.
2008-07-21 17:50:17 -07:00
Johnny Stenback
499796e945
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
6b0fc3a654
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
410c0b9a98
Eliminate entryFrame pointer (not safe to carry that around.)
2008-07-21 16:20:53 -07:00
Andreas Gal
b30f4c9be6
Use callDepth instead of entryFrame in the FORALL macro.
2008-07-21 16:19:38 -07:00
Bob Clary
97a6b9fbb5
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
a6bb7cfc89
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
f1ef7f0175
Eliminate exit filter, write the type map directly in snapshot.
2008-07-21 15:09:19 -07:00
Andreas Gal
9495f9cb50
Sink stack-targeting type conversion in the set() path instead of in the ExitFilter.
2008-07-21 15:01:47 -07:00
Andreas Gal
a7cc4892f9
Use callDepth, not entryFrame in nativeFrameSlots().
2008-07-21 14:55:41 -07:00
Andreas Gal
bce8e13528
Remove excess parameters of verifyTypeStability.
2008-07-21 13:21:00 -07:00
Andreas Gal
a0cd046167
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
a721c4227c
Bug 445624 - Delete dead code in JSObject2NativeInterface hot path (r+sr=jst)
2008-07-21 15:16:47 -05:00
shaver@mozilla.org
124244af4b
beginning of entryFrame removal
2008-07-21 15:57:02 -04:00
Andreas Gal
5067fc2638
Merge.
2008-07-21 12:44:03 -07:00
Andreas Gal
3f6f0d1ea5
Use ti instead of fi for TreeInfo pointers.
2008-07-21 12:43:51 -07:00
Andreas Gal
e9b2918575
Rename VMFragmentInfo to TreeInfo.
2008-07-21 12:41:43 -07:00
Andreas Gal
2f5e227963
Merge.
2008-07-20 17:36:47 -07:00
Andreas Gal
221f99adce
Style cleanup and eliminate redundant f2u(i2f|u2f) chains.
2008-07-20 17:36:11 -07:00
Brendan Eich
c73f865645
Fix property cache fill to use the best shape (445899, r=shaver).
2008-07-20 16:27:10 -07:00
Brendan Eich
4a9828f126
Cite bug 445262 with a FIXME instead of omfgHack_ prefix ;-).
2008-07-20 16:21:45 -07:00
Brendan Eich
464b70d055
Tighten up js_IsLoopEdge and include JSOP_IFNEX.
2008-07-20 16:11:52 -07:00
Brendan Eich
c278ae56e0
Nit patrol.
2008-07-20 16:09:08 -07:00
shaver@mozilla.org
faf081c185
merge time is fun time
2008-07-20 18:04:27 -04:00
shaver@mozilla.org
49619fefae
add simple timing harness
2008-07-20 18:03:07 -04:00
Andreas Gal
e82ab0c21f
Simplify updating of the side exit target.
2008-07-20 14:56:04 -07:00
shaver@mozilla.org
368d1588bf
simpler loop exit check (backwards is a loop exit, forwards is not)
2008-07-20 17:54:16 -04:00
shaver@mozilla.org
7546f723f5
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
0b74e54db8
Use exponential backoff when trying to extend trees.
2008-07-20 14:28:56 -07:00
Andreas Gal
a0e38ffd84
Merge.
2008-07-20 13:29:20 -07:00
Andreas Gal
d4d2117f7c
Don't emit boxed values, use the unboxed representation for constants.
2008-07-20 13:28:53 -07:00
Andreas Gal
71eb1da52f
Removed meaningless assert.
2008-07-20 13:25:36 -07:00
shaver@mozilla.org
cadc5891e5
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
f91f913b49
move summarization to the end, so I can see it through the debug spew
2008-07-20 16:17:58 -04:00
Igor Bukanov
fc68712767
bug 441686 - eliminating JSStackFrame.(nvars|vars). r=brendan
2008-07-20 22:13:17 +02:00
shaver@mozilla.org
ed1d0a8953
improve tracing/recording diagnostics
2008-07-20 15:42:19 -04:00
Igor Bukanov
d3223d86a3
[Bug 446229] Fixing GCC conversion warnings within SpiderMonkey. r=brendan
2008-07-20 14:53:21 +02:00
shaver@mozilla.org
d03348f92d
discard trace on global shape mismatch
2008-07-19 22:32:45 -07:00
Brendan Eich
5b009b1b49
Breathe, vertical-spacing, breathe!
2008-07-19 15:42:31 -07:00
Igor Bukanov
6e106c4272
[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
c3acf2cc17
merge
2008-07-19 19:31:48 +02:00
shaver@mozilla.org
ef2e8305dc
Avoid tracking object properties, make incElem work.
2008-07-19 10:24:10 -07:00
shaver@mozilla.org
991ee56658
fix no-tracer build
2008-07-21 06:59:38 -04:00
shaver@mozilla.org
f34cd71b78
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
293e6bd4c4
Improve js_IsLoopExit (unannotated JSOP_GOTO is still ambiguous).
2008-07-19 10:52:24 -07:00
Brendan Eich
a26be1bd4b
Fix incProp to box and store (incElem still todo).
2008-07-19 10:24:28 -07:00
Andreas Gal
f2ad868fc0
Merge. hg sucks.
2008-07-19 00:40:54 -07:00
Andreas Gal
457c855d15
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
d1b171e5e2
First stab at incops, plus unbox_jsval tag-masking guard fixes, plus misc. cleanup.
2008-07-19 00:15:22 -07:00
Brendan Eich
032f06cdc0
Property-cache JSOP_NAMEINC etc. direct slot case (445893, r=shaver).
2008-07-18 22:53:22 -07:00
L. David Baron
ff3cb68441
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
d6a9994067
Merge.
2008-07-18 19:16:16 -07:00
Brendan Eich
3ec5069d69
Property-cache JSOP_NAMEINC etc. direct slot case (445893, r=shaver).
2008-07-18 19:16:15 -07:00
Andreas Gal
5495ccf586
Abort trace is STOP is leaving the recording context.
2008-07-18 19:15:49 -07:00
shaver@mozilla.org
beb2ed6657
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
47ae25da20
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
a8b127d5af
Adjust ip/sp/rp in the interpreter recovery code, not on the trace.
2008-07-18 15:35:59 -07:00
Andreas Gal
1c9c67b6a1
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
89b50ed124
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
4770d4b3e0
Got side exits seemingly working, added if.js to trace-test.js
2008-07-18 10:33:17 -07:00
shaver@mozilla.org
61d58bad87
Handle more operand types in ifop().
2008-07-18 08:01:51 -07:00
shaver@mozilla.org
983e9cdb83
Better diagnostic info for trace abort.
2008-07-18 07:59:37 -07:00
shaver@mozilla.org
3eaeae50b5
lookup/find, but do not fill prop cache from recorder
2008-07-18 00:46:18 -07:00
shaver@mozilla.org
7078a99d21
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
a947ae3ef3
Merge.
2008-07-17 21:32:23 -07:00
Andreas Gal
f309cf6b64
Try to clean up the memory allocation/deallocation through the avmplus glue code.
2008-07-17 21:31:50 -07:00
Brendan Eich
84c0998916
Warning elimination.
2008-07-17 18:30:54 -07:00
Andreas Gal
f94180fbe2
Make sure we compile again if we reject a trace by decrementing hits.
2008-07-17 18:15:55 -07:00
Andreas Gal
f58160134a
Fix hot loop triggering.
2008-07-17 18:10:47 -07:00
shaver@mozilla.org
859ec6fbb6
can't easily find real names for globals, so just number them
2008-07-17 17:33:18 -07:00
Igor Bukanov
c645a6135d
[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
dded69f2a3
Merge.
2008-07-17 17:13:41 -07:00
Andreas Gal
19ed222624
Disable trees for the time being.
2008-07-17 17:12:28 -07:00
Andreas Gal
43fbfbfe1e
Add if.js example for trees.
2008-07-17 16:38:09 -07:00
Andreas Gal
dbf2dc54bd
Add the beginning of support for trees.
2008-07-17 16:20:13 -07:00
Bob Clary
e818dc5938
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
831500ce51
Sisyphus - JavaScript Tests - add detect-universe.sh, bug 446037
2008-07-18 12:56:47 -04:00
shaver@mozilla.org
3db81baa04
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
08930f369e
Use the property cache for JSOP_NAMEINC, etc.
2008-07-17 16:54:01 -07:00
Brendan Eich
04a56fbab2
Fix property cache fill to use the right shape.
2008-07-17 16:51:27 -07:00
Brendan Eich
0400c0250e
Merge.
2008-07-17 16:50:09 -07:00
Andreas Gal
591262852c
Don't allocate FpRegs if sse2 is enabled.
2008-07-17 15:00:22 -07:00
Andreas Gal
f91ca871ac
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
78677269db
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
6b267118d5
Bug 430740 - BOM characters are stripped from javascript before execution
...
r=igor
2008-07-17 16:58:06 -04:00
Andreas Gal
3df09fb85c
Cleanup recorder activation, use a single hot loop threshold (10).
2008-07-17 13:42:58 -07:00
Andreas Gal
d12de2bcc6
Merge.
2008-07-17 10:30:00 -07:00
Andreas Gal
954c5830e1
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
b9aab16257
Bug 443870 - Add JSAutoSuspendRequest to match JSAutoRequest
...
r=brendan
2008-07-17 12:37:32 -04:00
shaver@mozilla.org
78a73004ca
remove pointless untracedCall test
2008-07-17 08:43:55 -07:00
Igor Bukanov
43807b8a54
[Bug 444608] optimizing E4X constructor calls. r=brendan
2008-07-17 16:19:30 +02:00
Jason Orendorff
832cb53b87
Bug 423867 - Migrate js/src/README.html to developer.mozilla.org (r=brendan)
2008-07-17 07:24:33 -05:00
Andreas Gal
bfb3e457f1
Fix signature of insCall in the FuncFilter and remove f2i(i2f) elimination since we shouldn't really ever hit it.
2008-07-17 03:24:17 -07:00
Andreas Gal
d158a8b778
Merge.
2008-07-17 02:03:56 -07:00
Andreas Gal
e12047397c
Move up addName to make sure it gets inline in non-debug mode.
2008-07-17 02:02:48 -07:00
shaver
87eacb1139
Add setprop and tests for setprop and cleanup labling code for debug mode (m=gal).
2008-07-17 02:00:23 -07:00
shaver@mozilla.org
d55f1d7153
merge, woo
2008-07-17 01:59:58 -07:00
shaver@mozilla.org
9929228e46
summarize test results
2008-07-17 01:58:34 -07:00
Igor Bukanov
708422ea13
[Bug 433337] jsinterp.cpp source no longer split between 2 compilation units when compiling on Windows. r=brendan
2008-07-17 10:57:34 +02:00
Andreas Gal
9d6fa41738
Cleanup trace abort handling.
2008-07-17 01:29:41 -07:00
Igor Bukanov
da35201aed
[Bug 440184] js_(Lock|Unlock) are defined as external non-inline functions to prevent linkage errors with js shell. r=brendan
2008-07-17 10:22:45 +02:00
Andreas Gal
3fa6978605
Merge.
2008-07-17 00:48:30 -07:00
Andreas Gal
3cd2b84ec4
Fixed ASSERT JS_DOUBLE != JS_VOID issue. If the root fragment fails to compile, trash the type-map and re-capture it when we try to re-compile.
2008-07-17 00:48:10 -07:00
shaver@mozilla.org
acde4fceb0
JSOP_LENGTH
2008-07-16 23:53:14 -07:00
Andreas Gal
6496a9a34f
Merge.
2008-07-16 23:48:42 -07:00
Andreas Gal
6cfd498b7c
Increase code cache size.
2008-07-16 23:47:57 -07:00
shaver@mozilla.org
5c32a234df
4.2, dammit
2008-07-16 23:44:25 -07:00
Andreas Gal
ad6b349616
Merge.
2008-07-16 23:39:12 -07:00
Andreas Gal
e2a0438e22
Fix f2i(i2f) filter (broken since the last TT sync, argument order changed from right to left to left to right).
2008-07-16 23:38:39 -07:00
Brendan Eich
13d6469f9b
Prefer getarg;length, etc. to getargprop.
2008-07-16 23:33:04 -07:00
shaver@mozilla.org
9182a834c4
copy capacity when becoming another list
2008-07-16 23:11:17 -07:00
Andreas Gal
83ac88d4c7
Don't clear out arguments, clear out variables at method entry.
2008-07-16 23:04:50 -07:00
Andreas Gal
b243a8350a
Better naming of the after_JSOP_CALL event (EnterFrame).
2008-07-16 23:00:59 -07:00
Andreas Gal
2442099090
Notify the recorder when a new frame was created by JSOP_CALL.
2008-07-16 22:58:06 -07:00
Andreas Gal
2379d6dcde
Initialize arguments to void and write JSVAL_HOLE's value onto the native stack, not its boxed representation.
2008-07-16 22:25:56 -07:00
Andreas Gal
2bb0691553
Fixed call tests.
2008-07-16 22:08:59 -07:00
Andreas Gal
df5005a322
Hand in typemap the recorder is supposed to use (preparation for side exit compilation and trees).
2008-07-16 21:49:42 -07:00
Andreas Gal
def4afc614
Move the allocation of the LIR buffer and the FragmentInfo data structure creation (which includes typemap and interned global calculation) into loopedge.
2008-07-16 21:41:03 -07:00
Andreas Gal
782f2b87ec
Fix typo in test cases.
2008-07-16 19:10:07 -07:00
Andreas Gal
af95344998
Make JSOP_CALLNAME tell us why it doesn't like to trace.
2008-07-16 19:00:14 -07:00
Andreas Gal
ef439210ed
Add md5.js so we can play with it. We should sweep these test cases into a subdir or just delete them once they trace.
2008-07-16 18:10:19 -07:00
Andreas Gal
25c6cd5ff1
Add testcase for chains for global calls.
2008-07-16 18:08:58 -07:00
Andreas Gal
74f767e62b
Fix generation of VOID immediates and initialize rval after the new frame was setup by CALL.
2008-07-16 17:44:44 -07:00
Andreas Gal
db7e41ed40
Add generic recorder hooks that are called before and after all opcodes as we trace. We might want to instead just move to pre_OP and post_OP.
2008-07-16 17:29:08 -07:00
Andreas Gal
dd7be4a81c
Add test case for CALLPROP.
2008-07-16 15:53:04 -07:00
Andreas Gal
c041bad939
Don't intern global function objects onto the native frame since we rarely ever need them anyway (we call them via the property cache).
2008-07-16 15:48:51 -07:00
Andreas Gal
7f119dc35a
Enable CALLNAME and add test case for it so we can call global functions.
2008-07-16 15:40:35 -07:00
Andreas Gal
fe50e4724a
Add test cases for call.
2008-07-16 15:26:51 -07:00
Andreas Gal
c7714a3ad5
Make sure this/argv[-1] is set fpr CALLVAR and CALLARG.
2008-07-16 15:13:27 -07:00
Andreas Gal
04ea9e0e09
Enable inlining for calls. Deep bailouts (from within side exits) are generated but are not allowed to be ever taken (for now).
2008-07-16 15:01:55 -07:00
Andreas Gal
43b7ba1be4
Don't use a builtin for this. For functions its interned in the native frame. For global this we read from fp->thisp. Restore jsinterp.cpp and jsinterp.h (no longer need COMPUTE_THIS exposed).
2008-07-16 14:36:50 -07:00
David Anderson
5dca2ad552
Synced nanojit with TT tip.
2008-07-16 14:21:31 -07:00
Blake Kaplan
dccac8e071
Test that the object has the right class, even when called from native code. bug 444233, r=shaver
2008-07-16 19:29:06 +02:00
shaver@mozilla.org
ef9a5dc216
fix GETXPROP; thanks to brendan for playing chewbacca
2008-07-16 13:10:17 -04:00
Igor Bukanov
43c915fb81
[Bug 444076] implementing compare-and-swap for 64-bit Linux. r=brendan
2008-07-16 17:58:37 +02:00
Blake Kaplan
b0d13d837c
Tab removal. No bug, NPOTB.
2008-07-16 12:06:26 +02:00
shaver@mozilla.org
f8c80ec490
CALLARG, CALLVAR
2008-07-15 23:37:57 -04:00
shaver@mozilla.org
4937938676
fix scalpel left in nativeFrameSlots from aborted thisp addition to frame
2008-07-15 23:20:53 -04:00
shaver@mozilla.org
21a3ec3485
implement JSOP_MOD
2008-07-15 23:19:29 -04:00
shaver@mozilla.org
3a4c348313
Trace JSOP_THIS and JSOP_THISPROP.
...
Rename getprop to get_prop, just because.
Extract COMPUTE_THIS to jsinterp.h as JS_COMPUTE_THIS for reuse in tracer.
2008-07-15 21:37:00 -04:00
Andreas Gal
21490a6e41
Fix uncomplete range check for slot numbers of interned globals.
2008-07-15 17:10:52 -07:00
Andreas Gal
e4c2afffe8
Added math-partial-sums.js for danderson.
2008-07-15 17:07:24 -07:00
Andreas Gal
47d2c66cc7
Remove dead code.
2008-07-15 16:25:19 -07:00
Andreas Gal
d9110d8393
Aliasing cleanup for LIR.h. Patch submitted for upstream review.
2008-07-15 16:17:34 -07:00
Andreas Gal
cd739bdb35
Strict aliasing cleanup.
2008-07-15 16:14:00 -07:00
Andreas Gal
3aeb53f580
Add a few consts to char* pointers to pacify gcc 4.2.
2008-07-15 16:04:08 -07:00
Andreas Gal
7c24d0f34d
Compilation fixes for gcc 4.2. Ripp out write-barrier code in our avmplus glue layer.
2008-07-15 15:58:43 -07:00
Andreas Gal
d69aca5be6
Merge.
2008-07-15 15:54:07 -07:00
Andreas Gal
d834427e36
Switch tracemonkey over to gcc-4.2 on macosx. We need a compiler that was released in this millenium so we can use SSE2-based calling conventions.
2008-07-15 15:53:38 -07:00
shaver@mozilla.org
3693365174
rename getpropfromval, it burns mine eyes
2008-07-15 18:29:42 -04:00
Andreas Gal
1b783425aa
Assign blame where blame is due.
2008-07-15 15:05:16 -07:00
Andreas Gal
cbf4813605
Merge.
2008-07-15 13:14:05 -07:00
Andreas Gal
42d91c123d
Add missing namespace use (pending upstream for review.)
2008-07-15 13:12:14 -07:00
Andreas Gal
a81b83090e
Sync with TT.
2008-07-15 13:06:05 -07:00
shaver@mozilla.org
919139d11b
initialize dslots_ins
2008-07-15 13:40:11 -04:00
Brendan Eich
3ccdb62685
Propagate error exceptions from TraceRecorder ctor; fiddle/trim space.
2008-07-15 10:26:15 -07:00
shaver@mozilla.org
7d7ece76a8
GETVARPROP, GETARGPROP, GETXPROP
2008-07-15 13:17:51 -04:00
shaver@mozilla.org
409bb7f29d
more ABORT_TRACE instrumentation (some should be asserts?)
2008-07-15 09:07:54 -04:00
Andreas Gal
5848fd6694
Generate a list of interned global slots (gslots) when we process the tree header. This list is then used whenever we iterate over the native frame. This is faster and safer than looking up properties in the global object every time.
2008-07-15 01:53:39 -07:00
Andreas Gal
84608819b9
Remove state exposing accessor functions from recorder and instead hand in that state via the constructor into ExitFilter.
2008-07-15 01:27:14 -07:00
Andreas Gal
1693476391
Guard in FragmentInfo on the shape of the global object. Don't check for the shape of the global object on the trace.
2008-07-15 01:08:13 -07:00
Andreas Gal
bac6ed12f4
Store list of interned global slots in struct FragmentInfo
2008-07-15 01:03:49 -07:00
Andreas Gal
9f761173f0
Added a callstack that will track the pc of the call that caused a function call to be inlined. This is necessary to recover from deep side exits inside inline functions. The callstack is subject to store elimination, so unnecessary stores to the stack will go dead automatically during compilation (i.e. if we inline a function that doesn't have side exits.)
2008-07-14 19:12:50 -07:00
Andreas Gal
df84a21add
Fix warnings.
2008-07-14 17:52:38 -07:00
graydon@mozilla.com
565610efc6
bug 445243, fix standalone js shell build on windows, r=crowder
2008-07-14 17:12:51 -07:00
Andreas Gal
e59427d0f7
Use JS_GetGlobalForObject to get the global object. Walking back the call chain is not equivalent and not safe.
2008-07-14 16:40:38 -07:00
shaver@mozilla.org
0180d69fd8
fix our aliasing idiocy by extending jsdpun, add Math.sqrt, add strict-aliasing to our Makefile.ref flags
2008-07-14 18:22:05 -04:00
timeless@mozdev.org
f0f55412c4
dis and dissrc throw not-exceptions when passed invalid arguments. bug 422592, r=shaver
2008-07-14 15:24:47 +02:00
Brendan Eich
815146e0e4
Non-null prop from js_LookupProperty means found, so must unlock obj2 (now pobj) in all such cases.
2008-07-14 00:13:31 -07:00
Andreas Gal
4a598274f5
Clean up shaver's cleanup.
2008-07-13 22:02:42 -07:00
Andreas Gal
28e3ed165f
Fixed printing of integer incoming values in DEBUG mode.
2008-07-13 21:53:35 -07:00
shaver@mozilla.org
0f64113822
merge, and fix locking and logic for FORALL_SLOTS
2008-07-14 00:51:43 -04:00
shaver@mozilla.org
4779e69591
make JSOP_CALL builtin specialization data-driven
2008-07-14 00:28:31 -04:00
Andreas Gal
8750e39409
Skip properties that were not found by LookupProperty.
2008-07-13 21:17:56 -07:00
Andreas Gal
191f3bdfbc
Merge--again.
2008-07-13 21:15:34 -07:00
Andreas Gal
ede1c4f884
Merge.
2008-07-13 21:15:15 -07:00
Andreas Gal
30c7f0493e
Reserve space for every global property that the current script has an atom for instead of trying to rely on ngvars.
2008-07-13 21:14:34 -07:00
shaver@mozilla.org
37b88f5442
merge
2008-07-13 22:33:53 -04:00
shaver@mozilla.org
5b3a9f8acc
expand int-equality tests
2008-07-13 22:33:08 -04:00
Andreas Gal
aa97051e39
Backed out changeset 2af185cb0fb7. We will map in global variabls different so we don't need the higher ngvars count to find globals in the native frame.
2008-07-13 17:14:08 -07:00
Brendan Eich
044d6f9c93
Merge.
2008-07-12 23:44:23 -07:00
shaver@mozilla.org
46b4c7def2
fix the secondary map-native guard
2008-07-13 00:09:24 -04:00
Mike Hommey
35ed02d3ae
Bug 398810 - "Remove MOZILLA_1_8_BRANCH ifdefs from core on trunk" [r=sicking r=brendan r=bsmedberg]
2008-07-12 17:26:52 -05:00
Brendan Eich
ba3c776fc2
js_ for library-extern names like math_sin.
2008-07-12 12:35:36 -07:00
shaver@mozilla.org
1764f72ffa
initialize traceMonitor in threadsafe builds
2008-07-12 09:57:23 -04:00
shaver@mozilla.org
6b30961e58
Guard against subzero array indices
2008-07-12 09:04:58 -04:00
gyu-young kim
9620212e54
Bug 426585 - "Additional cache XPCPerThreadData for mainthread" [r=dbradley sr=brendan]
2008-07-12 05:19:56 -05:00
Mike Hommey
0cb69380fc
Bug 434492 - "xpcshell doesn't properly report error messages" [p=mh+mozilla@glandium.org (Mike Hommey) r=brendan]
2008-07-12 03:43:09 -05:00
Andreas Gal
3ccfc13098
Demote fneg to neg if input is known to be an integer (untested).
2008-07-12 00:34:10 -07:00
Andreas Gal
223f4f23f7
Merge.
2008-07-12 00:28:28 -07:00
Andreas Gal
b5e654f120
5 hours of debugging, and 9 keystrokes to fix it. That was one expensive bug. shaver's reduced fannkuch example works now. I think independently of this one we don't check properly for index underflow in dense arrays. Shaver is going to have to take a look at that (this fix makes fannkuch indexes not become negative, but doesn't explain why we crash so hard if they do become negative).
2008-07-12 00:27:21 -07:00
shaver@mozilla.org
b7dac1100d
add JSOP_NEG and tests
2008-07-12 00:20:48 -04:00
shaver@mozilla.org
fd5ac5b844
add Math.cos and Math.pow to the specialized-call party, and add tests
2008-07-12 00:03:33 -04:00
shaver@mozilla.org
d180a6755d
I will remember that stacked values are not boxed.
...
I will remember that stacked values are not boxed.
I will remember that stacked values are not boxed.
I will remember that stacked values are not boxed.
2008-07-11 23:04:29 -04:00
shaver@mozilla.org
9c69964575
Specialized tracing of Math.sin, as a proof of concept. Doesn't quite work due to regalloc mismatch, but close!
2008-07-11 22:59:09 -04:00
shaver@mozilla.org
8ffe777b5a
Incomplete stab at CALLPROP, added ABORT_TRACE for better diagnostics, make math_sin non-static in preparation for specializing call.
2008-07-11 20:59:10 -04:00
shaver@mozilla.org
873b045cb6
add reduced fannkuch version
2008-07-11 17:47:51 -04:00
Johnny Stenback
06103555df
Landing fix for bug 442066. Make XPCWrappedJS destruction threadsafe. Patch by bruno@flock.com and manish@flock.com, r+sr=jst@
2008-07-11 14:44:59 -07:00
Andreas Gal
3e39ec9d3b
Print meaningful filename/line-number info for trace entry/exit.
2008-07-11 13:57:16 -07:00
Andreas Gal
8c6dbda691
Report the source location when recording a trace.
2008-07-11 13:45:38 -07:00
Andreas Gal
b222836a73
Don't demote u2f conversions and sink the type cast into the side exit type map, because this loses the sign bit for unsigned values. We could fix this by adding an explicit unsigned type to the map, but for now I think we should stick to int/double only since there is the risk of fanning out trees. Crypto doesn't seem to use ush all that much so we should be ok performance-wise.
2008-07-11 13:18:29 -07:00
shaver@mozilla.org
5b91021cd9
Windows cares a lot more about where FASTCALL is; such a sensitive platform
2008-07-11 11:40:07 -04:00
shaver@mozilla.org
9122a6712f
begone, cat nspr/Version error noise
2008-07-11 11:20:44 -04:00
shaver@mozilla.org
492f8af02e
set some more config bits for Windows, mostly blindly
2008-07-11 11:02:14 -04:00
shaver@mozilla.org
179d15ca7b
turn on all the shift tests, and find a bug with it!
2008-07-11 10:50:57 -04:00
Andreas Gal
25951074bc
Brendan fixed global variable access in non-top level code so re-enable that in trace-test.js. We pass all of shaver's trace torture tests.
2008-07-11 00:53:06 -07:00
Andreas Gal
cd0b213cec
Poking around in the arm code, trying to make it not die miserabily with BUILD_OPT=1.
2008-07-11 00:46:44 -07:00
Andreas Gal
3f31810cee
Still trying to get the ARM register updating right.
2008-07-11 00:31:48 -07:00
Andreas Gal
5d93de0225
Trying to make arm work. Flying blind here.
2008-07-10 22:35:06 -07:00
Andreas Gal
bde4b2e588
Adjust sp/ip for ARM. Very useful when trying to run on ARM.
2008-07-10 22:29:06 -07:00
shaver@mozilla.org
6bb689e6c3
some ARM stuff
2008-07-11 01:27:06 -04:00
Andreas Gal
fe9354b377
Merge (no, really, can someone teach Mercurial to not do this?).
2008-07-10 22:12:04 -07:00
Andreas Gal
41ded9b128
Output the value if we can't enter a trace because of a type mismatch.
2008-07-10 22:10:02 -07:00
Brendan Eich
a17263a036
1. Fix !JS_THREADED_INTERP bugs in BRANCH and recording switch case generation.
...
2. Rename TraceRecorder op methods to record_JSOP_xxx to avoid shadowing JSOP_*
enumerators used inside jsopcode.h macros -- death to ::JSOP_*!
3. Added atoms TraceRecorder member for giant literal pool scripts.
4. Condition assert in TraceRecorder::test_property_cache_direct_slot to avoid
false positive when executing function code accessing a global.
2008-07-10 21:55:09 -07:00
shaver@mozilla.org
3cd4d74f76
here, have a _working_ Thumb back-end
2008-07-11 00:45:54 -04:00
shaver@mozilla.org
6f69036887
here, have a Thumb back-end
2008-07-11 00:40:26 -04:00
Andreas Gal
cc38ec5e21
Don't crash when expecting an int32 as double box in unbox but getting something else (and better debug output).
2008-07-10 21:23:32 -07:00
shaver@mozilla.org
5089017f47
only build JIT builtins if ENABLE_JIT, and lose antique *inlines.h
2008-07-11 00:10:27 -04:00
Andreas Gal
4cba5853d4
Merge.
2008-07-10 20:35:40 -07:00
Andreas Gal
4e34cfc559
IFEQ and IFNE are identical for us. We just expect the same boolean on the stack and side exit if not.
2008-07-10 20:35:19 -07:00
shaver@mozilla.org
b39149fe63
Build the JIT by default if we're on x86, and control enabling it for content
...
via javascript.options.content_jit.
2008-07-10 23:05:27 -04:00
shaver@mozilla.org
6d68b678b3
don't include jstracer.h (and thus nanojit, etc.) if not building with JS_TRACER
2008-07-10 22:19:15 -04:00
shaver@mozilla.org
66b22a063c
use a type that windows knows about for offset computation
2008-07-10 22:17:41 -04:00
shaver@mozilla.org
795a6bbef1
try to get alloca on Windows; remind me to strip these flailing commits before we merge
2008-07-10 22:10:48 -04:00
shaver@mozilla.org
03ad7cdff2
my turn to merge; had to happen eventually
2008-07-10 21:44:41 -04:00
shaver@mozilla.org
d08e7d5aa1
disable tracer for platforms not supported by nanojit
2008-07-10 21:43:05 -04:00
Andreas Gal
ca4e6419ee
shaver's favorite operating system of choice doesn't like templates, so de-template tracker since we use it with LInsp only anyway.
2008-07-10 18:42:04 -07:00
shaver@mozilla.org
db247b7d6c
some better OS_CFLAGS for Linux
2008-07-10 21:38:47 -04:00
shaver@mozilla.org
a82e389447
support non-JS_TRACER builds
2008-07-10 21:38:26 -04:00
shaver@mozilla.org
0695011b26
try to make alloca work for Windows
2008-07-10 21:37:49 -04:00
David Anderson
1bfa0a2b0e
Actually fixed ifeq/ifne fusion now.
2008-07-10 17:54:19 -07:00
Andreas Gal
c99a7ff3bd
Merge.
2008-07-10 17:42:25 -07:00
shaver@mozilla.org
f9a01d9be5
fix opcode math with the mighty hammer of casting
2008-07-10 20:41:55 -04:00
Andreas Gal
a72b1ecc06
Merge.
2008-07-10 17:41:45 -07:00
Andreas Gal
4a0541e2ae
nanojit doesn't support loads with non-constant offsets so don't do that
2008-07-10 17:41:24 -07:00
shaver@mozilla.org
634b195855
the rest of the stdint defs, no idea why I didn't do them before
2008-07-10 20:25:57 -04:00
Andreas Gal
16eda7e83e
Merge.
2008-07-10 17:05:13 -07:00
Andreas Gal
e6cb4750e2
Steal the reference to cx from the BoxDouble call instead of observing the load.
2008-07-10 17:03:59 -07:00
Andreas Gal
4ad95932a2
Fixed the setelem a[i] bug.
2008-07-10 16:55:37 -07:00
David Anderson
e5ec5ac4b5
Nanojit needs a LINUX define (which may be my fault), fixing it here for now
2008-07-10 16:26:28 -07:00
shaver@mozilla.org
34f7e86edf
use VirtualAlloc for Windows, since it lacks valloc
2008-07-10 18:39:51 -04:00
shaver@mozilla.org
07c51d9867
interp needs tracer.h
2008-07-10 17:31:38 -04:00
shaver@mozilla.org
6a5deaf550
Decouple jscntxt.h from jstracer.h so that xpconnect doesn't try to include all of
...
nanojit.
2008-07-10 17:29:16 -04:00
shaver@mozilla.org
0b285b6a7e
FASTCALL for Windows
2008-07-10 17:16:31 -04:00
shaver@mozilla.org
e2ed248ddf
int32_t, now available on Windows
2008-07-10 16:58:08 -04:00
shaver@mozilla.org
60c7caba17
Unlike software developers, g++ doesn't like variable-sized arrays. Have some alloca!
2008-07-10 16:48:42 -04:00
shaver@mozilla.org
7b7430ef26
merge
2008-07-10 16:47:12 -04:00
Bob Clary
25873babe3
Sisyphus - documentation, bug 397908
2008-07-10 16:37:21 -04:00
David Anderson
8282c44200
Fixed guarding of eq+ifeq/ifne fusions and enabled tracing JSOP_GOTO (no-op)
2008-07-10 13:35:17 -07:00
Andreas Gal
1b8705e646
Root all strings and objects first when unboxing. Then box values that might trigger the GC (doubles/ints). This probably needs some performance tuning over time.
2008-07-10 13:24:49 -07:00
Bob Clary
8239cc8850
JavaScript Tests - update public failures, universe data, bug 399387
2008-07-10 16:10:05 -04:00
Andreas Gal
222a958b75
Merge.
2008-07-10 09:24:59 -07:00
Andreas Gal
ed0cfa6ce8
Don't concede an inch to ISO C++. Substract the size of array[1] from the overall struct size when allocating.
2008-07-10 09:22:01 -07:00
shaver@mozilla.org
36027eae9d
update trace-test.js, now crashes calling lsh() the second time
2008-07-10 10:45:11 -04:00
shaver@mozilla.org
929e6f9e95
MSVC knows about intptr_t, and doesn't like our remix
2008-07-10 10:21:29 -04:00
shaver@mozilla.org
45b694dc35
I'm going to just keep bludgeoning these typedefs until they stick
2008-07-10 10:18:22 -04:00
shaver@mozilla.org
853e2a057b
try to find malloc on Linux; this buildbot thing rules the school
2008-07-10 10:03:45 -04:00
shaver@mozilla.org
2e3334d255
use typedefs instead of stdint.h, because someone forgot to tell MSVC it was 2008
2008-07-10 09:52:34 -04:00
shaver@mozilla.org
2a0f9b6245
can't have zero-sized arrays in ISO C++, says gcc
2008-07-10 09:29:42 -04:00
shaver@mozilla.org
5e83315c4d
use stdint.h instead of typedefs to help Linux find intptr_t
2008-07-10 09:20:36 -04:00
shaver@mozilla.org
81163c8350
build nanojit
2008-07-10 09:12:53 -04:00
shaver@mozilla.org
47dc7b72e6
Make nanojit arch selection explicit in config/*, though for now only OS X and Linux
...
on x86.
2008-07-10 09:12:17 -04:00
shaver@mozilla.org
159a5fb1fd
rename builtins.tbl *back*, because nanojit expects that name, and whatever
...
--HG--
rename : js/src/jsbuiltins.tbl => js/src/builtins.tbl
2008-07-10 08:53:03 -04:00
shaver@mozilla.org
864f3dc9db
rename builtins.tbl to our usual form
...
--HG--
rename : js/src/builtins.tbl => js/src/jsbuiltins.tbl
2008-07-10 08:51:44 -04:00
shaver@mozilla.org
bf94c0c6b9
fix include ordering for THREADSAFE build
2008-07-10 08:40:43 -04:00
shaver@mozilla.org
0b4c4a7782
fix compilation, but possibly not logic, of shared-object defense
2008-07-10 08:05:25 -04:00
shaver@mozilla.org
8ae4979fc0
revert ancient shuffling of js_CompareAndSwap decl to fix THREADSAFE build
2008-07-10 07:57:18 -04:00
shaver@mozilla.org
24cf72a522
some build fixes to help in-browser and other-arch build
2008-07-10 07:56:36 -04:00
Andreas Gal
bdeea1b3cb
Prime the page cache during VM startup. This makes us eat the page cache allocation overhead there instead of during the first use. This is just a hotfix. We still need a rewrite of the page cache.
2008-07-09 23:47:17 -07:00
Andreas Gal
81a8b26765
Merge.
2008-07-09 23:42:46 -07:00
Andreas Gal
1dbb6a7d41
Backed out changeset 234230320093 (reducing code cache size due to startup issue.)
2008-07-09 23:42:27 -07:00
Andreas Gal
ca130e3cb2
Merge.
2008-07-09 19:12:09 -07:00
Brendan Eich
12d0fb7104
Always allocate gvars for top-level scripts if any global names are used -- may hurt some microbenchmarks but we can fix it via bug 441686.
2008-07-09 19:10:01 -07:00
Andreas Gal
0a93e4dd69
Assert if no gvar is allocated for an undeclared global.
2008-07-09 18:51:08 -07:00
Andreas Gal
40a15bccc7
Merge.
2008-07-09 18:25:36 -07:00
Andreas Gal
ef76c5d316
varobj is not passed through the chain. Make sure to use global->varobj for gvar access.
2008-07-09 18:25:10 -07:00
shaver@mozilla.org
efcff4a09f
More tests, working on crashes.
2008-07-09 21:09:11 -04:00
Brendan Eich
31b11b4e90
Merge.
2008-07-09 17:58:19 -07:00
Andreas Gal
76abd00d44
Reduce code cache size until we fix the page allocation code to not touch all the pages at startup (nanojit issues, assigned to gal).
2008-07-09 17:37:41 -07:00
Andreas Gal
4617cc628c
Fixed name/setname code to just track the value move instead of touching memory since we have global variables in our native frame now. We have to fix the page cache issues before we can benchmark this.
2008-07-09 17:15:27 -07:00
Brendan Eich
8d88185086
Condition fp->arg*/*vars usage on fp->callee, not fp->down.
2008-07-09 17:10:42 -07:00
Andreas Gal
9a72a1d41d
Add verbose native stack frame printing.
2008-07-09 17:09:22 -07:00
Brendan Eich
ab59004c84
Memoize implicit gvars in the interpreter, on assignment (JSOP_BINDNAME/JSOP_SETNAME); fix recoder l/r operand order bug.
2008-07-09 16:37:31 -07:00
Brendan Eich
20a5a9ef31
1. Fix inc to address the right result stack slot; 2. Require via assertions that the interpreter memoize implicit gvars (patch to do that next; bitwise-and will assert until that lands).
2008-07-09 15:15:32 -07:00
Blake Kaplan
bac9a8c577
Add missing #undef, clean up trailing whitespace.
2008-07-09 23:40:06 +02:00
Brendan Eich
2210ed4a21
Remove unnecessary JSOp cast.
2008-07-09 13:46:46 -07:00
Brendan Eich
d8cf234b33
Memoize global name gets and sets as if they refer to a declared gvar.
2008-07-09 11:42:31 -07:00
Andreas Gal
626026b70a
Merge.
2008-07-09 10:06:24 -07:00
Andreas Gal
202ec610da
Removed assert that compares nativeFrameSlots to nativeFrameOffset since nativeFrameOffset is undefined in case sp is at sp+depth, so the assert sometimes randomly bites. Also fixed typo in cmp(). trace-test.js compiles now.
2008-07-09 10:05:59 -07:00
Brendan Eich
cffa8d2279
Tweak a few interval tests, eliminate casts, space patrol.
2008-07-09 09:59:51 -07:00
shaver@mozilla.org
893dd15071
Update with some additional test coverage (crashes in setgvar test)
2008-07-09 08:11:03 -04:00
Andreas Gal
f4e8e89333
Sync with mozilla-central.
2008-07-09 01:18:56 -07:00
Andreas Gal
05554d05b3
Stricter typing of the tracker code path which now only accepts jsval as suggested by Brendan.
2008-07-09 00:29:23 -07:00
Andreas Gal
19a2dcb6f5
Fixed bug in nativeFrameSlots and use an assert to compare the result with nativeFrameOffset (which is slower, but more precise).
2008-07-09 00:26:01 -07:00
Andreas Gal
1c24e264ad
Removed numMapEntries since typeMap is not really part of the SideExit struct yet anyway.
2008-07-09 00:13:35 -07:00
Andreas Gal
d6b834b98a
Move builtin[] table in jsbuiltin.cpp
2008-07-08 23:48:06 -07:00
Andreas Gal
5ee8b4abd7
Housekeeping. Remove a few warnings during BUILT_OPT and spelling in comments.
2008-07-08 22:40:07 -07:00
Andreas Gal
216f33a0bb
sp_adj is now maintained in bytes, not words, so +8 is now the magic value to point to the top of the stack. All stores above that watermark are eliminated by StackFilter in nanojit.
2008-07-08 21:03:30 -07:00
Andreas Gal
c9ee018202
Merge.
2008-07-08 20:20:24 -07:00
shaver@mozilla.org
815f787a8a
merge
2008-07-08 23:14:47 -04:00
Andreas Gal
ade00cfeb0
Removed bogus debug printfs.
2008-07-08 20:09:15 -07:00
Andreas Gal
795edf3334
Fixed frame walking FORALL_PENDING_FRAME_SLOTS and add 4 to sp in getTop (hotfix, not the right way to do it.)
2008-07-08 20:06:54 -07:00
shaver@mozilla.org
4fcad3cb1e
rval tracking and JSOP_POPV
2008-07-08 22:21:25 -04:00
Andreas Gal
4d84965bb8
Merge.
2008-07-08 19:17:15 -07:00
Andreas Gal
8e439abde3
Use more efficient address mode for LIR_load if possible and removed bogus printf.
2008-07-08 19:16:56 -07:00
Bob Clary
7f04f4a297
JavaScript Tests - remove unreliable test machines from test universe, update public-failures.txt, universe.data, bug 404367
2008-07-08 21:29:27 -04:00
shaver@mozilla.org
ff2b728cfd
protect printf with DEBUG
2008-07-08 21:22:46 -04:00
Brendan Eich
6a2a47ede9
Merge.
2008-07-08 18:14:14 -07:00
Brendan Eich
654d46135f
Single-ended interval tests, plus space patrol.
2008-07-08 18:12:22 -07:00
shaver@mozilla.org
46bdd14d57
Implement JSOP_SETNAME for globals.
2008-07-08 21:07:27 -04:00