Brendan Eich
e0626f7799
Bug 453563 - TM: assertion when running unit tests with the JIT on (r=danderson).
2008-09-11 00:07:50 -07:00
Brendan Eich
ef47fcf4f8
Bug 454744 - TM: "Assertion failure: PCVAL_IS_SPROP(entry->vword)" with getter.
2008-09-11 00:00:37 -07:00
Ryan VanderMeulen
950f98985d
Bug 337890 - please spell formater formatter; mozilla-central part; r=timeless
2008-09-12 18:24:14 +02:00
Brendan Eich
fe5c11a5ea
TraceRecorder::record_SetPropMiss mis-layered on top of record_SetPropHit (454689, r=mrbkap).
2008-09-11 18:35:29 -07:00
Ginn Chen
490ca10263
Bug 452588 bustage on Solaris
2008-09-11 19:34:54 +08:00
Brendan Eich
b9b65ec429
Bug 453563 - TM: assertion when running unit tests with the JIT on (r=danderson).
2008-09-11 00:07:14 -07:00
Brendan Eich
1d69adc89d
Bug 454744 - TM: "Assertion failure: PCVAL_IS_SPROP(entry->vword)" with getter.
2008-09-11 00:04:33 -07:00
Vladimir Vukicevic
81dcc17709
Get rid of bogus nanojit arm platform stats line
2008-09-10 13:08:08 -07:00
Vladimir Vukicevic
b5c30cfadc
Get rid of bogus nanojit arm platform stats line
2008-09-10 13:06:31 -07:00
Benjamin Smedberg
b7c5804c10
Merge backout of the old patch for bug 453388 - we can statically allocate Oracle again, now that we're linking using the C++ linker magic, r=crowder
2008-09-10 15:38:28 -04:00
Benjamin Smedberg
bfeb170706
Merge backouts of bug 453388 - using g++ to link libjs.so means we can have static classes
2008-09-10 15:27:17 -04:00
Benjamin Smedberg
52e1ae86c7
Backed out changeset fc4a8cc07c9f - bustage fix from the first patch for bug 453388 which is also being backed out
2008-09-10 15:21:30 -04:00
Benjamin Smedberg
e780e5e3ea
Backed out changeset e2614011f194 - Bug 453388 - the better solution is to allow static objects and link libjs.so with g++ so that _init and _fini run static constructors/destructors correctly backout r=crowder
2008-09-10 15:20:01 -04:00
Benjamin Smedberg
ad47b4958a
bug 453388/bug 454624 - link using g++ instead of ld, so that static constructors/destructors will fire correctly r=crowder
2008-09-10 15:16:50 -04:00
Blake Kaplan
afe8fdc761
Work around incorrect but annoying strict-aliasing warning. r=brendan
2008-09-10 00:36:01 -07:00
Blake Kaplan
bcd1f7f97d
Fix bustage -- these macros are only defined if the tracer was enabled.
2008-09-10 00:12:26 -07:00
Blake Kaplan
88856d9ef1
Merge tracemonkey -> mozilla-central
2008-09-09 23:38:21 -07:00
Brendan Eich
ce15bc7cd3
Bug 454039 - TM: don't abort TraceRecorder::record_JSOP_SETPROP on cache miss (r=mrbkap).
2008-09-09 22:22:52 -07:00
Brendan Eich
7d5c49516c
Back out patch for bug 454039.
2008-09-09 16:55:07 -07:00
Brendan Eich
c7b40d9f99
Bug 454039 - TM: don't abort TraceRecorder::record_JSOP_SETPROP on cache miss (r=mrbkap).
2008-09-09 16:05:04 -07:00
Brendan Eich
ad49bd309d
Bug 453918 - TM: eliminate silly map_is_native guards on globalObj (r=shaver).
2008-09-09 16:01:01 -07:00
David Anderson
cd9032e6fe
Fixed Linux build, extra qualification on member function.
2008-09-09 13:20:44 -07:00
Brendan Eich
34a2d3c518
Fix build bustage: parent or proto might be not JSObject* when setting to null. r=brendan, patch by bz.
2008-09-09 12:33:28 -07:00
Boris Zbarsky
4cc2ce122f
Fix build bustage: parent or proto might be not JSObject* when setting to null. r=brendan
2008-09-09 15:27:19 -04:00
Brendan Eich
94b10f6170
Avoid needless prototype-shape purges (454035, r=igor).
2008-09-09 11:24:03 -07:00
Ted Mielczarek
468a3823fc
bug 447642 - get rid of --disable-mochitest, replace MOZ_MOCHITEST with ENABLE_TESTS. r=bsmedberg
2008-09-09 13:59:11 -04:00
Brendan Eich
40cf4096c7
Avoid needless prototype-shape purges (454035, r=igor).
2008-09-09 09:57:10 -07:00
Andreas Gal
3c8d2430dd
Merge.
2008-09-09 17:21:32 +02:00
Andreas Gal
85b1749c8c
Capture the typemap of the outgoing stack frame during a function call and store a pointer to it on the native call stack.
2008-09-09 15:16:21 +02:00
Andreas Gal
6a76d26107
Extract the snapshot code for a single slot into determineSlotType() und use that method in snapshot().
2008-09-09 15:06:23 +02:00
Blake Kaplan
4203e79309
Trace Math.max. r=brendan
2008-09-08 20:06:58 -07:00
Robert Sayre
871c6608b7
Add date tests to correctness checks
2008-09-08 22:36:30 -04:00
Robert Sayre
c6b73406b6
Add controlflow-recursive to correctness checks
2008-09-08 21:15:46 -04:00
Robert Sayre
b381016d68
Add some basic correctness tests for benchmarks
2008-09-08 21:02:57 -04:00
Brendan Eich
5b35846387
Fix bug 454266 - js_FillPropertyCache uses the wrong scope's shape sometimes (r=mrbkap).
2008-09-08 15:52:35 -07:00
Brendan Eich
cd3284e96a
Fix bug 454266 - js_FillPropertyCache uses the wrong scope's shape sometimes (r=mrbkap).
2008-09-08 15:51:47 -07:00
Ben Turner
c6eb5d4c06
Properly initialized mSaveDepth in JSAutoSuspendRequest, r=sayrer.
2008-09-08 15:09:41 -07:00
Andreas Gal
32f22d2e1e
Don't try to record recursion until we support it properly (454277).
2008-09-08 22:49:17 +02:00
Taras Glek
71b568fe41
bug 453889: Correct prbool misuse in spidermonkey
2008-09-08 13:41:09 -07:00
Blake Kaplan
6a6096aebd
Bug 453345 - Only look at pn_extra if we're actually a list. r=brendan
2008-09-08 11:47:15 -07:00
Peter Van der Beken
79f9a72d30
Fix for bug 443415 (Name more CC edges). r/sr=jst.
2008-09-08 20:26:46 +02:00
Taras Glek
7e792aca92
bug 453892: fix prbool bugs in xpconnect. r=jorendorff
2008-09-08 11:19:58 -07:00
Taras Glek
dbf23956a4
bug 432917: Replace "must flow through label" comments with statically-checkable macro. r=igor
2008-09-08 10:51:10 -07:00
Boris Zbarsky
6e51375684
Removing shark think which landed by accident
2008-09-08 08:57:52 -04:00
Boris Zbarsky
c57647d6f4
Bug 451605. Make sure to properly restore the thisp for the innermost frame when taking a nested side exit with a callDepth > 0. r=brendan,gal
2008-09-08 08:55:20 -04:00
Igor Bukanov
27d83904e5
bug 453133 - merging JSOP_DEFUN and JSOP_CLOSURE. r=brendan
2008-09-08 13:58:17 +02:00
timeless
f7c8db5a8a
Bug 330237 - editline.c:1038: warning: implicit declaration of function getpid. r=mrbkap
2008-09-08 13:27:57 +02:00
Igor Bukanov
1694ed5ded
bug 454163 - fixing build problem with 64-bit debug builds.
2008-09-08 12:37:41 +02:00
Igor Bukanov
23c5063560
bug 446386 - eliminating compiler pseudo-frames. r=brendan
2008-09-08 11:47:12 +02:00
Brendan Eich
082cb07c53
Make return at callDepth 0 terminate the loop, like break (454027, r=gal).
2008-09-08 00:31:18 -07:00
Ginn Chen
b807ca4816
Bug 440714 use -xldscope for Sun Studio on Solaris r=vladimir,benjamin sr=benjamin
2008-09-08 14:21:07 +08:00
Brendan Eich
5b48852abb
Patch from Mike Kaplinskiy <mike.kaplinskiy@gmail.com> implementing trim, trimLeft, and trimRight (305064, r=me).
2008-09-07 10:22:41 -07:00
Brendan Eich
e697e5113d
Bug 454044 - TM: JSOP_NOT needs isPromoteInt/::demote help.
2008-09-07 01:40:24 -07:00
David Anderson
5018287de0
Trace through parseInt(double), bug 454037 r=gal+brendan.
2008-09-07 02:41:10 -05:00
Serge Gautherie
5a5f67274f
Bug 398946 - Remove JS_STATIC_DLL_CALLBACK and JS_DLL_CALLBACK from the tree; "dom_quickstubs.cpp" bustage fix
2008-09-07 00:50:45 +02:00
Arpad Borsos
9b6f558fee
Bug 398946 - Remove JS_STATIC_DLL_CALLBACK and JS_DLL_CALLBACK from the tree; r=(benjamin + bent.mozilla)
2008-09-07 00:21:43 +02:00
Arpad Borsos
534fd11101
Bug 443058 - Remove MOZ_DECL_CTOR_COUNTER; <mozilla-central> part; r=benjamin
2008-09-07 00:04:10 +02:00
Vladimir Vukicevic
7c80853b9f
Enable tracemonkey/nanojit for ARM.
2008-09-06 01:19:29 -07:00
Brendan Eich
a8474f5a5b
Merge.
2008-09-05 20:31:05 -07:00
Brendan Eich
ba17412f5e
Easy fixes to avoid aborting on V8/raytrace.js: MAX_CALLDEPTH doubled to 10; JSOP_NOT handles int and undefined.
2008-09-05 18:57:32 -07:00
Brendan Eich
623433f549
Merge.
2008-09-05 18:34:16 -07:00
Brendan Eich
fc936fa1da
Checkpoint arguments tour-de-force (453730).
2008-09-05 18:29:08 -07:00
Vladimir Vukicevic
4a51b1989f
[arm] Use preindexed STR instruction instead of separate STR and SUB in asm_pusharg
2008-09-05 18:24:58 -07:00
Vladimir Vukicevic
de76f2638d
[arm] Have asm_quad copy direct from const to destination, if there's no register allocated for the const -- don't load into fp reg just to store it.
2008-09-05 17:24:54 -07:00
Vladimir Vukicevic
66c6f5db3a
[arm] use arm_ADDi and let it take care of LD32 if necessary.
2008-09-05 17:23:36 -07:00
Vladimir Vukicevic
0b61a36a81
[arm] Don't load arg into a register in asm_pusharg if it's not in one already.
2008-09-05 17:19:31 -07:00
Vladimir Vukicevic
5c53ce04cc
[arm] Don't use STMIA + ADD to move a fp call result into memory; use two STRs. Also use Scratch + tmp reg for asm_mmq, instead of just tmp.
2008-09-05 17:18:33 -07:00
Vladimir Vukicevic
7f39cd73d0
[arm] speed up store64 with constant value; also use xor for imm0 loads into a gp reg
2008-09-05 17:17:25 -07:00
Vladimir Vukicevic
02b2a31dc8
[arm] make asm_quad stick its constants into the instruction stream, with a branch over, to ensure that the data is close enough for a PC-relative FLDD
2008-09-05 17:15:23 -07:00
Vladimir Vukicevic
6ef2cd20aa
[arm] Make ADDi into a function, since it's doing a lot of work
2008-09-05 17:14:05 -07:00
Ginn Chen
2763e5d63e
Make TraceMonkey build on Solaris x86 with Sun Studio 12 (bug 452588, r=danderson).
2008-09-05 16:56:03 -07:00
Ben Turner
cb1f4f55af
Bug 451731 - "Update caps, dom, xpconnect for Bug 451729 (checkObjectAccess moving to the JSContext)". r+sr=jst.
2008-09-05 16:26:04 -07:00
Ben Turner
1e5c70827f
Bug 451729 - " Allow runtime's security callbacks to be overridden by a context". r=brendan.
2008-09-05 16:24:53 -07:00
David Anderson
85d4033733
Fixed a verbosity mode memory leak in LirNameMap::addName (bug 453895, r=sayrer).
2008-09-05 16:05:13 -07:00
Ginn Chen
a3f5be56ad
Added new macro AVMPLUS_UNIX to reduce redundancy and add Solaris support to the TM browser build (bug 452589, r=dvander).
2008-09-05 15:15:00 -07:00
David Anderson
9937dc1262
Trace through Math.log as a known native (bug 453868, r=brendan).
2008-09-05 14:25:01 -07:00
David Anderson
ba87213e86
Abort tracing if a callee encounters a primitive |this| and doesn't support it (bug 453701, r=brendan).
2008-09-05 13:55:03 -07:00
Jason Orendorff
edf679ff71
Merge more work by Jim Blandy on bug 97954.
2008-09-05 15:05:26 -05:00
Benjamin Smedberg
7dcf85d822
Bug 453658 - /s /S /w /W in character classes perform very poorly. r=crowder (showed up as Dromaeo test "DOM MOdification (Prototype): update()"
2008-09-05 14:21:32 -04:00
Jim Blandy
90bf6a2d1e
Bug 97954: Give jsconfig.h a better name, and make room for the new js-config.h. r=bsmedberg
...
We'd like the SpiderMonkey configure script to generate a header file
named js-config.h to hold #definitions chosen at configure time that
affect the SpiderMonkey API, like JS_THREADSAFE. However, that name
is very similar to that of an existing header file, jsconfig.h. This
patch renames the existing header file, and updates all references to
it.
--HG--
rename : js/src/jsconfig.h => js/src/jsversion.h
2008-09-05 10:19:17 -07:00
Brendan Eich
ff7bea2566
Use js_NaN global that we exported from jsnum.cpp, instead of cx->runtime->jsNaN.
2008-09-04 22:30:04 -07:00
Blake Kaplan
b4d3674f58
Bug 453747 - Replace any holes on the stack with undefined. r=gal
2008-09-04 22:14:27 -07:00
Brendan Eich
ce684a0a6e
Bug 453747 - Avoid overuse of the fun_getProperty class getter to optimize getting and setting random properties on functions. r=mrbkap
2008-09-04 21:56:37 -07:00
David Anderson
3e31bc7fb2
Another fix for the patch to bug 452884 -- when ignoring switch guards, don't update the tracker stack.
2008-09-04 20:11:58 -07:00
David Anderson
8c610797f3
Merge.
2008-09-04 19:43:58 -07:00
David Anderson
05991c905d
Better fix for bug 452884 (changeset badf4c84665f regressed) - don't emit guards rather than bailing out of comparisons (r=gal).
2008-09-04 19:43:07 -07:00
David Anderson
f7e43913ab
Fixed verbose printing typo on AMD64.
2008-09-04 19:39:18 -07:00
Brendan Eich
ae2a22c019
Bug 453747 - Avoid overuse of the fun_getProperty class getter to optimize getting and setting random properties on functions. r=mrbkap
2008-09-04 19:30:58 -07:00
Brendan Eich
b35babfe1d
House style bracing for multiline then clause.
2008-09-04 18:53:31 -07:00
Brendan Eich
b1ff34380c
Merge again.
2008-09-04 18:46:36 -07:00
David Anderson
1fef1cf8ac
Make sure 32-bit loads into 64-bit registers are sign-extended.
2008-09-04 18:32:00 -07:00
David Anderson
09123ebd63
Don't guard on constant decisions, which will always have the same path (bug 452884, r=gal).
2008-09-04 14:44:59 -07:00
Jim Blandy
9a1e56065c
Bug 453696: js/src/Makefile.in lists host_jsoplengen twice in HOST_SIMPLE_PROGRAMS r=mrbkap
...
The text deleted by this patch appears again verbatim directly above
the hunk's context.
2008-09-04 13:39:26 -07:00
David Anderson
b15e1fe4d3
Re-enabled the shell JIT as trace-tests and SunSpider pass again.
2008-09-04 11:59:06 -07:00
David Anderson
073cbf54c2
Improved AMD64 allocation for float ops that get stored back into memory.
2008-09-04 11:56:54 -07:00
David Anderson
5e828c58d4
Fixed float ops to deal with being handed an LHS GPR reservation on AMD64.
...
Fixed nanojit LIR verbosity crashing on AMD64.
2008-09-04 11:53:49 -07:00
David Anderson
ede63892f9
Disabled building AMD64 JIT in shell until regressions are tracked down. Fixed some compiling errors while I'm poking around here (bug 453674).
2008-09-04 10:58:35 -07:00
Neil Rashbrook
4625709517
Fixed nanojit not building on VC 7.1 (bug 453636, r=dvander).
2008-09-04 10:29:50 -07:00
Brendan Eich
2f9c49047e
Merge.
2008-09-04 01:21:49 -07:00
David Anderson
afe91e2757
Merge.
2008-09-03 23:28:27 -07:00
David Anderson
b791826dc5
Fixed JSOP_NEG with 0 being tracked as a promotable int, and added an equals-zero guard for the same opcode (bug 453049, r=gal).
2008-09-03 23:27:58 -07:00
Brendan Eich
d518e5c6a7
Missing guard for CallGetter builtin (453580, r=gal).
2008-09-03 22:42:41 -07:00
Brendan Eich
9657023ef6
Missing guard for CallGetter builtin (453580, r=gal).
2008-09-03 22:32:13 -07:00
Blake Kaplan
d9be63b689
Handle an interpreted constructor returning an object. r=brendan
2008-09-03 18:21:15 -07:00
Jason Orendorff
e3c32c3566
Bug 442086 - XPConnect creates doubles without checking for the INT_FITS_IN_JSVAL case (r=jst,sr=brendan)
2008-09-03 15:38:45 -05:00
Jason Orendorff
4dda6aa8e5
Bug 453383 - Confusing comment, bogus indentation in jsobj.cpp (r=mrbkap)
2008-09-03 15:30:13 -05:00
Jason Orendorff
445f7292b2
Bug 453105 - Error: setting a property that has only a getter on cars.com (r+sr=bzbarsky)
2008-09-03 15:28:13 -05:00
Taras Glek
8e0c84faf7
bug 453476: Some files didn't get compiled with -fno-exceptions. r=shaver
2008-09-03 10:53:36 -07:00
Benjamin Smedberg
89e10926d5
Bug 453341 - Allow stack checking to be suppressed per-function, r=dmandelin sr=jst
2008-09-03 13:00:12 -04:00
Andreas Gal
1d44de3cb6
Merge.
2008-09-03 01:22:07 -07:00
Andreas Gal
483b7fd5a1
Removed a bogus assert. Inner loops can exit on a goto in case we hit a break (453051).
2008-09-03 01:21:21 -07:00
Brendan Eich
4fa7c5195d
Put the trace-recording/executing flag in the trace monitor to handle many contexts per thread (451666, r=gal).
2008-09-03 00:38:24 -07:00
Andreas Gal
c466258c18
Limit tree growth to 16 traces per tree to avoid code explosion due to tail duplication (452869, r=danderson).
2008-09-02 23:52:11 -07:00
Andreas Gal
78b5b7fc05
Merge.
2008-09-02 23:11:51 -07:00
Andreas Gal
59b5581857
Add V8 benchmark suite.
2008-09-02 23:11:15 -07:00
Brendan Eich
3cd36a3b5f
Fix JS_THREADSAFE build, pick extern nit.
2008-09-02 23:00:23 -07:00
Vladimir Vukicevic
dfd7f72c0a
Fix up some ifdefs and debug printfs
2008-09-02 22:42:25 -07:00
Vladimir Vukicevic
a4ec50d569
Add VFP for floating point ops to nanojit ARM backend.
2008-09-02 22:29:23 -07:00
Vladimir Vukicevic
628b27d198
Indentation sanity fixes; no code changes.
2008-09-02 22:29:23 -07:00
Vladimir Vukicevic
2a520bab9f
Split NativeThumb.cpp into NativeThumb.cpp and NativeARM.cpp; no code changes.
2008-09-02 22:29:23 -07:00
Vladimir Vukicevic
420e72ed85
b=449526, TM: fix up ARM code generation / softfloat
2008-09-02 22:29:23 -07:00
Brendan Eich
e3916b316d
Teach js_IsLoopExit about JSOP_AND, JSOP_OR, etc. and separate extended jump cases so they can get the extended offsets.
2008-09-02 22:29:06 -07:00
Blake Kaplan
3d517dff43
Remove outdated comment. r=gal
2008-09-02 22:18:57 -07:00
Andreas Gal
f91071f139
Allocate the oracle dynamically instead of making it a global object to avoid atexit C compatibility issues (453388, r=danderson).
2008-09-02 21:56:22 -07:00
Taras Glek
b9b82a2bc3
bug 443286: avoid hidden return in CHECK_AND_SET_JUMP_OFFSET. r=igor
2008-09-02 20:50:19 -07:00
Brendan Eich
48926ba363
Fix bool FASTCALL vs. Nanojit calling convention bug, also some non-bool whoppers caught in the process (453361, r=mrbkap).
2008-09-02 15:37:22 -07:00
Brendan Eich
743793bc50
Fix warning pulled over from m-c (mrbkap will track down).
2008-09-02 15:30:42 -07:00
David Anderson
be89898254
Merge with mozilla-central.
2008-09-02 14:17:19 -07:00
Blake Kaplan
8f80eec070
Don't flush anything if we're not even enabled. r=gal
2008-09-02 14:02:13 -07:00
Taras Glek
c8962c44c2
bug 441362: Avoid an invisible return. r=igor
2008-09-02 13:32:27 -07:00
David Anderson
0af468fa80
Fixed accidental debugging change I pushed with changeset de2d26b3c902.
2008-09-02 12:36:23 -07:00
Ginn Chen
76f8dc0daf
On x86 compilers without fastcall, simulate it when invoking traces and un-simulate it when invoking builtins (bug 452390, r=dvander).
2008-09-02 11:43:55 -07:00
David Anderson
ceb2e8139c
Build fixes for MSVC 7.1 and mingw (bug 451881, patch from neil@parkwaycc.co.uk).
2008-09-02 10:28:14 -07:00
David Anderson
b6b115b496
Fix for building on FreeBSD (bug 452315, patch from Jeremy Lea).
2008-09-02 10:21:41 -07:00
David Anderson
1be49b5c2e
Use mmap() instead of valloc() in nanojit, abort on mprotect() failure (bug 451946, patch+r from Asko Tontti).
2008-09-02 10:15:26 -07:00
Andreas Gal
1d525db0e4
New attempt at fixing 453235. If building without JIT (like PPC/MacOSX), don't include the deep abort calls in jsinterp.cpp
2008-09-01 18:40:45 -07:00
Andreas Gal
1632042ed8
Merge.
2008-09-01 18:37:27 -07:00
Andreas Gal
4a36a6b709
Backed out changeset 25f856429db3. Wrong fix. Looks like jstracer.h is not included. We in fact can call methods of TraceRecorder directly. Sigh. I wish we had a try server.
2008-09-01 18:37:04 -07:00
Andreas Gal
d85543063d
Merge.
2008-09-01 18:33:05 -07:00
Andreas Gal
fe70cfea9b
Introduce js_DeepAbort to be used from jsinterp.cpp, instead of trying to call TraceRecorder->deepAbort directly (453235).
2008-09-01 18:32:41 -07:00
Brendan Eich
b3042b928d
Holey single-element dense array has null dslots, requires nulld defense (453173).
2008-09-01 13:59:30 -07:00
Brendan Eich
cda5a77a1b
Fast followup fix for unintended change to 'f' prefix handling in TraceRecorder::record_JSOP_NEW (452878).
2008-09-01 01:44:26 -07:00
Brendan Eich
5a8cb06838
Kind of an Array initialiser tour-de-force for bug 452878:
...
1. Split FastNewArray from FastNewObject built-in for greater speed/specialization and further splitting into Array_1str, etc.
2. Add Array_1str, Array_2obj, and Array_3num builtins for benchmarked new Array(...) constructions.
3. Export ARRAY_SET_DENSE_LENGTH and ARRAY_GROWBY via jsarray.h to jstracer.cpp.
4. Tweaked SetArrayElement to make common/best case code be the predicted/prefetched path.
5. js_MakeArraySlow now preserves the pre-slow length in JSSLOT_ARRAY_COUTN as a jsval-tagged int if possible -- this will help the tracer avoid aborting on dense arrays that turned slow but not sparse by addition of a named property.
6. Export js_fun_apply and js_Object from their respective .cpp files, in these cases just to jstracer.cpp via local prototypes (no .h files involved).
7. More INS_CONSTPTR and INS_CONST macrology for better names in trace debug spew.
8. Fix TraceRecorder::test_property_cache to avoid aborting on JSOP_SETNAME that creates a new global, by setting it to undefined so it can be lazily imported. This helps 3d-raytrace.js, which has an unintended global loop control variable in a function.
9. JSTraceableNative loses its premature-deadwood tclasp member (my bad).
10. TraceRecorder::record_JSOP_NEW() handles 'new Object' now along with the 'new Array' variations. I also cut down the copy-paste code from JSOP_CALL's record method to mostly what is needed now.
11. Add KNOWN_NATIVE_DECL macro for concise prototype of library-private js_* native functions, and alphabetized the lists (too long for any other order to be winning).
12. Big honking special case for foo.apply(obj, [str]), which we can generalize as needed. Helps string-tagcloud.js. What's cool is how tracing allows us to rewrite this to foo(str) with this set to obj, eliminating the Function.prototype.apply. This requires some rewriting in JSOP_ENDINIT's record method.
2008-09-01 01:24:58 -07:00
Robert Sayre
7cca7713be
Add tests containing switch statements
2008-08-30 19:35:38 -04:00
Robert Sayre
52a7fb0b98
Add test for more bitwise ops
2008-08-30 19:20:54 -04:00
Jesse Ruderman
1b5148d940
Bug 452905 - Make js_RecordTree printfs only appear with TRACEMONKEY=verbose. r=gal
2008-08-30 02:21:00 -07:00
Brendan Eich
c7604aac4c
- Support JSOP_CONDSWITCH's JSOP_CASE and extended-jump-offset JSOP_CASEX variants properly.
...
- Fix sleep-deprived constant conditions due to failure to test flags & CMP_TRY_BRANCH_AFTER_COND!
- Use new TraceRecorder::fuseIf that Andreas added in a few more places where the previous try-branch-after-cond logic was open-coded.
2008-08-30 00:01:59 -07:00
Blake Kaplan
2782b3de85
Fix gmail crash by not tracing switches. r=brendan
2008-08-29 19:01:00 -07:00
Blake Kaplan
219161a0aa
Abort (deeply) if we re-enter js_Interpret in the middle of a trace. r=brendan
2008-08-29 18:59:21 -07:00
Andreas Gal
ea15fc19ef
Fixed an signed/unsigned comparison warning in an assert in jstracer.cpp.
2008-08-29 17:54:39 -07:00
Andreas Gal
33c4a8e742
Merge.
2008-08-29 17:35:34 -07:00
Andreas Gal
113ad8babe
Add builtins for toLowerCase, toUpperCase and replace(str,str) (452885, r=mrbkap).
2008-08-29 17:35:00 -07:00
Brendan Eich
45ea54d2d1
Don't let GC run when recording.
2008-08-29 16:04:54 -07:00
Blake Kaplan
ee86ee3cf1
Bug 452329 - Fix a bad assumption. r=brendan
2008-08-29 16:03:18 -07:00
Blake Kaplan
48fb3e7f94
Bug 452875 - Ensure we intern the id for JSOP_IN. r=brendan
2008-08-29 15:59:09 -07:00
David Anderson
7515a0583e
Merge.
2008-08-29 15:38:05 -07:00
David Anderson
f720beb914
Fixed double-as-integer check not handling negative zero (bug 452170, r=gal).
2008-08-29 15:37:37 -07:00
Andreas Gal
f29178e950
Track number of breaks we generate loop exits for.
2008-08-29 15:29:55 -07:00
Andreas Gal
1e41ca88af
Long-form conditional branches (IFEQX, IFNEX) are never fused, so don't check for them in fuseIf.
2008-08-29 15:20:36 -07:00
Andreas Gal
57a8fae3d1
Merge.
2008-08-29 15:17:20 -07:00
Andreas Gal
9e7246a2b9
Track locations of control-flow merges in cfgMerges during recording (452869).
2008-08-29 15:12:17 -07:00
David Anderson
a2fdc866ff
Fixed assumptions that nanojit's insCall() would not clobber the input argument array (bug 452853, r=gal).
2008-08-29 14:22:21 -07:00
David Anderson
f10bd19c8e
Abort recording on invalid string indexes for JSOP_GETELEM (bug 452713, r=brendan).
2008-08-29 13:05:41 -07:00
Robert Sayre
f35adba372
Add tests covering division.
2008-08-29 13:04:08 -04:00
Robert Sayre
5d1f73ba74
Add tests for continue statement.
2008-08-29 11:01:56 -04:00
Brendan Eich
f92de94117
Fix bogus JOF_VARPROP test; fix uninitialized id in JSOP_IN recorder, should have caught it when I reviewed danderson's patch.
2008-08-29 00:58:10 -07:00
Brendan Eich
18d5749230
Fix upvar decompilation for eval-from-fun case (452441, r=igor).
2008-08-29 00:24:11 -07:00
Brendan Eich
655888f31e
Consolidate equal and cmp code harder, trace switch ops, use INS_CONST more (bug to be filed -- bugzilla down atm).
2008-08-28 23:50:48 -07:00
Andreas Gal
1115d0162b
Unroll loops we were not able to call once, but only if we don't have a tree available for that loop header.
2008-08-28 23:19:23 -07:00
Andreas Gal
535bdef3ee
Merge.
2008-08-28 22:34:14 -07:00
Andreas Gal
c263b7a218
Merge.
2008-08-28 22:33:45 -07:00
David Anderson
951c95658a
Fixed trying to record JSOP_IN with some unusuable left-hand values (bug 452724, r=brendan).
2008-08-28 22:33:32 -07:00
Andreas Gal
4fb4d1fdc5
Monitor downward branches only during recording (452709).
2008-08-28 22:33:22 -07:00
Brendan Eich
1f07d79c75
Abort trace if forInLoop values are not stable; currently, not strings (bug 452703).
2008-08-28 21:41:15 -07:00
Brendan Eich
25a591f870
Fixed bogus assertion in test_property_cache (bug 452693, r=dvander).
2008-08-28 21:15:39 -07:00
Jesse Ruderman
5663d9166a
Turn NANO_DIE macro into NanoAssertFail function so that it shows up in stack traces. Having it appear in stack traces makes it clear the exit was due to an assertion failure rather than a real crash. Followup to bug 452674.
2008-08-28 19:07:49 -07:00
Andreas Gal
aaf46f467e
Merge.
2008-08-28 17:47:11 -07:00
Andreas Gal
f10a08c384
Cleanup detection of gotos that were emitted as a result of a BREAK statement.
2008-08-28 17:46:25 -07:00
David Anderson
6ab07e371a
Merge.
2008-08-28 17:28:36 -07:00
David Anderson
d5e48e84d7
Added descriptive messages to always-taken assertions in Nativei386.cpp.
2008-08-28 17:27:29 -07:00
Jesse Ruderman
db3a854298
Fix NanoAssertMsgf in non-debug builds. Regression from my patch in bug 452674.
2008-08-28 17:15:51 -07:00
Andreas Gal
65bc53f864
Merge.
2008-08-28 17:01:22 -07:00
Andreas Gal
c0e0852952
Notify the monitor of all branches, not just backwards branches.
2008-08-28 17:00:52 -07:00
Jesse Ruderman
67955c4c42
Add a message to a NanoAssert(0) to make it possible to match against. r=gal
2008-08-28 17:00:52 -07:00
Jesse Ruderman
12aa1d345a
Bug 452674: change NanoAssert* macros to make it easier to check for nanojit assertions in automated testing. r=danderson.
2008-08-28 16:57:49 -07:00
Blake Kaplan
977123733e
Bug 452338 - Abort on the weird case where we find a global name on the prototype of the scope chain. r=brendan
2008-08-28 16:37:03 -07:00
Andreas Gal
c274daed5c
Merge.
2008-08-28 14:51:16 -07:00
David Anderson
1b50da7117
Abort recording on JSOP_INCPROP with an invalid slot (bug 452336, r=brendan).
2008-08-28 14:43:44 -07:00
Andreas Gal
453ea3339f
If the inner tree cannot be adjusted to match the call site of the outer tree because it uses an int where the outer tree uses a double, trash the inner tree, not the outer one. In CallTree, return the innermost guard we return from, not the outermost one. Jump over at most 1 loop edge that doesn't go back to our own header, not an arbitrary amount.
2008-08-28 14:24:58 -07:00
David Anderson
48fe80af99
Merge.
2008-08-28 13:15:34 -07:00
David Anderson
eb051d8c73
Better fix for bug 451666 - only track new rval for primitives (r=brendan).
2008-08-28 13:14:59 -07:00
Blake Kaplan
1006bbf99c
Bug 452333 - Don't push tagged jsvals on the stack. r=brendan
2008-08-28 12:40:48 -07:00
David Anderson
d7c4af1e0c
Merge.
2008-08-28 11:56:45 -07:00
David Anderson
d7b5791be9
Track new rval from JSOP_RETURN when constructing inline frames (same as JSOP_STOP).
2008-08-28 11:55:58 -07:00
Blake Kaplan
2bcc0a39b5
Bug 452573 - The interpreter's JSOP_VOID doesn't push anything, so we shouldn't expect it to. r=brendan
2008-08-28 11:55:27 -07:00
Igor Bukanov
228d70e09b
backing out bug 446386 due to unit test failures
2008-09-02 09:27:10 +02:00
Simon Bünzli
0b40c8a49f
Bug 450633 - "script stack space quota is exhausted" exception in JSON.jsm when calling SessionStore API for sessions with a large amount of data. r=sayrer, sr=brendan
2008-09-02 08:36:15 +02:00
Igor Bukanov
9022efe160
bug 449494 - uniform handling of bytecodes with variable stack uses. r=mrbkap,brendan
2008-09-02 08:25:15 +02:00
Igor Bukanov
4509b7601e
bug 446386 - removal of the compiler pseud-frames. r=brendan,mrbkap
2008-09-02 08:10:26 +02:00
Leon Sha
621a72d75c
Bug 429105 [Solaris] Failed to build mozilla-central on solaris in js module. brendan: review+
2008-09-02 10:03:18 +08:00
Boris Zbarsky
33c006bc1b
Fix orange caused by bug 407216
2008-09-01 13:40:16 -04:00
Igor Bukanov
8cc1d392ca
bug 452786 - optimizing JS date access. r=mrbkap
2008-09-01 10:30:41 +02:00
Jason Orendorff
d8e1964581
Fix for build breakage on Windows due to bad dom_quickstubs.depends file.
...
The bad file contains a backslash, which causes GNU make to choke.
This fix causes the file to be generated correctly, but the file on
the Windows build machines is still there and still contains backslashes;
a clobber should fix this.
The Try Server didn't catch this because every Try build is a clobber.
2008-08-31 09:51:52 -05:00
Peter Weilbacher
046dd17991
[OS/2] Bug 452630: Build break in jstracer.cpp (r=gal)
2008-08-28 18:28:52 +03:00
Jesse Ruderman
df0d2c793b
Remove extra space in tracing statistics message (bug 452571). r=gal
2008-08-28 00:16:50 -07:00
Jesse Ruderman
2530465041
Bug 452570 - NanoAssert doesn't end the message with a line break
2008-08-28 00:15:34 -07:00
Brendan Eich
5d132dba83
Record JSOP_IN (452563, r=gal).
2008-08-27 23:00:43 -07:00
David Anderson
d3cb344df7
Fixed asserting on valid LIR in AMD64 LIR_qcmov (bug 452545, patch from Makoto Kato).
2008-08-27 19:49:26 -07:00
Blake Kaplan
b9bf10f53c
Merge again
2008-08-27 17:48:56 -07:00
Andreas Gal
2316d281a0
Keep unrolling inner loops as long we are not hitting the same inner loop edge twice in a row (452362).
2008-08-27 17:48:15 -07:00
Andreas Gal
4b9cda096c
Merge.
2008-08-27 17:26:36 -07:00
Andreas Gal
cff18f06cd
Fix trashing of inner trees. Keep track of trees that call to a tree and flush them as well since they directly embed the code address. Since flushing an inner tree might invalidate the tree we are currently compiling, trees are now trashed in the destructor of TraceRecorder.
2008-08-27 17:25:56 -07:00
David Anderson
f166d24a5c
Merge.
2008-08-27 16:54:17 -07:00
David Anderson
bc995a482b
Fixed AMD64 loop branch patching for >32-bit offstes.
2008-08-27 16:52:28 -07:00
David Anderson
ccc26331ca
Removed INS_CONSTPTR use with JSVAL_TAG to discourage future 64-bit problems. Fixed 32-bit build.
2008-08-27 16:32:11 -07:00
Blake Kaplan
6a60ec5ab8
Re-merge to pick up changeset 6464982e3c7f
2008-08-27 16:27:49 -07:00
David Anderson
98306ccb74
Merge.
2008-08-27 16:09:17 -07:00
David Anderson
d0d64bbeff
Added LIR_qior/pior. Fixed more AMD64 page jumping bugs. Fixed some other AMD64 usage bugs in jstracer.
2008-08-27 16:08:59 -07:00
Ben Turner
e13eae15fb
Bug 451732 - Always do LAST_FRAME_CHECKS, even if the compile failed (since that sets a pending exception). r=mrbkap
2008-08-27 15:45:13 -07:00
Andreas Gal
e8fcb3bd37
Merge.
2008-08-27 14:48:59 -07:00
Andreas Gal
3fb237f38c
Loops with a single iteration start tracing, but never complete since we immediately walk past the loop edge after the first iteration. At least try to complete the loop around it by walking past such thin inner loops when compiling the outer loop (452362).
2008-08-27 14:46:57 -07:00
Brendan Eich
fc0f763f3c
Fix upvar decompilation for eval-from-fun case (451884, r=mrbkap).
2008-08-27 14:35:41 -07:00
Blake Kaplan
ccbbafd88d
Merge mozilla-central -> tracemonkey
2008-08-27 14:28:27 -07:00
Blake Kaplan
eba28651d8
bug 418051 - Don't allow shorthand object initializer through destructuring assignment. r=brendan
2008-08-27 13:56:43 -07:00
Blake Kaplan
0a3ec02bb5
Bug 452295 - Deal with embeddings that don't use principals. r=brendan
2008-08-27 13:56:34 -07:00
Brendan Eich
4842b435c5
Oops, not enough copying...
2008-08-27 13:54:05 -07:00
Brendan Eich
510ec8bdce
Fix a bug Jesse reported: insufficient copy/paste from record_JSOP_CALL to record_JSOP_NEW.
2008-08-27 13:52:46 -07:00
Blake Kaplan
f27c2b3c5f
Bug 452346 - Fix latent bug in rv_alloc. r=crowder
2008-08-27 11:43:35 -07:00
Brian Crowder
4670191ed2
Merge initial patches for bug 97954: autoconf build environment for spidermonkey
2008-08-27 10:16:56 -07:00
Brendan Eich
4de45a4139
Fix upvar decompilation for eval-from-fun case.
2008-08-27 02:21:04 -07:00
Brendan Eich
fb2a1431d7
Fix another broken assert (452372).
2008-08-27 01:11:06 -07:00
Brendan Eich
9cb246a8fc
Fix another broken assert (452372).
2008-08-27 01:10:44 -07:00
Brendan Eich
df16afe946
Correct (but sadly a bit slower) property cache guarding (452140, r=shaver).
2008-08-27 00:44:37 -07:00
Brendan Eich
cbb33d1a83
Remove bogus assertion (452178).
2008-08-27 00:41:57 -07:00
Brendan Eich
6c59f88abd
Merge.
2008-08-27 00:36:57 -07:00
Brendan Eich
722ff40a11
Remove bogus assertion (452178).
2008-08-27 00:34:53 -07:00
David Anderson
d7c7f1645b
Improved AMD64 out-of-range jumping, some cases are still broken though. Fixed i386 build.
2008-08-26 23:14:13 -07:00
David Anderson
d030e910fb
Merge.
2008-08-26 21:51:12 -07:00
David Anderson
8464bf22ba
Merge.
2008-08-26 21:47:10 -07:00
Andreas Gal
7df899a9f5
Merge.
2008-08-26 21:46:21 -07:00
Andreas Gal
4f51cac33e
Add test case for decaying inner loops that sometimes are not executed at all since the condition fails pre-entry.
2008-08-26 21:45:53 -07:00
Andreas Gal
418b15eadd
Flag a side exit as loop exit only if the underlying loop condition actually targets the current loop header, otherwise treat it as a branch exit. This is required for inner loops where we unroll the first iteration but the loop condition immediately fails. If we report such exits as loop exits, no branch gets ever attached to them and we keep side-exiting over and over.
2008-08-26 21:43:59 -07:00
Brendan Eich
ae9605be38
Correct (but sadly a bit slower) property cache guarding (452140, r=shaver).
2008-08-26 21:26:10 -07:00
Brendan Eich
a596a75f05
Why wasn't this hunk in the .rej file, or else merged properly?
2008-08-26 21:05:17 -07:00
Brendan Eich
ff1b59a197
Bug 452340 - knownNative for num_toString (r=danderson).
2008-08-26 20:55:52 -07:00
David Anderson
357f1d4e64
Test case for bug 452340.
2008-08-26 20:02:59 -07:00
Brendan Eich
e326b78b55
Added knownNative for num_toString (bug 452340, r=dvander).
2008-08-26 20:00:11 -07:00
Robert Sayre
4bd48080dc
Add some tests for loops that should exit trace.
2008-08-26 18:46:50 -04:00
David Anderson
2a4faa131c
Fixed crashing with the incremental allocation changes. Very long jumps are still a problem but at least now we assert.
2008-08-26 15:15:15 -07:00
Jim Blandy
7633d7d0d6
Place these libraries in EXTRA_LIBS, not LDFLAGS, so we can easily
...
capture them in the js-config script later.
2008-08-26 14:34:36 -07:00
Jim Blandy
468980d37c
There is no 'pathsubst' function in GNU make. This assignment has
...
been around forever, and it's never done anything, so it should be
safe to delete.
2008-08-26 14:34:36 -07:00
Andreas Gal
c4af944fe9
Merge.
2008-08-26 13:26:05 -07:00
Andreas Gal
40796f4154
For global code assume that no slots are below the current frame.
2008-08-26 13:25:40 -07:00
Brendan Eich
7adb43eaa6
Align test order with mozilla-central to avoid merge conflicts (I hope).
2008-08-26 12:50:01 -07:00
Brendan Eich
b764cdd7da
Fix TM assert on wikipedia (451806, r=mrbkap).
2008-08-26 12:49:10 -07:00
Brendan Eich
772be6e2bf
Fixed cases where argc varied between recording time and execution time (bug 451727; also warning fix fe54f7fb89d1 from tracemonkey).
2008-08-26 12:28:26 -07:00
Boris Zbarsky
21251ac0c5
Bug 449233. Assert when decrementing the jsdhash/pldhash recursion level past 0. r=dbaron,brendan, sr=dbaron
2008-08-26 13:02:04 -04:00
Igor Bukanov
5202ccb583
bug 450392 - fixing -Wstrict-aliasing=2 warnings
2008-08-26 10:46:34 +02:00
Andreas Gal
795f7ae426
Merge.
2008-08-26 01:01:24 -07:00
Andreas Gal
eb0c261390
When extending an outer tree from its nesting guard, the guard we actually exited on determines the typemap for the current frame and all inlined frames, whereas the nesting guard is consulted for all type information frames below the current frame.
2008-08-26 01:00:53 -07:00
Brendan Eich
a7cdb3ddb2
Fix warning.
2008-08-25 23:22:20 -07:00
Andreas Gal
4bb68b852c
Rename lr->anchor in AttemptToExtendTree()
2008-08-25 23:19:00 -07:00
Andreas Gal
24b663fd61
Determine the tree we have to grow from the side exit we attach to in AttemptToExtendTree() instead of passing the parameter in.
2008-08-25 23:17:38 -07:00
Brendan Eich
43b25b3c09
Rename gcDontBlock to runningJittedCode, and assert it's false on entry to js_Interpret (for 451657, but not the fix, just prolog).
2008-08-25 23:08:21 -07:00
Andreas Gal
e86ad8730d
Merge.
2008-08-25 22:11:23 -07:00
Andreas Gal
d00742c962
Add an assert checking that celldepth is zero upon loop exit side exits and better verbose diagnostic for trace exits.
2008-08-25 22:11:04 -07:00
Andreas Gal
c86c7d09fb
Generate an always taken LOOP_EXIT guard when an inner loop encounters a break statement. When returning from such an inner tree, make sure the recorder resumes at the target address of the goto the break was emitted as, otherwise the outer tree confuses the location with a break in its own loop. Disabled outerlining (this patch subsumes it, but we might enable it later since it might handle some cases more efficiently, currently off for debugging through). fasta currently asserts, and fannkuch hits a perf regression. These are probably bugs this change exposed.
2008-08-25 17:24:49 -07:00
Blake Kaplan
48d275806e
Bug 451785 - Trace == and != involving booleans. r=gal
2008-08-25 16:58:18 -07:00
Blake Kaplan
298caaa80f
Bug 451782 - Trace Math.ceil. r=brendan
2008-08-25 16:54:02 -07:00
Ted Mielczarek
8a69f6fb57
bug 436495 - build DumpJSStack in release builds. r=shaver
2008-08-25 20:25:19 -04:00
Blake Kaplan
63f33e654d
Bug 451483 - Array.splice() should return an empty array. r=brendan
2008-08-25 17:12:30 -07:00
Brendan Eich
70173fadfb
Merge.
2008-08-25 16:38:38 -07:00
Brendan Eich
9d19499490
Oops, forgot to make Print set *vp to undefined when I made it a FastNative.
2008-08-25 16:36:57 -07:00
David Anderson
e4ef2c3451
Merge.
2008-08-25 16:06:17 -07:00
Brendan Eich
b385e456d9
Fixed cases where argc varied between recording time and execution time (bug 451727).
2008-08-25 16:04:10 -07:00
Neil Rashbrook
0cf05ab4dc
Bug 452061 Clobbering TraceMonkey shouldn't be needed
2008-08-25 23:51:30 +01:00
Andreas Gal
99505fce2e
Merge.
2008-08-25 15:18:12 -07:00
Andreas Gal
fc5667ef13
Split closeLoop() and compile() and add endLoop(), which omits an always-exit guard (will be used for break statements.)
2008-08-25 15:17:46 -07:00
Robert Sayre
7fd9b9c91b
Merge
2008-08-25 17:38:42 -04:00
Andreas Gal
8a6d79d6b6
Annotate gotos that are emitted for break statements with SRC_BREAK (452122, r=mrbkap).
2008-08-25 14:34:26 -07:00
Robert Sayre
8ce085e0c6
Add test of (attempted) trace recording with an active call object
2008-08-25 17:12:41 -04:00
Brendan Eich
73d280798c
Bug 451906 - Regression: Array index has different results (r=shaver).
2008-08-25 12:38:12 -07:00
Brendan Eich
eb8bbd11d2
Cope with sub-optimal JSOP_FORNAME instead of JSOP_FORVAR inside a with, or similar (eval-created locals; 451806).
2008-08-24 08:18:17 -07:00
Andreas Gal
e944751f2e
Merge.
2008-08-23 15:13:55 -07:00
Andreas Gal
71b12b53fe
Enable outlining. If a loop doesn't connect back to its own header (i.e. break inside the loop), see if the outer loop path can be attached to the inner loop (outerlining). Added test case (failure mode is high number of activated traces in trace-test.js). This test exposes a regression in access-fannkuch. Committing so we can diagnose that separately.
2008-08-23 15:11:38 -07:00
Brendan Eich
d28554f3cc
Remove over-eager gvar optimization for JSOP_DEFFUN (451678, r=shaver).
2008-08-22 18:07:32 -07:00
David Anderson
04ab3326c8
Merge.
2008-08-22 17:36:37 -07:00
David Anderson
e88386ec38
Fixed bogus assertion in debug mode.
2008-08-22 17:32:45 -07:00
Andreas Gal
f5462e1c0a
Merge.
2008-08-22 17:32:01 -07:00
Andreas Gal
454b252c63
If the outer loop has a value in a float register but the inner tree expects an int, tell the oracle that we want doubles in that slot in the inner tree and trash the inner tree so it gets re-compiled with a matching layout (451673).
2008-08-22 17:31:23 -07:00
Andreas Gal
2fb04231fe
Allocate nanojit code cache incrementally (bug 443111).
2008-08-22 16:37:37 -07:00
David Anderson
36ea645fbe
Bug 451743 - On x86 processors, only use SSE2 if the processor supports it, otherwise default back to x87 FPU (r=gal, sr=mrbkap)
2008-08-22 12:21:27 -07:00
David Anderson
f0606ee551
Fixed x86_64 build issue (accidentally trying to build 32-bit nanojit).
2008-08-21 18:07:26 -07:00
Andreas Gal
1b29fd53e4
Merge.
2008-08-21 16:50:57 -07:00
Andreas Gal
666aeff29e
Fix builtins that were accidentally flagged as CSE/FOLD but really aren't (Math.random i.e.)
2008-08-21 16:49:51 -07:00
Andreas Gal
7da39648cf
Cleanup spacing in builtins.tbl
2008-08-21 16:35:05 -07:00
Blake Kaplan
26c3cd4ea9
Fixed js_String_p_split passing in an undersized array.
2008-08-21 15:17:47 -07:00
Andreas Gal
2563d2bd3d
Merge.
2008-08-21 11:42:03 -07:00
Andreas Gal
80088cd777
Fix warning about signed/unsigned comparison.
2008-08-21 11:40:56 -07:00
Robert Sayre
c6a7088bae
Bug 451580, fix string split assertions and return values. Tests fail with JIT on for other reasons, it seems. r=shaver
2008-08-21 14:06:42 -04:00
Andreas Gal
ee5f8e441f
Merge.
2008-08-21 05:21:37 -07:00
Andreas Gal
8f6bbaaa5f
Abort recording when an error occurs.
2008-08-21 05:21:01 -07:00
Brendan Eich
d62ee36613
Fix script->owner maintenance; also fix warning.
2008-08-21 05:04:20 -07:00
Brendan Eich
b1e05f4fc9
JSThread is not zeroed when allocated, grrr.
2008-08-21 04:51:46 -07:00
Brendan Eich
e4a3506856
Fix typo.
2008-08-21 04:22:48 -07:00
Brendan Eich
7ebaf5bf1c
Merge.
2008-08-21 04:17:49 -07:00
Andreas Gal
a49e15bd85
Remove FastEval builtin.
2008-08-21 04:17:17 -07:00
Brendan Eich
791221dfae
Followup upvar fix, easy assertbotch avoidance.
2008-08-21 04:16:50 -07:00
Brendan Eich
fd148818e1
Add split built-in, also sort knownNatives for my own sanity (should sort builtins.tbl and jsbuiltins.cpp by function while at it, but too tired).
2008-08-21 04:13:07 -07:00
Brendan Eich
147018b013
Merge, plus restore TraceRecorder::activeCallOrGlobalSlot.
2008-08-21 03:51:37 -07:00
Brendan Eich
9cd8e5a539
Upvar, v0.1 (limited to looking up from eval in a function, to the function's args and vars).
2008-08-21 03:47:33 -07:00
shaver@mozilla.org
35915d94ea
disable tracing with active call object pending perf fix
2008-08-21 03:19:17 -07:00
Andreas Gal
f2c2859267
Merge.
2008-08-21 03:13:57 -07:00
Andreas Gal
d9acfb10f0
Remove FastEval, broken by design (r=brendan).
2008-08-21 03:13:31 -07:00
David Anderson
f34f92698f
Fixed code generation bug in AMD64 port. Enabled AMD64 JIT now.
2008-08-21 02:53:53 -07:00
Brendan Eich
324b9c7f4e
Remove lambda-replace built-in, it's not safe to record into a nested js_Interpret.
2008-08-21 01:39:16 -07:00
Brendan Eich
2c4e22add3
Fix CHECK_RECORDER macro to use XOR to evaluate both terms.
2008-08-21 01:38:50 -07:00
Andreas Gal
2e767b124c
Convert undefined to NULL on tree entry if the tree wants an object type.
2008-08-21 01:13:07 -07:00
shaver@mozilla.org
ed7fab1440
trace |new Array|, via the magic of copy and paste
2008-08-21 00:50:20 -07:00
Brendan Eich
321ae383ba
Merge.
2008-08-21 00:47:51 -07:00
Andreas Gal
5a8f2bff2b
Merge.
2008-08-21 00:45:44 -07:00
Andreas Gal
fcd8670fec
If we expect a concrete value but see an undefined come into the trace, convert undefined to the concerete value.
2008-08-21 00:43:45 -07:00
Brendan Eich
9b56ca4984
Tidy up globalShape mismatch reporting.
2008-08-21 00:19:04 -07:00
Andreas Gal
a7b0f45c3f
Export js_NaN.
2008-08-21 00:13:40 -07:00
Brendan Eich
e5f489dcbb
Merge.
2008-08-20 23:47:47 -07:00
Brendan Eich
b9d10512b7
Use JS_FRIEND_API for new JS_ArrayToJSUint8Buffer, etc., and use it on prototypes and definitions (fixes some platform builds).
2008-08-20 23:46:31 -07:00
Andreas Gal
e26e3234f4
Merge.
2008-08-20 23:40:24 -07:00
Andreas Gal
12fcdd141f
Remove bogus fadd +1 check at the end of the loop. We have long switched over to starting slots as int and hence n++ will be emitted as integer add with i2f, so checking for i2f only is sufficient.
2008-08-20 23:39:57 -07:00
Andreas Gal
ddf445130e
Increase HOTEXIT to 1 (from 0).
2008-08-20 23:35:00 -07:00
Andreas Gal
1261e82b42
Eliminate redundant BoxDouble(UnboxDouble) chains.
2008-08-20 23:19:48 -07:00
shaver@mozilla.org
6870d297ef
say what we're returning from from EnterFrame
2008-08-20 23:12:28 -07:00
Brendan Eich
9e4119701e
Merge.
2008-08-20 22:44:16 -07:00
Brendan Eich
e9b635b38a
1. Add activeCallOrGlobalSlot, used by JSOP_NAME, JSOP_CALLNAME, etc. recorders to cope with Call objects on the scope chain, if they represent still-active frames covered by callDepth.
...
2. Add builtin for eval, to be optimized further, to handle very short eval'ed programs as found in popular benchmarks.
3. Add common scopeChain TraceRecorder helper, to generate the LIR to load cx->fp->scopeChain.
4. Add ABORT_TRACE to LeaveFrame for clarity.
2008-08-20 22:40:39 -07:00
Andreas Gal
8468ac7444
Support multiple returns from called trees by continueing the outer tree with a new nested guard.
2008-08-20 22:37:00 -07:00
Andreas Gal
36ddb45efb
Restore state.sp and state.rp before the nested guard exit point so we can have a sequence of them and still have rp/sp adjusted correctly.
2008-08-20 22:23:17 -07:00
Brendan Eich
4a25cf5a32
Defer eval'ed script destruction to next GC; expose js_obj_eval for tracing.
2008-08-20 22:18:42 -07:00
Andreas Gal
e9f3ccf839
Push actual guard that failed in a nested call, not the expected.
2008-08-20 20:12:19 -07:00
Andreas Gal
87295d3d95
Merge.
2008-08-20 19:25:26 -07:00
Andreas Gal
1b99fe0e1e
Don't emit a guard at the end of CALLNAME and friends since the values CALLNAME puts on the stack (callee, this) are not seen by the interpreter yet, and thus get store killed. Instead, emit the guard in CALL, at which point the values are properly stacked.
2008-08-20 19:24:57 -07:00
shaver@mozilla.org
9817a0cd97
fix js_IsLoopExit to better handle for-in exits, r=mrbkap
2008-08-20 18:50:49 -07:00
Andreas Gal
49f0b4f6cb
Add a switch to disable the oracle, in which case we never demote any slots.
2008-08-20 16:10:56 -07:00
Andreas Gal
fdb661bd5e
Clear the oracle on every GC.
2008-08-20 16:01:56 -07:00
Andreas Gal
3a2b40e4c4
Merge.
2008-08-20 15:43:57 -07:00
Andreas Gal
3e55729492
If at loop entry we expect a double, but at the loop tail we store an int because we suck the i2f into the side exit, we have to explicitly cast back up to double using i2f otherwise we won't be able to make sense of the value when we load it at the top of the next iteration.
2008-08-20 15:43:26 -07:00
shaver@mozilla.org
913b472c52
disable vprof building so that we can build on XP
2008-08-20 15:23:44 -07:00
Andreas Gal
98f67af6d0
Add a way to clear the oracle.
2008-08-20 15:18:43 -07:00
Andreas Gal
0954618ab1
Merge.
2008-08-20 15:04:22 -07:00
Andreas Gal
ccfca5d79f
Clear global slots and global type map when clearing the code cache.
2008-08-20 15:03:51 -07:00
Andreas Gal
f3972bfb84
Backed out changeset be63a51a0a3b. Breaks tofte if run from ./time.sh.
2008-08-20 14:57:49 -07:00
Vladimir Vukicevic
9a3d208ae4
b=451242, add fast-paths for dense array to uint/int/double buffer conversion; r=bent/mrbkap
2008-08-20 14:47:01 -07:00
Brendan Eich
6bc330ef33
Don't disable property caching in eval (this requires GC'ing eval scripts). Do tolerate active Call object at head of scope chain in record_JSOP_CALLNAME, and go straight to the stack slots.
2008-08-20 14:04:37 -07:00
Andreas Gal
1859be808c
Stub the getter and setter on class prototypes and constructor (bz, r=brendan, bug 451154).
2008-08-20 12:58:07 -07:00
Andreas Gal
8df2fc18c8
When adjusting integers to doubles in tree calls start with the current stack frame only.
2008-08-20 12:47:39 -07:00
David Anderson
d6aef7cf26
Fixed some valgrind whinings (not actual bug fixes).
2008-08-20 12:17:31 -07:00
Vladimir Vukicevic
1bbc109274
wrong condition check in nanojit with qjoin(qlo,qhi)
2008-08-20 11:32:22 -07:00
David Anderson
54cfb5e424
Fixed typo that broke the tree. Sorry!
2008-08-20 10:38:50 -07:00
shaver@mozilla.org
d1f7543e1b
default to non-verbose for DEBUG, set TRACEMONKEY=verbose in env to go verbose
2008-08-20 10:15:42 -07:00
David Anderson
d84ad33955
Another portability fix. math-spectral-norm is crashing in the test harness so keeping 64-bit JIT off (everything else works).
2008-08-20 09:59:23 -07:00
David Anderson
738ce385fa
Merge.
2008-08-20 09:50:41 -07:00
shaver@mozilla.org
5d3ad68bbe
merge from mozilla-central
2008-08-20 08:17:17 -07:00
Brendan Eich
deca6a9d50
Add str + obj concatenation for 3d-raytrace.js.
2008-08-20 02:35:17 -07:00
Dave Camp
fd49970e20
Backed out changeset af00b3f27c64 (Bug 418051)
2008-08-20 01:15:25 -07:00
Andreas Gal
3a4d105a0f
If the outer tree has a slot in an integer register, but the inner tree expects a double, make sure to promote the value before calling the tree, otherwise the inner tree will read the value from the stack incorrectly.
2008-08-20 00:51:56 -07:00
Andreas Gal
fb3cf056d9
Correctly calculate tree call stack adjustment, even if we don't have any arguments in the current frame and hand pick some cleanups from the backed-out changeset.
2008-08-19 23:31:33 -07:00
Blake Kaplan
62fcdc68d4
bug 418051 - Don't allow shorthand object initializer through destructuring assignment. r=brendan
2008-08-19 23:31:21 -07:00
Andreas Gal
39d9d53d83
Back out multi-trees. There is absolutely no way this will be debugged in time for tomorrow. Need a bit more gdb man-power.
2008-08-19 23:28:13 -07:00
Andreas Gal
55c1e3d15d
Always blacklist the first fragment in the peer list, and blacklist if we see a loop that is not type-stable.
2008-08-19 23:10:28 -07:00
Andreas Gal
25bf562fe6
Don't build trees inside tree calls if no suitable tree can be found (for now.)
2008-08-19 23:00:19 -07:00
Andreas Gal
4ee5ead209
Improved debug output.
2008-08-19 22:59:08 -07:00
David Anderson
69c4638355
Merge.
2008-08-19 22:33:43 -07:00
Andreas Gal
8569359e49
Add debugging facilities for typemaps and fix sp_adj calculation for tree calls.
2008-08-19 22:29:02 -07:00
David Anderson
9fa5be54af
Merge.
2008-08-19 21:32:22 -07:00
David Anderson
20e464b4f9
More AMD64 fixes (release build works now, and fixed verbosity bug).
2008-08-19 21:31:23 -07:00
Andreas Gal
454c89d72b
Support multiple fragments with different entry maps per PC location.
2008-08-19 20:30:16 -07:00
Jason Orendorff
f9365c3994
Backing out changeset cf6c811e1272 (bug 407216) due to debug assertions.
2008-08-19 22:28:26 -05:00
Jason Orendorff
4b74677d5e
Bug 407216 - DOM quick stubs - faster paths for top N DOM methods (r+sr=jst, security r=mrbkap, build r=bsmedberg)
...
* * *
* * *
* * *
2008-08-19 21:38:24 -05:00
Jason Orendorff
b94820fbeb
Bug 451571 - Delete SetExceptionWasThrown (r=dbradley, sr=jst)
2008-08-30 18:58:36 -05:00
Igor Bukanov
bafd289e60
bug 445705 - eliminate Namespace and QName GC things. r=brendan
2008-08-29 10:10:34 +02:00
Igor Bukanov
91905c13d0
bug 452586 - fastcall attribute should only be used on i386. r=shaver
2008-08-29 09:51:00 +02:00
Brendan Eich
1b762e34e4
Fix upvar decompilation for eval-from-fun case (452441, r=igor).
2008-08-28 17:17:55 -07:00
Daniel Holbert
bfcab9f023
Backed out changeset 9ecf699d4047 to see if it fixes linux mochitest failures
2008-08-28 15:04:18 -07:00
Brendan Eich
4300c6ec35
Fix upvar decompilation for eval-from-fun case (452441, r=igor).
2008-08-28 11:01:39 -07:00
Peter Weilbacher
a39ac3faf1
[OS/2] Bug 451686: fix build break and fastcall warnings in js/src, r=shaver
2008-08-22 11:53:26 +03:00
Brendan Eich
bea371d215
Record JSOP_IN (452563, r=gal).
2008-08-28 00:18:05 -07:00
Jason Orendorff
fe99024391
Bug 407216 - DOM quick stubs - faster paths for top N DOM methods (r+sr=jst, security r=mrbkap, build r=bsmedberg)
...
* * *
* * *
2008-08-19 21:38:24 -05:00
David Anderson
9a5b3b4307
AMD64 trace-tests.js passes now (hacked in LIR_qcmov opcode, corrected builtin return types).
2008-08-19 17:19:19 -07:00
Neil Rashbrook
f48015a1f0
Bug 450651 Use host outoption for host binaries r=mrbkap
2008-08-20 00:02:44 +01:00
Andreas Gal
b3efe4fbeb
Clear out the list of global slots when the shape changes.
2008-08-19 13:34:20 -07:00
Andreas Gal
1ee261ca2e
Emit the tree call stack setup code before executing the inner tree, otherwise we might see stale references to instructions prior to the call that no longer guarantee certain types (since the inner tree overwrite them.)
2008-08-19 13:11:18 -07:00
Andreas Gal
1ded8ec0ad
Merge.
2008-08-19 11:32:52 -07:00
Andreas Gal
e79f9ed689
Intern globals per-context, not per tree, which allows transitioning between trees that use globals. The type of all global slots compiled code uses is expected to remain stable, otherwise the entire code cache has to be flushed. Changes to the shape of the global object also flush the code cache. Working for trace-tests.js, but fails math-partial-sum.js
2008-08-19 11:32:36 -07:00
David Anderson
b279c87417
Disabled 64-bit JIT for now, failing 3 test cases.
2008-08-19 11:19:56 -07:00
David Anderson
ee4a887045
Merge.
2008-08-19 11:02:57 -07:00
David Anderson
aef458673b
Fixed codegen bug for amd64 64-bit binary ops.
2008-08-19 11:00:17 -07:00
Brendan Eich
c2229dbd5e
Back out changeset 1d0574db8320 (for 450997), it was based on a bum steer.
2008-08-18 22:18:33 -07:00
Andreas Gal
dfb94ccec1
Add a global type map to the monitor and rename slotList to globalSlots.
2008-08-18 21:08:35 -07:00
Brendan Eich
76380c598b
Add a final js_ReconstructStackDepth assert after setting fp->regs->sp in js_ExecuteTree's bail-out epilog.
2008-08-18 19:26:47 -07:00
Brendan Eich
87a6e416ef
1. Fix json2.js (it crashes later, another bug) to restore a non-empty stack for a call with missing args after a nested bail-out. This involves changing js_SynthesizeFrame to return the number of stack slots it reconstructed that map to native slots. It also means not counting the missing args in the spdist uint16 pushed onto the state.rp stack (this was the root of all over-counting evil, for this bug).
...
2. Use if (C) { do {...} while (C); } instead of if (C) { while (C) {...} } and other style fixage.
2008-08-18 18:36:05 -07:00
David Anderson
e503629dbe
Fixed AMD64 accidentally treating the shape as a 64-bit integer.
2008-08-18 17:36:24 -07:00
David Anderson
908183cf6f
Merge.
2008-08-18 16:38:32 -07:00