David Anderson
db7ed2cb48
Reorganized the fragment class hierarchy (bug 524620, r=gal).
2009-11-05 15:04:54 -08:00
Graydon Hoare
4990d750b2
Bug 526011 - Backed out changeset ccae3c736aed, premature landing.
...
--HG--
extra : convert_revision : ba29ca88bc1acdee7ae1a532f202ee99f08ce755
2009-11-04 10:15:41 -08:00
David Anderson
0ceba054d4
Removed Fragment::vmprivate and Fragment::root (bug 526011, r=graydon).
...
--HG--
extra : convert_revision : ccae3c736aeddd81211073095132a7feb70c33e7
2009-11-03 10:16:17 -08:00
Graydon Hoare
c421bb6e66
Bug 517530 - NJ merge: whitespace, equivalent code, PPC churn, r=dvander.
2009-09-18 13:31:09 -07:00
Julian Seward
b214130415
Bug 503424 - Add built-in support for compiled-trace and -guard profiling, r=graydon.
2009-09-15 15:05:53 -07:00
Andreas Gal
84094cb9d0
Remove remainder of now unused LIR_loop support code (513535, r=dvander).
2009-08-29 23:26:54 -07:00
Andreas Gal
14813a11f4
Remove some TM-only fields from nanojit (513187, r=dvander).
2009-08-28 14:36:37 -07:00
Graydon Hoare
24358ae9d8
Bug 511972 - More Fragment cleanups, r=dvander.
...
--HG--
extra : rebase_source : 186782bd96d8155eb3f0277616012636d6ebe469
2009-08-21 13:51:55 -07:00
Graydon Hoare
503c025d90
Bug 511309 - Delete class Fragmento and all uses of it, r=dvander.
...
--HG--
extra : rebase_source : 47047589288ac0758e0068307b5a8f393db97606
2009-08-20 17:22:47 -07:00
Graydon Hoare
ebe9c3f20b
Bug 511237 - Remove primary use of Fragmento from jsregexp, r=dmandelin.
2009-08-18 15:32:54 -07:00
Graydon Hoare
b8154cc364
Bug 504462 - Merge tamarin's CodeAlloc into tracemonkey, r=gal.
2009-07-15 16:50:01 -07:00
Graydon Hoare
2e92fcbbe3
Backed out changeset d0be9284ea67
2009-07-30 14:28:26 -07:00
Graydon Hoare
caf3859643
Bug 504462 - Merge tamarin's CodeAlloc into tracemonkey, r=gal.
2009-07-15 16:50:01 -07:00
Peter Van der Beken
c4e9e647fb
Backed out changeset c5433450795f (Bug 503990: make isStmt() table-driven).
2009-07-14 11:22:41 +02:00
Nicholas Nethercote
1704e7aacf
Bug 503990: make isStmt() table-driven. r=gal.
2009-07-14 13:08:38 +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
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
Nicholas Nethercote
c4b939cd8f
Bug 494639 - NJ: fix numerous LIR memory management problems, r=graydon
2009-06-16 14:01:31 -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
1a33faa263
Bug 492301 - nanojit: remove some dead code. r=edwsmith
2009-05-18 01:45:46 -04:00
Graydon Hoare
5689ffc3f8
Bug 474529 - Avoid artificial OOM conditions, r=gal.
2009-03-31 20:51:01 -07:00
Andreas Gal
1cbf259c3c
Improve blacklisting (479109, r=graydon).
2009-02-25 18:47:22 -08:00
Andreas Gal
d8bfd089e8
Backout 479109. Breaks trace-tests.
2009-02-23 12:29:08 -08:00
Andreas Gal
c36a8ab483
Improve blacklisting algorithm (479109, r=graydon).
2009-02-23 11:31:20 -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
Jason Orendorff
0e5b827700
Bug 477052 - Make some nanojit classes initialize their members. r=edwsmith,gal.
...
--HG--
extra : rebase_source : 2f2c77ab6f4d4e373466ef766f0532450af5d370
2009-02-11 18:40:54 -06:00
Graydon Hoare
5a88071db0
Bug 477425 - Fix pathological doubling in Fragmento uncovered by new pressure on lirbuf, r=jorendorff.
2009-02-10 10:08:58 -08:00
Graydon Hoare
d459aeaced
Bug 477425 - Allocate TreeInfo and UnstableExit in LirBuffer, r=gal.
2009-02-09 16:49:25 -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
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
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
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
Graydon Hoare
0fc5a42ca4
Bug 468484 - Change Fragmento's fragment map from a pointer to a member, r=gal.
2008-12-08 15:23:41 -08:00
Andreas Gal
e346e5cf60
Eliminate mergeCount from fragments since its unused (468391, r=danderson).
2008-12-07 19:13:50 -08:00
Roy Tam
d3c6e1f3d0
Bug 453636 Make nanojit build with VC7.1 r=danderson a191=beltzner
2008-11-27 10:21:22 +00: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
e609f0bb95
Cleanup GuardRecord, SideExit, and InterpStruct and extract VM-dependant fields (463313, r=danderson).
2008-11-07 15:23:43 -08:00
David Mandelin
c92c2000cc
Bug 461050 WIP: compiling simple regexps, r=danderson,agal
2008-11-04 14:51:51 -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 Mandelin
d0a8376658
Bug 462412: API to delete a single fragment, r=danderson
2008-11-03 16:14:44 -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