Commit Graph

32 Commits

Author SHA1 Message Date
Nicholas Nethercote
8aeefe7a20 Bug 506139 - TM/nanojit: merge TR whitespace changes in the i386 backend. r=rreitmai. 2009-07-24 10:02:22 +10: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
Nicholas Nethercote
a87c89d0ef Bug 493125 - remove LIR_cs. r=edwsmith. 2009-07-02 12:21:28 +10: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
659a7a9b6c Implement oracle-based speculative fmod/fdiv/fmul demotion (474443, r=graydon,dvander). 2009-06-12 08:33:32 -07:00
Nicholas Nethercote
bf6590048b Bug 478340 - TM: kill many of the warnings when building 'js'. r=mrbkap 2009-02-19 11:17:31 -08:00
David Mandelin
39b9e72a0c Bug 475115: LIR_jtbl: jump tables to implement jsop_tableswitch, r=gal,r=edwsmith 2009-02-11 17:40:27 -08:00
Andreas Gal
fd4421f8bd Don't try to align fragment entry with nopl since some processors do not support it (473552, r=graydon). 2009-02-10 17:18:57 -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
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
Edwin Smith
d1925631b4 Bug 468484 - trivial cleanups to simplify armjit merge (r=me), r=danderson. 2008-11-13 12:52:26 -05: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
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
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
Steven Johnson
fbc6fd0ad9 Bug 468484 - internal tamarin-redux merge (mostly formatting), r=gal. 2008-10-20 15:52:11 -07: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
David Anderson
16b6dd740c Peephole optimize various LIR load patterns for x86 addressing (bug 444682, r=gal). 2008-11-04 16:34:13 -08:00
Graydon Hoare
6901121f8d Fix MSVC sensitivity to symbols called 'far' 2008-11-04 16:28:05 -08:00
Graydon Hoare
5cfd909934 Bug 462228 - Merge code-patching functions in nanojit, r=rreitmai. 2008-11-04 14:18:17 -08:00
Andreas Gal
4eafb60801 Add 16-bit non-volatile loads to nanojit (454301, r=danderson). 2008-10-30 14:17:42 -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
Graydon Hoare
bf84bf6273 Merge tamarin-redux (nanojit2) into tracemonkey (457786, r=edwsmith,gal,danderson). 2008-10-13 13:29:18 -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
f0c74cce54 Sync with tamarin-tracing/nanojit tip. 2008-07-31 13:28:12 -07:00
David Anderson
5dca2ad552 Synced nanojit with TT tip. 2008-07-16 14:21:31 -07:00
Andreas Gal
a81b83090e Sync with TT. 2008-07-15 13:06:05 -07:00
Andreas Gal
1dbb6a7d41 Backed out changeset 234230320093 (reducing code cache size due to startup issue.) 2008-07-09 23:42:27 -07:00
Andreas Gal
76abd00d44 Reduce code cache size until we fix the page allocation code to not touch all the pages at startup (nanojit issues, assigned to gal). 2008-07-09 17:37:41 -07:00
Andreas Gal
d263173a72 Avoid name clash between nanojit and jsinter.cpp (full patch queued up for tamarin). 2008-07-03 21:39:34 -07:00
Andreas Gal
e6b28ce4f8 Sync with TT-tip. 2008-06-30 15:33:41 -07:00
Andreas Gal
0e152648fe Added Native*.h from TT. 2008-06-18 20:57:17 -07:00