Commit Graph

117 Commits

Author SHA1 Message Date
Rich Walsh
26a48fb72d Bug 510657 - simple OS/2 build fix in nanojit/avmplus, r=graydon
--HG--
extra : rebase_source : 7d4d1a75b659862460ecccdef80ce95fca119e32
2009-08-19 13:42:46 +02:00
Edwin Smith
6652a33cf1 Bug 509833 - Convert live() analyzer to Allocator, r=gal. 2009-08-04 10:18:25 -04:00
Edwin Smith
10163c0cd1 Bug 507042 - class BitSet doesn't need GC support, r=dvander.
--HG--
extra : rebase_source : ad1835e60e926a8cdb570711b9deec0e1c40ead1
2009-07-08 16:21:55 -04:00
Edwin Smith
e299aec675 Bug 507031 - Replace use of avmplus:String with Allocator and char* in nanojit::LabelMap and LirNameMap, r=dvander.
--HG--
extra : rebase_source : 3c59dc7bff1ece5ac282da9b0cb8820674345684
2009-07-15 12:34:17 -04:00
Graydon Hoare
b8154cc364 Bug 504462 - Merge tamarin's CodeAlloc into tracemonkey, r=gal. 2009-07-15 16:50:01 -07:00
Jacek Caban
5da4c824d2 Bug 505123 - js3250.dll linking fails on MinGW on fastcall inline functions, a=jacek, r=graydon. 2009-08-06 13:40:05 -07:00
Graydon Hoare
2e92fcbbe3 Backed out changeset d0be9284ea67 2009-07-30 14:28:26 -07:00
Graydon Hoare
ef5f70907e Backed out changeset fc66e3f4afc9 2009-07-30 14:27:10 -07:00
Graydon Hoare
402e209fc1 Backed out changeset 83f39b3e8b10 2009-07-30 14:23:35 -07:00
Edwin Smith
1e964d04a7 Bug 507042 - class BitSet doesn't need GC support, r=dvander. 2009-07-08 16:21:55 -04:00
Edwin Smith
4179e603b3 Bug 507031 - Replace use of avmplus:String with Allocator and char* in nanojit::LabelMap and LirNameMap, r=dvander. 2009-07-15 12:34:17 -04:00
Graydon Hoare
caf3859643 Bug 504462 - Merge tamarin's CodeAlloc into tracemonkey, r=gal. 2009-07-15 16:50:01 -07:00
Nicholas Nethercote
d2f31c8fbd Bug 504465 - NJ: Move GC classes to namespace MMgc, r=graydon. 2009-07-16 11:50:27 -07:00
Neil Rashbrook
7d7253ddaa Bug 501609 Make js/src build with VC7.1 r=graydon 2009-07-15 20:31:26 +01:00
Graydon Hoare
e404f743cd Bug 503593 - NJ: whitespace and modeline cleanup, r=gal.
--HG--
extra : rebase_source : c7fcc1acaadb2264796a3ee7a20866eecc4dc484
2009-07-10 12:58:34 -07:00
Julian Seward
b96eed42da Bug 494864 - Make nanojit debug output easier to follow, r=graydon. 2009-06-24 20:32:00 -07:00
Andreas Gal
a0182c819c Correctly disable conditional moves on platforms that do not support them (497455, r=graydon). 2009-06-10 15:21:10 -07:00
Jacob Bramley
d7dc2e67bf Bug 487416 - TraceMonkey: Improve run-time detection of ARM processor features. r=vlad 2009-05-09 16:14:38 -04:00
Robert Sayre
150b7d8a28 Merge tracemonkey to mozilla-central. 2009-03-24 13:49:05 -04:00
Jim Blandy
9391012cb0 Bug 479258: Don't define <stdint.h> types in public headers. r=brendan
On systems that don't have <stdint.h> (i.e., Microsoft, which is
tragically underfunded and cannot spare the resources necessary to
provide and support this header: http://tinyurl.com/absoh8),
SpiderMonkey header files should not introduce definitions for these
types, as doing so may conflict with client code's attempts to provide
its own definitions for these types.

Instead, have jstypes.h define JS{Int,Uint}{8,16,32,64,Ptr} types
based on configure's results, and make jsstdint.h into an uninstalled
header for use within SpiderMonkey that does whatever is necessary to
get definitions for the <stdint.h> types.

The changes to make the appropriate SpiderMonkey .cpp files #include
"jsstdint.h" explicitly are in a separate patch, for ease of review.
2009-03-18 11:38:15 -07:00
Leon Sha<leon.sha@sun.com>
128a82a274 Bug 476042 - Integrate sparc nanojit intro tracemonkey. r=gal, r=jim. 2009-02-16 10:10:03 +08:00
Graydon Hoare
195e361c59 Bug 477425 - Back out lirbuf-based allocation of fragments and treeinfos, r=gal. 2009-02-11 21:59:57 -08:00
Graydon Hoare
d459aeaced Bug 477425 - Allocate TreeInfo and UnstableExit in LirBuffer, r=gal. 2009-02-09 16:49:25 -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
Vladimir Vukicevic
d317d0075d b=480796; detect whether ARM chip has VFP and/or v6t2 instructions; r=gal 2009-03-20 15:53:33 -07: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
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
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
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
Andreas Gal
43daeaca87 Don't spill type definitions in avmplus.h into the global namespace (462288, r=danderson). 2008-11-07 15:52:51 -08:00
Andreas Gal
e609f0bb95 Cleanup GuardRecord, SideExit, and InterpStruct and extract VM-dependant fields (463313, r=danderson). 2008-11-07 15:23:43 -08:00
Graydon Hoare
9198f045ad Bug 462228 - Add interface to disconnect and reconnect loops in nanojit, r=gal. 2008-11-04 14:20:19 -08:00
David Anderson
bf1a78f4fe Implemented multiple type specialized trees per entry point (bug 450833, r=gal) 2008-10-27 20:42:49 -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
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
Graydon Hoare
bf84bf6273 Merge tamarin-redux (nanojit2) into tracemonkey (457786, r=edwsmith,gal,danderson). 2008-10-13 13:29:18 -07: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
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
Neil Rashbrook
6f6de04b5e Make nanojit build non-debug with VC7.1 (bug 455210, r=danderson). 2008-09-24 10:21:49 -07:00
David Anderson
ccd5e825b9 Fixed jstracer's operator delete leaking out into other shared libraries (bug 452721, r=gal). 2008-09-23 18:12:53 -07:00
Andreas Gal
da5081c842 Properly calculate tree exit/call guards (bug 453397, r=danderson). 2008-09-19 18:45:57 -07:00
Andreas Gal
dab25898eb Don't export operator new/delete except if really needed (452721, r=danderson). 2008-09-16 13:57:59 -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
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
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