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
f3194e9335
Move details of LIns format into LIns class itself (500053, r=dvander).
2009-06-23 14:51:15 -07:00
Nicholas Nethercote
7595f38896
Remove unused field 'parent' from class LabelMap (bug 499400, r=gal).
2009-06-23 14:11:09 +10:00
Nicholas Nethercote
ae3ac6a734
Remove unused isCse() and LirBuffer() args (bug 499260, r=edwsmith).
2009-06-22 14:48:16 +10:00
Nicholas Nethercote
a5db26a0e2
Fix assertion failure in trace-test.js with TRACEMONKEY=verbose (bug 499154, r=graydon).
2009-06-22 10:48:36 +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
Nicholas Nethercote
c4b939cd8f
Bug 494639 - NJ: fix numerous LIR memory management problems, r=graydon
2009-06-16 14:01:31 -07:00
Nicholas Nethercote
de28e96de9
NJ: fix load opcode checking, r=graydon.
2009-06-15 12:04:06 -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
96dd8702a9
Bug 495028. nanojit: add opcode checks to all LIR get/set methods. r=edwsmith
2009-06-06 12:58:11 -04:00
Julian Seward
a61d112402
Bug 494157 - nanojit debug output uses inconsistent output channels. r=jorendorff.
2009-05-26 13:14:41 -05:00
Graydon Hoare
e4863bdb1c
Bug 494084 - TM: Lower maximum LIR skip size further, r=gal.
2009-05-21 18:44:37 -07:00
Graydon Hoare
606ab3ebdf
Backout alignment-breaking patches for Bug 493821.
2009-05-19 20:26:31 -07:00
Andreas Gal
41689550b8
Bug 493821 - NJ: Fix sign-extension in imm64, r=graydon.
2009-05-19 18:27:01 -07: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
Nicholas Nethercote
9df38f0476
Bug 488775 - TM: widen LIR instructions. r=graydon,edwsmith
2009-05-09 14:38:34 -04: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
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
Vladimir Vukicevic
4aacd882a6
b=476786; tracemonkey crash with verbose in debug mode; r=gal
2009-02-03 21:20:59 -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
Ginn Chen
9473943bf6
Bug 474757 Several build failures on Solaris build for js/src r=danderson
2009-01-23 15:57:54 +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
ba3dc13800
Bug 468484 - Minor adjustments to match changes in tamarin, r=gal.
2008-12-10 17:25:46 -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
cdbe1015e3
Don't attempt to do CSE across labels (465276, r=danderson).
2008-11-17 00:05:29 -08:00
Jeff Walden
c90c1d272e
Bug 463697 - Need an equivalent to jsopcode.tbl, but for LIR opcodes/instructions, take two. r=gal, r=edwsmith on the first iteration as well
2008-11-08 01:45:50 -08:00
Andreas Gal
51726b48f9
Backed out changeset cb559a14ad77
2008-11-10 19:14:00 -08:00
Jeff Walden
932287a573
Bug 463697 - Need an equivalent to jsopcode.tbl, but for LIR opcodes/instructions. r=gal, r=edwsmith
2008-11-08 01:45:50 -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
db369008ec
Fixed memory leak in LInsHashSet (bug 462826, r=gal).
2008-11-03 19:43:47 -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
Graydon Hoare
95bed8b2ed
Bug 461205 - make callee-save LIR_param use optional. r=gal,edwsmith
2008-10-22 14:32:37 -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
Edwin Smith
d238c8bb21
remove dead refs to non-existant class RegionTracker
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