Commit Graph

72 Commits

Author SHA1 Message Date
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