Commit Graph

163 Commits

Author SHA1 Message Date
Edwin Smith
1e964d04a7 Bug 507042 - class BitSet doesn't need GC support, r=dvander. 2009-07-08 16:21:55 -04:00
Edwin Smith
da15262810 Bug 507039 - Remove _startingIns from Assembler, r=nnethercote. 2009-07-23 13:46:44 -04:00
Edwin Smith
8441271ced Bug 507036 - Move valgrind icache-flush notification to CodeAlloc, r=dvander. 2009-07-23 11:55:57 -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
93a1b3630d Bug 507087 - TM/nanojit: change _argtypes fields from 2 bits to 3 bits (TR sync). r=rreitmai,jorendorff. 2009-07-30 10:44:34 +10:00
Andreas Gal
7c40de183a Bug 501275 - TM: Crash [@ nanojit::Assembler::nPatchBranch]. r=dvander 2009-07-26 20:28:46 -04:00
Nicholas Nethercote
d5dbe8400a Bug 506177 - TM/nanojit: remove dead 'isfar' argument from asm_branch(). r=rreitmai. 2009-07-24 15:41:32 +10:00
David Mandelin
ae3b1ce36c Bug 505314: don't use LIR_ialloc with size 0, r=gal 2009-07-21 12:14:33 -07:00
Jacob Bramley
00bf423543 Backing out a broken part of 99dfb2001094. (no bug) 2009-07-20 11:34:34 +01:00
Jacob Bramley
b5faafb00f Use ARM's 'Operand 2' encoding for immediates. Also fixes bug 504637. (490968, r=vladimir) 2009-07-20 10:56:44 +01:00
Luke Wagner
0c16520e8b Bug 406271: add quantifier support for regexp->native compiler, r=dmandelin 2009-07-16 17:17:35 -07:00
Robert Sayre
53d13821c6 Merge mozilla-central to tracemonkey. 2009-07-16 11:46:05 -04:00
Neil Rashbrook
7d7253ddaa Bug 501609 Make js/src build with VC7.1 r=graydon 2009-07-15 20:31:26 +01:00
Nicholas Nethercote
acc2840ef2 Bug 504213: nanojit: rename LIR_alloc, LIR_addp, LIR_param to match tamarin-redux. r=graydon. 2009-07-15 10:00:43 +10:00
Julian Seward
b9dc1bb9d6 Bug 496693 - NJ: comment and refactor DeadCodeFilter vs Assembler::gen interactions, r=edwsmith.
--HG--
extra : rebase_source : e675f824946d4a8bb83b2aed8ff1911c8b23caee
2009-07-13 11:50:42 -07: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
9360d761e7 Bug 499605: localize _labels, _patches and pending_lives in Assembler. r=edwsmith. 2009-07-09 08:54:31 +10:00
Nicholas Nethercote
ae95b81b57 Bug 502788: avoid many redundant NULL comparisons in the LirReader pipeline. r=edwsmith. 2009-07-09 08:34:22 +10:00
Nicholas Nethercote
ab0511054e Bug 502539: move displacements into load instructions. r=gal,edwsmith. 2009-07-07 09:26:12 +10:00
Andreas Gal
0324bd664d Cleanup alignment cast for jump tables (502242, r=jwalden). 2009-07-03 16:55:22 -07:00
Nicholas Nethercote
a87c89d0ef Bug 493125 - remove LIR_cs. r=edwsmith. 2009-07-02 12:21:28 +10:00
Nicholas Nethercote
5842226e62 Bug 492866: implement variable-width LIR. r=graydon. 2009-07-01 14:18:55 +10:00
Nicholas Nethercote
8de6422b09 Backed out changeset ae16e5919d19 (tree was closed for talos maintenance). 2009-07-01 11:33:54 +10:00
Nicholas Nethercote
4af0dc60ae Make LIR variable-width (bug 492866, r=graydon). 2009-07-01 11:13:22 +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
791b4c9a77 Backed out changeset 55a8910d8436 (no consensus whether patch should be applied, bug 499664). 2009-06-23 15:50:23 -07:00
Andreas Gal
5786928320 Eliminate 64-bit LIR_callh hack (499664, r=dvander). 2009-06-23 15:11:49 -07:00
Andreas Gal
f3194e9335 Move details of LIns format into LIns class itself (500053, r=dvander). 2009-06-23 14:51:15 -07:00
Jacob Bramley
257161448b Fix crash on ARM caused by spilling registers in asm_mmq. (495239, r=vladimir) Follow-up: Reveals (or creates) some failures documented in bug 499889. 2009-06-23 09:36:53 +01:00
Nicholas Nethercote
ae3ac6a734 Remove unused isCse() and LirBuffer() args (bug 499260, r=edwsmith). 2009-06-22 14:48:16 +10:00
nnethercote@mozilla.com
015cf5504c remove LIR_calli and LIR_fcalli (492478, r=edwsmith,jorendorff). 2009-06-19 10:20:26 +01:00
Andreas Gal
ac13e56ffd Backed out changeset 1b5584a4eba4. Accidentally committed some unreviewed changes. 2009-06-19 09:42:34 +01:00
Jacob.Bramley@arm.com
7ecc26f135 Remove remaining obsolete ARM Thumb code (486535, r=gal). 2009-06-19 09:37:38 +01:00
Andreas Gal
659a7a9b6c Implement oracle-based speculative fmod/fdiv/fmul demotion (474443, r=graydon,dvander). 2009-06-12 08:33:32 -07:00
Julian Seward
a61d112402 Bug 494157 - nanojit debug output uses inconsistent output channels. r=jorendorff. 2009-05-26 13:14:41 -05:00
Nicholas Nethercote
c0f23c4e08 Bug 492491 - nanojit: convert some error() tests to asserts. r=edwsmith 2009-05-18 02:27:12 -04:00
Nicholas Nethercote
a03f3e7b1a Bug 492490 - nanojit: move Assembler::findVictim() from RegAlloc.cpp to Assembler.cpp 2009-05-18 02:20:59 -04:00
Nicholas Nethercote
90746fda0d Bug 490947 - nanojit: remove reservation table. r=gal,edwsmith 2009-05-18 02:15:24 -04:00
Nicholas Nethercote
1a33faa263 Bug 492301 - nanojit: remove some dead code. r=edwsmith 2009-05-18 01:45:46 -04:00
Nicholas Nethercote
9581ac0331 Bug 492292 - nanojit: remove duplicated LIns predicates. r=edwsmith 2009-05-18 01:38:00 -04:00
Jacob Bramley
7dd0b8fd55 Bug 486669 - TraceMonkey: The ARM-specific _nSlot pointer should be reset along with _nIns. r=vlad,edwsmith 2009-05-09 15:35:56 -04:00
Nicholas Nethercote
9df38f0476 Bug 488775 - TM: widen LIR instructions. r=graydon,edwsmith 2009-05-09 14:38:34 -04:00
Jeff Walden
c9680230c4 Bug 473117 - Rejigger how guards use side exits, and fix an erroneous comment. r=graydon 2009-04-18 16:47:23 -07:00
Jacob Bramley
3c4a821492 bug 486675 - always using setError to set _err 2009-04-06 13:32:46 +02:00
Vladimir Vukicevic
eb82870ba4 b=484561; [arm] fix EABI calling convention; clean up asm_call; r=graydon 2009-03-27 14:31:53 -07: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
Vladimir Vukicevic
b992e5da9e [arm] b=481761; ARM ALU step 1; r=graydon 2009-03-20 15:53:14 -07:00
Nicholas Nethercote
ea15e54ba4 Bug 475876: change --with-valgrind to --enable-valgrind and add hooks to tell valgrind about the JIT's self-modifying code. r=gal (JIT parts), r=luser (build config parts). 2009-03-05 13:24:03 -08:00
Leon Sha<leon.sha@sun.com>
604e62a813 Bug 476042 - Integrate sparc nanojit intro tracemonkey. Put the flush instruction cache code to the correct place. r=gal 2009-02-24 12:46:27 +08: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
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
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
Jason Orendorff
0fcee1ed9f Bug 477713 - Allow LIR_ret at end of trace. r=edwsmith. 2009-02-10 13:23:27 -06: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
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
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
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
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
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
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
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
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
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
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
Steven Johnson
13f8b6629c Bug 468484 - Macro-ize calls to new/delete to account for MMgc interactions, r=gal. 2008-10-20 15:51:13 -07:00
David Anderson
14bfd2d9ab Fixed nanojit crashing when the reservation table filled (bug 460511, r=rickr). 2008-12-04 11:41:43 -08:00
Jesse Ruderman
e23679569a Remove '\n' from NanoAssertMsgf calls (made redundant by the patch in bug 452674) 2008-11-12 18:02:34 -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
David Anderson
a6c715fb81 Fixed memory leak in nanojit's LabelStateMap (no bug, r=gal). 2008-11-04 19:22:13 -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
Graydon Hoare
5cfd909934 Bug 462228 - Merge code-patching functions in nanojit, r=rreitmai. 2008-11-04 14:18:17 -08:00
David Anderson
65f7adbd31 Fixed OOM handling when starting a recorder or assembler (bug 451322, r=gal+rreitmai). 2008-11-03 16:10:20 -08:00
David Mandelin
f8d1b7798b Preserve param1 over loop iters if it is used, desk r=danderson 2008-10-31 16:48:14 -07: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
Vladimir Vukicevic
d2f0736eb6 [arm] misc codegen fix 2008-10-22 11:02:24 -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
Rick Reitmaier
2cc651e33b refactor Assembler.cpp ; passing acceptance on mac 2008-10-20 10:15:07 -07:00
Edwin Smith
1896977ce5 fixes to enable ARM nanojit to build, at least 2008-10-20 10:15:07 -07:00
Graydon Hoare
bf84bf6273 Merge tamarin-redux (nanojit2) into tracemonkey (457786, r=edwsmith,gal,danderson). 2008-10-13 13:29:18 -07: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
Vladimir Vukicevic
a4ec50d569 Add VFP for floating point ops to nanojit ARM backend. 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
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
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
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
David Anderson
0f46c5d568 Fixed some bugs in the AMD64 port, still crash in 5 sunspider tests. 2008-08-18 16:23:37 -07:00
David Anderson
b39fadd1f3 Updated nanojit for the AMD64 patch. 2008-08-18 12:32:14 -07:00
David Anderson
40213894ff Fixed nanojit using a variable before it got set (verbosity mode only it seems). 2008-08-12 10:45:24 -07:00
David Anderson
1b623f7d25 Added explicit deallocation (bug 443500, r=gal) 2008-08-11 16:01:21 -07:00
Andreas Gal
f0c74cce54 Sync with tamarin-tracing/nanojit tip. 2008-07-31 13:28:12 -07:00