Commit Graph

1109 Commits

Author SHA1 Message Date
Andreas Gal
37b4dbe474 Don't manipulate stack during cpuid detection (fix for icc, r=danderson). 2008-10-30 17:56:27 -07:00
David Anderson
00bfbb7d80 Make sure double slots are marked as undemotable when stabilizing a tree with failed speculation (bug 462407, r=gal). 2008-10-30 15:54:22 -07:00
David Anderson
48b976a104 Don't coerce void to string when compiling inner tree calls (bug 462388, r=gal). 2008-10-30 13:48:22 -07:00
Andreas Gal
047344b36b Merge. 2008-10-30 12:32:08 -07:00
Andreas Gal
0cc2b0cfdf Fixed assert (fallout from 462265). 2008-10-30 12:31:39 -07:00
David Anderson
1f8d249207 Fixed not tracking linked peers as dependencies (bug 462282, r=gal). 2008-10-30 11:29:25 -07:00
Boris Zbarsky
d1afdda41f Bug 462184. Make INCLUDE_VERBOSE_OUTPUT actually work, and rename it to JS_JIT_SPEW. r=brendan 2008-10-29 21:56:35 -07:00
David Anderson
685543cd89 Mark any double slot in an unstable exit as undemotable (bug 462071, r=gal). 2008-10-29 17:57:14 -07:00
David Anderson
7247e3ffe4 Fixed trees stabilizing from the wrong peer fragment (bug 462240, r=gal). 2008-10-29 16:12:16 -07:00
Andreas Gal
868e7934a2 Emit JSOP_APPLY for .apply(...) similar to JSOP_EVAL for .eval(...) (462209, r=brendan). 2008-10-29 13:30:41 -07:00
Brendan Eich
6ddc16bbe2 Bug 462103 - TM: We don't trace some variants of string + other type (gal+brendan red-headed stepchild). 2008-10-29 00:14:30 -07:00
Andreas Gal
7b8859883f Merge. 2008-10-28 22:41:05 -07:00
Andreas Gal
4eca106b8a Handle dslots == NULL case when reading past the actual length of an array (461974, r=danderson). 2008-10-28 22:40:10 -07:00
Jim Blandy
f83d8c9ea3 Bug 97954: Allow SpiderMonkey to be built on its own, or as part of Mozilla.
Give SpiderMonkey its own configure script and top-level Makefile.
Adjust js/src/Makefile as appropriate for life as a stand-alone
makefile, instead of a 'make export; make libs'-style Mozilla tier
makefile.  Have the configure script accept '--with-nspr-cflags' and
'--with-nspr-libs' options for using an in-tree NSPR.  Also accept
'--with-system-nspr', '--with-nspr-prefix', and
'--with-nspr-exec-prefix' flags for using an installed NSPR.  Default
to --disable-jemalloc, assuming we don't have that part of the tree
available; have the top-level configure script pass --enable-jemalloc
as needed.

Since we no longer have an export phase to copy header files into
dist/include/js before we build the library, we need to be able to
find nanojit.h in the nanojit directory; fix references in
jsbuiltins.h and jstracer.cpp.

Give SpiderMonkey it its own copies of many of the files from ./config
and ./build.  These are all exact copies, except as follows:

. js/src/config/Makefile.in: js/src only has a subset of
  js/src/config, and thus a subset of the makefile targets.

. js/src/config/autoconf.mk.in: js/src/configure.in has its own make
  variables to set, not set by the top-level configure script, so it
  needs a custom automake.mk template.

. js/src/config/make-system-wrappers.pl: a copy from nsprpub/config,
  so that we can build without having an NSPR source tree handy.

Invoke js/src/configure from ./configure, passing the values computed
for NSPR_CFLAGS and NSPR_LIBS by the top-level configure script.

Treat js/src as a static directory of the js tier, and create a new
config/js (just a Makefile) to be the js tier's non-static directory.
Let js/src/configure generate SpiderMonkey's makefiles, not
./configure.

Generate a 'js-config' script, which clients can call to find the
CFLAGS and LIBS values necessary to compile and link against an
installed SpiderMonkey library.  Don't include the js-config script in
Macintosh packages.

Teach client.mk how to rebuild js/src/configure.

Tell Mercurial to ignore files generated by autoconf in js/src.

Further work:

. Right now, callers must define JS_THREADSAFE when #including jsapi.h.
  This is fixed in a subsequent patch.

. js/src/configure is a trimmed copy of ./configure.  It could be
  trimmed more.

--HG--
rename : build/autoconf/acoutput-fast.pl => js/src/build/autoconf/acoutput-fast.pl
rename : build/autoconf/altoptions.m4 => js/src/build/autoconf/altoptions.m4
rename : build/autoconf/config.guess => js/src/build/autoconf/config.guess
rename : build/autoconf/config.sub => js/src/build/autoconf/config.sub
rename : build/autoconf/glib.m4 => js/src/build/autoconf/glib.m4
rename : build/autoconf/install-sh => js/src/build/autoconf/install-sh
rename : build/autoconf/make-makefile => js/src/build/autoconf/make-makefile
rename : build/autoconf/match-dir.sh => js/src/build/autoconf/match-dir.sh
rename : build/autoconf/nspr.m4 => js/src/build/autoconf/nspr.m4
rename : build/autoconf/pkg.m4 => js/src/build/autoconf/pkg.m4
rename : build/autoconf/update-makefile.sh => js/src/build/autoconf/update-makefile.sh
rename : build/cygwin-wrapper => js/src/build/cygwin-wrapper
rename : build/hcc => js/src/build/hcc
rename : build/hcpp => js/src/build/hcpp
rename : build/unix/mddepend.pl => js/src/build/unix/mddepend.pl
rename : build/unix/uniq.pl => js/src/build/unix/uniq.pl
rename : config/Makefile.in => js/src/config/Makefile.in
rename : config/Moz/Milestone.pm => js/src/config/Moz/Milestone.pm
rename : config/autoconf.mk.in => js/src/config/autoconf.mk.in
rename : config/config.mk => js/src/config/config.mk
rename : config/elf-dynstr-gc.c => js/src/config/elf-dynstr-gc.c
rename : config/fastcwd.pl => js/src/config/fastcwd.pl
rename : config/gcc_hidden.h => js/src/config/gcc_hidden.h
rename : config/insure.mk => js/src/config/insure.mk
rename : nsprpub/config/make-system-wrappers.pl => js/src/config/make-system-wrappers.pl
rename : config/milestone.pl => js/src/config/milestone.pl
rename : config/milestone.txt => js/src/config/milestone.txt
rename : config/mkdepend/Makefile.in => js/src/config/mkdepend/Makefile.in
rename : config/mkdepend/cppsetup.c => js/src/config/mkdepend/cppsetup.c
rename : config/mkdepend/def.h => js/src/config/mkdepend/def.h
rename : config/mkdepend/ifparser.c => js/src/config/mkdepend/ifparser.c
rename : config/mkdepend/ifparser.h => js/src/config/mkdepend/ifparser.h
rename : config/mkdepend/imakemdep.h => js/src/config/mkdepend/imakemdep.h
rename : config/mkdepend/include.c => js/src/config/mkdepend/include.c
rename : config/mkdepend/main.c => js/src/config/mkdepend/main.c
rename : config/mkdepend/mkdepend.man => js/src/config/mkdepend/mkdepend.man
rename : config/mkdepend/parse.c => js/src/config/mkdepend/parse.c
rename : config/mkdepend/pr.c => js/src/config/mkdepend/pr.c
rename : config/nfspwd.pl => js/src/config/nfspwd.pl
rename : config/nsinstall.c => js/src/config/nsinstall.c
rename : config/nsinstall.py => js/src/config/nsinstall.py
rename : config/pathsub.c => js/src/config/pathsub.c
rename : config/pathsub.h => js/src/config/pathsub.h
rename : config/preprocessor.pl => js/src/config/preprocessor.pl
rename : config/revdepth-nt.pl => js/src/config/revdepth-nt.pl
rename : config/revdepth.pl => js/src/config/revdepth.pl
rename : config/rules.mk => js/src/config/rules.mk
rename : config/system-headers => js/src/config/system-headers
rename : config/version.mk => js/src/config/version.mk
rename : config/version_win.pl => js/src/config/version_win.pl
rename : configure.in => js/src/configure.in
2008-10-29 08:29:22 -07:00
Andreas Gal
7da6b31283 Handle dslots == NULL case when reading past the actual length of an array (461974, r=danderson). 2008-10-28 22:40:10 -07:00
David Anderson
55c302718d Fixed false-positive integer demotions on non-number types (bug 461945, r=gal) 2008-10-28 16:33:01 -07:00
Andreas Gal
25404443ff GC no longer flushes the JIT cache. Instead just make sure the shape of the global object will mismatch next time we try to record or execute code, which in turn will force a flush of the code cache (458288, r=brendan/danderson). 2008-10-28 16:22:08 -07:00
Brendan Eich
bad1b50498 Re-land patch for bug 458851 now that latent bug it uncovered (not filed; see hg log) is fixed. 2008-10-28 14:04:29 -07:00
David Anderson
06ec3d4965 Merge. 2008-10-28 14:00:27 -07:00
Brendan Eich
e95f449f88 Fix tracing apply with wrong arguments (no bug, r=gal+dvander). 2008-10-28 13:58:20 -07:00
Jason Orendorff
5258c4d288 Bug 461723 - TM: "Assertion failure: (m != JSVAL_INT) || isInt32(*vp)" with "(0 + void 0) && 0". r=gal. 2008-10-28 11:52:38 -07:00
Jason Orendorff
37724bb378 Backed out changeset d4fe79372140 (bug 458851) due to persistent orange on TraceMonkey tinderboxes. 2008-10-28 10:49:06 -07:00
Brendan Eich
51f987553a Bug 458851 - TM: for-in loops skip every other value in certain cases (r=gal/mrbkap). 2008-10-27 22:30:52 -07:00
David Anderson
bf1a78f4fe Implemented multiple type specialized trees per entry point (bug 450833, r=gal) 2008-10-27 20:42:49 -07:00
Jason Orendorff
154b1955c7 Bug 456384 - TM: v8-richards.js benchmark opens a print dialog in browser with JIT enabled. r=brendan 2008-10-27 16:15:32 -07:00
Andreas Gal
ba12fe7023 Merge. 2008-10-25 01:04:47 -07:00
Andreas Gal
df30935a17 guardDenseArray and guardDenseArrayIndex must guard on the actual outcome, since we don't always abort trace if its not a dense array (461611, r=me). 2008-10-25 01:03:38 -07:00
David Anderson
e33e23e267 Fixed false positive demotions due to missing isPromoteInt (bug 461612, r=gal). 2008-10-25 01:50:38 -05:00
Andreas Gal
06b393e8a2 Trace reading from dense arrays out of bounds and trace undefined -> number conversion in binary ops (461611, r=brendan). 2008-10-24 21:51:04 -07:00
David Anderson
6ebb53e98e Fixed branch demotions using the branch PC rather than the root PC, causing infinite records (bug 455547, r=gal). 2008-10-24 14:01:17 -07:00
Brendan Eich
fcca844194 Bug 461248 - Remove JSOP_RESUME (r=gal/jorendorff). 2008-10-24 12:34:08 -07:00
Jason Orendorff
90796fca26 Bug 461492 - TM: INT32 can't be used as return type for traceable native that actually returns an int. r=gal. 2008-10-24 12:49:54 -05:00
David Anderson
590d3d2443 Fixed crash from JIT cache flushes when js_Interpret was holding TraceRecorders (bug 458288, r=brendan). 2008-10-24 10:47:59 -07:00
Andreas Gal
19ed8b2e9c Only track and look up LOOP_EXIT side exits in the tree info (r=danderson). 2008-10-22 22:29:51 -07:00
Andreas Gal
5b7d8ddbe0 Backed out changeset 82f5fed6d91a (Linux GCC doesn't seem to like clobbering ebx in inline assembly). 2008-10-22 19:08:28 -07:00
Andreas Gal
04b27d4cf3 Avoid pusha/popa inside assembly (icc crashes) when checking for SSE2 using cpuid (461280, r=danderson). 2008-10-22 18:55:54 -07:00
Andreas Gal
5cc94e1d59 Re-use loop exit side exit if we already have one for that PC location and the same type map (461076, r=danderson). 2008-10-22 16:27:25 -07:00
Andreas Gal
e2a6acb46a Use LIR_loop for loop edge to avoid going into a side exit handler at every loop edge (461231, r=danderson). 2008-10-22 16:00:08 -07:00
Andreas Gal
b14d526b66 Merge. 2008-10-21 17:50:52 -07:00
Andreas Gal
ec7efc925c Remove code to unlink trees to reduce the size of GuardRecord. Allow GuardRecords to share one common SideExit structure. The VM places both explicitly into the LIR (460538, r=danderson). 2008-10-21 17:50:32 -07:00
Jason Orendorff
e1877796ba Bug 460501 - Round-trip change due to "&&" constant-folding leaving extra parens. r=brendan. 2008-10-21 13:35:22 -05:00
Vladimir Vukicevic
3164784c33 Make ARM nanojit compile again (doesn't run) 2008-10-20 11:18:30 -07:00
Jason Orendorff
e0b7bce037 Bug 459266 - TM: Allow CALLINFO macros to specify linkage. r=brendan. 2008-10-16 14:24:10 -05:00
Jason Orendorff
f8a75808ed Bug 459446 - Trace JSOP_POPV. r=brendan. 2008-10-15 15:22:05 -05:00
Andreas Gal
ea1d9c5edc Allow a single level of self-calling until we have support for recursion (459775, r=brendan). 2008-10-13 23:20:39 -07:00
Graydon Hoare
bf84bf6273 Merge tamarin-redux (nanojit2) into tracemonkey (457786, r=edwsmith,gal,danderson). 2008-10-13 13:29:18 -07:00
David Anderson
55ee8061f8 Return innermost guard from js_ExecuteTree and not outermost (r=gal). 2008-10-13 12:44:37 -07:00
Jason Orendorff
12c5730930 TM: Remove unreachable "return false" in TraceRecorder::record_JSOP_NOT. No bug, r=gal. 2008-10-13 14:10:35 -05:00
Jason Orendorff
6b88d0da8d Bug 459426 - Reunite record_JSOP_{NEW,CALL}. r=gal. 2008-10-13 11:04:26 -05:00
Andreas Gal
9bfc3c5072 Properly recover from a nested side exit with more than a single level of nesting (459539, r=danderson). 2008-10-12 15:39:32 -07:00
Andreas Gal
d622ee23d8 Merge. 2008-10-11 20:27:03 -07:00
Andreas Gal
798a62ad00 Stack water level is off by +1 in getTop, and JSOP_CALLPROP premature updates the tracker (459537, r=danderson). 2008-10-11 20:26:29 -07:00
Boris Zbarsky
33415ac1fb Adding some documentation 2008-10-10 12:43:30 -04:00
Jason Orendorff
232767cb27 Bug 459294 - TM: move soft float builtins next to SoftFloatFilter. r=andreas. 2008-10-10 11:31:23 -05:00
Andreas Gal
9a086f63ae Don't carry around oldpc in AbortRecording path (459321, r=danderson). 2008-10-09 16:17:13 -07:00
Andreas Gal
35de6c0d9d Merge. 2008-10-08 21:02:57 -07:00
Andreas Gal
c974289da5 Support thin loops (iteration < 2) by closing the loop even if we are on the last iteration (456431, r=danderson). 2008-10-08 21:02:04 -07:00
danderson
c56579e021 Blacklist loop if its unstable and we don't recompile it (459174, r=gal). 2008-10-08 19:58:40 -07:00
Andreas Gal
afc99f7ccc In ifop, avoid eq0(eq0(x)), instead flip guard direction and use single eq0 (459164, r=danderson). 2008-10-08 17:49:54 -07:00
Andreas Gal
471ed73a35 Evaluate cond to true if value evaluates to true in non-fused if (459159, r=danderson). 2008-10-08 17:44:04 -07:00
Andreas Gal
fb350afe17 Non-fused ifs emit different comparison code than the interpreter uses (459151, r=danderson). 2008-10-08 16:23:54 -07:00
Jason Orendorff
3204ec178a Bug 459085 - TM: Number.toString traceable native is broken (r=gal) 2008-10-08 17:19:15 -05:00
Jason Orendorff
a27d101dab Bug 458735 - Improve internal API for traceable natives (r=brendan, nanojit r=edwsmith) 2008-10-08 17:08:33 -05:00
Andreas Gal
52f71e38dc Add missing comparison before letting the result of the conditional move flow into the guard for ordered boolean comparisons (457778, r=danderson). 2008-10-07 13:32:30 -07:00
Andreas Gal
1b0fd40e30 Trace push and pop for dense and sparse arrays (453734, r=brendan). 2008-10-07 11:00:16 -07:00
Brendan Eich
19e9638dc3 Bug 457920 - regexp-dna.js and generality want JSOP_GETELEM(dense array, "0") (r=mrbkap/gal). 2008-10-06 22:30:36 -07:00
Boris Zbarsky
cab53dbee6 Bug 456165. Trace |new Date()|. r=brendan 2008-10-06 20:28:22 -04:00
David Anderson
26d5db2cc5 Merge. 2008-10-06 16:48:14 -07:00
David Anderson
a4daa1c332 Fixed NaN handling again after backout of busted patch (bug 458472, r=gal). 2008-10-06 16:47:05 -07:00
Andreas Gal
40d1236378 Add support for writing back a boxed value when side-exiting on JSOP_RESUME (453734, r=brendan). 2008-10-06 16:22:57 -07:00
Andreas Gal
95b8fa8a84 Backed out changeset 2176f46b2702 (trying to identify cause for tinderbox burning). 2008-10-06 13:58:11 -07:00
David Anderson
c34cf06820 Fixed incorrect handling of NaN in ifop causing one new branch per iteration (bug 458472, r=gal). 2008-10-03 17:28:03 -07:00
Brendan Eich
502fb4e4c8 Bug 456831 - TM: Trace JSOP_SETLOCALPOP (r=mrbkap). 2008-10-02 15:39:25 -07:00
David Anderson
15a55dfe6d Fixed random test failures on AMD64, booleans were being loaded as 64-bit values. 2008-10-02 16:30:58 -05:00
Andreas Gal
49de341e4a Fixed more confusion of quads/numbers while emitting LIR (bug 458076, r=danderson). 2008-10-01 18:04:39 -05:00
Andreas Gal
8aa08cec2a For GETELEM/SETELEM we must check that its a native object first before trying to compare the objects shape to the shape of the global object to ensure its not aliasing the global object (457979, r=shaver). 2008-09-30 20:10:46 -07:00
Vladimir Vukicevic
f761c61b8e TM: move cmov_available setting into nj arch backends where appropriate 2008-09-30 17:15:09 -07:00
Andreas Gal
83ea7eb834 Merge. 2008-09-30 16:35:52 -07:00
David Mandelin
a9fa2e79d8 Don't trace a property access with a watchpoint (455413, r=brendan) 2008-09-30 13:34:17 -07:00
Andreas Gal
9adad6d33a Merge. 2008-09-30 13:02:53 -07:00
Andreas Gal
9c4eefd7ec Fix guarding in case of sparse array setelem (regression from 457580, r=danderson). 2008-09-30 13:02:23 -07:00
David Anderson
0804b51ac0 Fixed cmp number check logic for 64-bit environments (bug 457129, r=gal). 2008-09-30 11:45:00 -05:00
David Anderson
60ff7369b3 Fixed global object ownership change not aborting recording (bug 455173, r=gal). 2008-09-29 23:55:58 -05:00
David Anderson
75e7abcf38 Fixed crash when charCodeAt failed (with NaN) while recording (bug 457795, r=gal). 2008-09-29 23:20:34 -05:00
Brendan Eich
11db6aaf1d Always use JSBool (not bool sometimes, JSBool others) as JSVAL_IS_BOOLEAN's native slot type. 2008-09-29 22:27:43 -04:00
Andreas Gal
320dd48955 Add a resume point (JSOP_RESUME) immediately following JSOP_CALL (457789, r=mrbkap). 2008-09-29 18:49:40 -07:00
Andreas Gal
36e0e1fcbf Catch negative indexes at recording time. At runtime the builtins already check for us. Also guard for shape and setters/getters for non-dense integer index setelem case (57580, r=mrbkap). 2008-09-28 17:11:47 -07:00
Andreas Gal
5fdd5d2b67 Properly handle cmov and sse2 flags, and put them in a central place not into each platform-dependant assembler (457355, r=danderson). 2008-09-26 20:39:21 -07:00
Andreas Gal
5cc5fdedb8 Merge. 2008-09-26 19:21:27 -07:00
Andreas Gal
9960750440 Can't use JSVAL_IS_BOOLEAN on trace since boolean type contains undefined (457351, r=brendan). 2008-09-26 19:20:52 -07:00
David Anderson
ce71880114 Fixed a bug where no shape guard was emitted if a property was not found, causing it to remain unseen if added later. Abort in this case instead. (bug 457171, r=brendan) 2008-09-26 19:18:00 -07:00
Andreas Gal
884eabf3d5 Cleanup SETELEM, box early (in case we side exit on that) and don't set return value if INITELEM or followed by POP (457336, r=brendan). 2008-09-26 17:33:40 -07:00
Andreas Gal
93a292bd90 Merge. 2008-09-26 14:16:25 -07:00
igor
19701dd91b When replenishing the recovery double pool, detect if a GC happens (follow up work for 456826, r=gal). 2008-09-26 14:16:11 -07:00
Boris Zbarsky
fe2220afb1 Bug 456165 part 2. Trace Date.now. r=gal 2008-09-26 14:37:50 -04:00
Boris Zbarsky
a4b9ae6222 Bug 456370. Flush the fragment cache earlier on global shape mismatch. r=gal 2008-09-26 14:37:49 -04:00
Andreas Gal
7bb0a663e6 Use a pre-allocated pool of doubles to make sure we can safely recover in case of OOM or out of doubles (456826, r=brendan). 2008-09-25 19:11:48 -07:00
Brendan Eich
8030ce9609 Bug 457130 - TM: regexp lastIndex property not traced correctly (r=danderson). 2008-09-25 17:45:14 -07:00
David Anderson
3808521295 Workaround for intermittent js_GetClassObject failures (bug 457069, r=brendan). 2008-09-25 17:30:01 -07:00
Brendan Eich
9807c189fe Bug 457127 - TM: Crash on digg.com with adblock plus [@ ReconstructPCStack] (r=danderson). 2008-09-25 17:05:06 -07:00