Commit Graph

282 Commits

Author SHA1 Message Date
Graydon Hoare
d459aeaced Bug 477425 - Allocate TreeInfo and UnstableExit in LirBuffer, r=gal. 2009-02-09 16:49:25 -08:00
David Mandelin
e38c9322a4 Bug 476560: nanojit assembler needs to clear its state before each compilation, r=gal 2009-02-06 11:59:54 -08:00
Andreas Gal
0491e2d094 Add skip() to LirFilter so we can pass skip-requests through instead of going to the LirBufWriter directly (477089, r=shaver). 2009-02-05 11:14:44 -08:00
David Mandelin
e145a4b2b7 Fix warning for unhandled switch cases 2009-02-04 18:58:07 -08:00
David Mandelin
63ebd4662c Fix initialization order warning 2009-02-04 18:49:54 -08:00
Vladimir Vukicevic
4aacd882a6 b=476786; tracemonkey crash with verbose in debug mode; r=gal 2009-02-03 21:20:59 -08:00
Andreas Gal
424b5e8997 Detect OOM condition and flush code cache when destroying the recorder and don't enter endAssembly when OOM (475821, r=danderson). 2009-01-28 15:12:31 -08:00
Graydon Hoare
170e5b5921 Bug 473688 - provide a 2-level hash map (global, pc) -> tree, r=gal. 2009-01-26 19:53:19 -08:00
Robert Sayre
cd3999104d Merge m-c to tm. 2009-01-26 13:54:59 -08:00
David Anderson
0e4418db16 Bug 473880 - TM: Add a way to keep stack values alive without emitting guard code. r=gal. 2009-01-23 15:21:55 -06:00
Vladimir Vukicevic
63e0570b8d [arm] fix up ARM floating point comparisons; fixes ARM trace-test (relanding) 2009-01-23 00:53:15 -08:00
Andreas Gal
1d277bc633 Backout all patches since last mozilla-central merge (Thu Jan 22 19:14:02 2009 -500 by sayrer). 2009-01-25 02:58:22 -08:00
David Anderson
ee93602364 Bug 473880 - TM: Add a way to keep stack values alive without emitting guard code. r=gal. 2009-01-23 15:21:55 -06:00
Vladimir Vukicevic
7679b7a4be [arm] fix up ARM floating point comparisons; fixes ARM trace-test 2009-01-23 00:53:15 -08:00
Daniel Holbert
2a7d88e05a Bug 473236 - Remove executable bit from files that don't need it. (Only changes file mode -- no code changes.) r=bsmedberg 2009-01-21 22:55:08 -08:00
Ginn Chen
ea9689bd2a Bug 474757 Several build failures on Solaris build for js/src r=danderson 2009-01-23 16:09:27 +08:00
Ginn Chen
9473943bf6 Bug 474757 Several build failures on Solaris build for js/src r=danderson 2009-01-23 15:57:54 +08:00
Robert Sayre
e21c1a1d06 Merge m-c to tracemonkey.
--HG--
rename : js/src/js.cpp => js/src/shell/js.cpp
2009-01-14 18:25:22 -05:00
Andreas Gal
46c4fe89b3 Trampolines can be 2 words, so take that into account when reserving space for LIR_call instructions (473225, r=danderson). 2009-01-12 19:46:13 -08:00
Andreas Gal
4fb7be0fff Backed out changeset 8775c279e59c 2009-01-12 19:39:55 -08:00
Andreas Gal
162f124fd9 Trampolines can be 2 words, so take that into account when reserving space for LIR_call instructions (473225, r=graydon). 2009-01-12 17:16:21 -08:00
Andreas Gal
4a9dbdaf12 Push a dummy copy of EBP onto the stack to make sure EBP is aligned in the new stack frame (472791, r=graydon,edwsmith). 2009-01-09 15:18:00 -08:00
Andreas Gal
6a2d183fee Stop generating LIR when running out of memory in the regexp compiler (471924, r=danderson). 2009-01-02 15:50:56 -08:00
Andreas Gal
a59109830e Use a single lirbuf for the tracer and rewind lirbuf during GC (471821, r=danderson). 2009-01-02 10:55:02 -08:00
David Mandelin
90baccb99f Bug 471602 part 1: make regexp compiler use one shared LIR buffer, r=gal 2008-12-31 16:41:33 -08:00
Andreas Gal
21b0d26f45 Allocate the next page to be used in a lirbuf early to avoid running OOM during a page overflow (471316, r=danderson). 2008-12-30 17:03:43 -08:00
Graydon Hoare
67237b98c7 Bug 469012 - crashing LirBufWriter::insLinkToFar, r=danderson. 2008-12-19 16:20:51 -08:00
Graydon Hoare
77e4ed2e26 Bug 464862 - Calculate call-argument deltas relative to last word of LirCallIns, not first, r=danderson. 2008-12-19 16:20:13 -08:00
Jim Blandy
b3a9d80456 Bug 469225: Make js/src/configure take a --disable-arm-vfp option. r=vladimir
This controls whether NJ_ARM_VFP is #defined in the SpiderMonkey
build.  By default it is enabled.

Note that commenting out the hard-wired definition of NJ_ARM_VFP in
js/src/nanojit/NativeARM.h makes that line of the file match what's in
tamarin-redux, so hopefully there won't be conflicts with whatever
arrangement Adobe comes up with to control this.
2008-12-19 10:20:36 -08:00
Neil Rashbrook
13238265ed Bug 469289 Make nanojit build with VC7.1 r=danderson 2008-12-13 23:45:38 +00:00
Graydon Hoare
aac4a6a13a Bug 468484 - Back out further arm-wince breakage from recent merging activity. 2008-12-11 16:11:29 -08:00
Graydon Hoare
bb7e9793cf Bug 468484 - back out most of changeset 2963765d5585 and ifdef-guard members of avmplus::Config, fix arm build.
* * *
Bug 468484 - ifdef-guard members of avmplus::Config structure that broke ARM build.
2008-12-11 13:50:55 -08:00
Jeff Walden
6afac16038 Bug 465255 - Rewrite TraceRecorder::cmp, take five. (Three, sir!) Three! r=gal 2008-12-08 21:11:56 -08:00
Graydon Hoare
3cbd1cd998 Bug 450000 - Back out nanojit jump-patching machinery, r=danderson. 2008-12-10 17:31:17 -08:00
Graydon Hoare
ba3dc13800 Bug 468484 - Minor adjustments to match changes in tamarin, r=gal. 2008-12-10 17:25:46 -08:00
Graydon Hoare
37cfe58e72 Bug 468484 - Rename avmplus::AvmConfiguration, adjust sites of use, r=gal. 2008-12-10 17:19:40 -08:00
Jim Blandy
a04892f62e Bug 465640: Use autoconf to declare stdint types on platforms that don't have stdint.h r=bsmedberg
At configure time, check for <stdint.h>.  If we don't have it, find
integer types of various sizes.  On Windows, where we can't run
compilation tests in configure, hard-code definitions suggesting the
use of the built-in __intN types for the exact-size types, and
<stddef.h> for the pointer-sized types.

Use namespace-clean names for the preprocessor macros we define.
Since these types are used in the public JavaScript API, the configure
script needs to place the definitions it finds in js-config.h, the
installed configure-generated header, so it can be used by jsapi.h and
that gang.

New header js/src/jsstdint.h does what it takes to get definitions for
the exact-size and pointer-size integral types.  It includes
<stdint.h> when available, uses the types found by configure.in to
define the {,u}int{8,16,32,64,ptr}_t types itself, or uses the __intN
types and the <stddef.h> header.

Remove now-unnecessary and possibly conflicting definitions of intN_t
types from js/src/nanojit/avmplus.h.
2009-01-13 10:50:24 -08:00
Edwin Smith
b5094e7c4a Bug 468484 - isQuad(LIR_callh) on 32bit cpu's should be false (r=dvander+), r=danderson. 2008-11-20 15:39:45 -05:00
Edwin Smith
6415706f0d Bug 468484 - Fixed a couple more small nanojit injections, r=danderson. 2008-11-19 15:16:20 -05:00
Rick Reitmaier
a70c5b7d48 Bug 468484 - LirBuffer has been modified to provide advance warning of out of memory (OOM) conditions, r=danderson.
LirBuffer has been modified to provide advance warning of
out of memory (OOM) conditions.

A new page is allocated LIR_BUF_THRESHOLD instructions
prior to reaching the end of page.  If the page allocation fails,
call to outOmem() will return true.  The buffer can still be
safely written to during during this period but it is assumed
the higher level code will catch this condition and handle
it appropriately as writing LIR_BUF_THRESHOLD instructions
past this point will cause a crash.

This opportunity was also taken to re-factor the code for
LirBufWriter making it more platform agnostic.
- All non-LInsp data in the instruction stream is now managed
  through structures that overlay the memory region.
- prepFor() was added to replace the multiple
  ensureReferenceable() calls for each instruction.
- insCall() was also modified somewhat in that the
  arguments are now stored growing downwards from
  the position of the pseudo instruction LirCallIns.

CodegenLIR now has LirBuffer checks at the granularity
of each emitXXX() call that is exposed publicly.  This seemed
like a reasonable approach since a client could potentially
call at this level indefinitely.  If we want to reduce the frequency
of these checks then we'd have to push the check up into the
verifier.

Assembler OOM handling has also changed.  The variable
_startingIns was added and contains the location at which
the assembler began writing code for the current
begin/assem/end sequence.   If an OOM condition occurs
the assembler will reset the current instruction pointer
to _startingIns, effectively overwriting the code that has
been generated.  This allows the assembler to produce
code indefinitely (and without error) until the upper layers
have noticed the error and respond accordingly.

The constant LARGEST_UNDERRUN_PROT was added
and needs to be set to a platform specific value that is
equal to or greater than the number of NIns written for
the largest possible instruction.  i.e.  you cannot write
more than this number of NIns to the buffer for each
call to underrunProtect().
2008-11-14 12:46:35 -08:00
Edwin Smith
d1925631b4 Bug 468484 - trivial cleanups to simplify armjit merge (r=me), r=danderson. 2008-11-13 12:52:26 -05:00
Leon Sha<leon.sha@sun.com>
314e79c76f Bug 468484 - Bug 463182 - Can not build tamarin-redux on solaris with Sun compiler. stejohns: review+, r=gal. 2008-11-06 13:37:37 +08:00
Edwin Smith
774d38113c Bug 468484 - Fix cascading register spilling bug 462522 (r=rreitmai+), r=danderson. 2008-10-31 15:56:02 -04:00
Edwin Smith
903336fe43 Bug 468484 - Fixed bug causing too much spilling, other arm tweaks, r=danderson. 2008-10-28 15:16:05 -04:00
Edwin Smith
795ab907f0 Bug 468484 - fix boundary bug injected by CallInfo change, r=gal. 2008-10-22 15:18:41 -04:00
Steven Johnson
4dfea32fd4 Bug 468484 - redid nMarkExecute() to fix the bug. Now it always does exactly one page, r=gal. 2008-10-21 18:34:10 -07:00
Graydon Hoare
a6428d33c2 Bug 468484 - Re-insert asm-counting code lost in previous redux-tracemonkey merge, r=gal. 2008-12-09 11:53:26 -08:00
Jeff Walden
e48c310d01 Dangit, why do the tests run correctly locally in small batches? Backing out bug 465255... 2008-12-08 22:19:54 -08:00
Jeff Walden
f143157358 Bug 465255 - Rewrite TraceRecorder::cmp, take two. r=gal 2008-12-08 21:11:56 -08:00
Edwin Smith
4ab0561335 Bug 468484 - make asm_output[123] varadic, and add some LIR instruction comments, r=gal. 2008-10-21 14:53:14 -04:00