Commit Graph

62 Commits

Author SHA1 Message Date
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
Edwin Smith
ad06720f03 Bug 510078 - Convert LirNameMap to HashMap<> and Allocator, r=gal.
* * *
Don't allocate CodeAlloc with GC and dont extend GCFinalizedObject (bug 506390 r=tharwood+)

* Change PageMgr::CodeAlloc from pointer to embedded instance.
* Assembler takes CodeAlloc& now, like it already does for Allocator&
* PoolObject.cpp|h now use VMCFG_NANOJIT instead of (deprecated) FEATURE_NANOJIT
  (both #defines are equivalent)

--HG--
extra : rebase_source : 90847a654d7f669a4c2ac364dd9aae7be38cae77
2009-08-04 14:18:38 -04:00
Edwin Smith
3967b233d5 Bug 510036 - Convert LabelMap to HashMap<> and Allocator, r=gal.
--HG--
extra : rebase_source : 4f1385922085fe086084c418aa22dcc4cc4c1961
2009-08-04 13:56:48 -04:00
Edwin Smith
9c489db37c Bug 509893 - Convert NInsList to SeqBuilder<> and Allocator, r=gal.
--HG--
extra : rebase_source : ca2b073138301d78829fa1096e0cb3da607073de
2009-08-04 13:21:15 -04:00
Edwin Smith
7de6b2bc04 Bug 509890 - Convert InsList to SeqBuilder<> and Allocator, r=gal.
--HG--
extra : rebase_source : 22303e739a0a6669c634595149028872aa7bd334
2009-08-04 13:11:53 -04:00
Edwin Smith
3a5203b81c Bug 509885 - Convert NInsMap to Allocator, r=gal.
--HG--
extra : rebase_source : 3586f950b5698052af74081f8f986f32dc57fa68
2009-08-04 11:06:46 -04:00
Graydon Hoare
77e519e3e4 Bug 509883 - Grab bag of formatting churn, r=gal.
--HG--
extra : rebase_source : 05d7b651a381a9e5daca47a2140bd6f1b1154a5b
2009-08-04 11:33:14 -04:00
Edwin Smith
a65666cc5a Bug 509856 - convert LabelStateMap and RegAllocMap to Allocator based containers, r=gal. 2009-08-04 10:48:48 -04:00
Edwin Smith
1913010941 Bug 509818 - Replace StringList with SeqBuilder<char*>, use Allocator, r=dvander. 2009-08-04 09:54:47 -04:00
Edwin Smith
74be99c7ff Bug 509609 - Don't allocate CodeAlloc with GC and dont extend GCFinalizedObject, r=dvander. 2009-08-04 14:53:56 -04:00
Edwin Smith
a81fcd433a Bug 509596 - Remove some dead code, r=dvander.
--HG--
extra : rebase_source : 9d5ff6c6900b3befce2f6b6bf13d02a582f4a35d
2009-08-03 15:18:55 -04:00
Graydon Hoare
114f8d3c01 Bug 507302 - more whitespace fixes, r=nnethercote.
--HG--
extra : rebase_source : 7d208da8eabd76f66cfe323b5b598f45130299c6
2009-07-29 16:21:40 -07:00
Edwin Smith
2c7e0812af Bug 507039 - Remove _startingIns from Assembler, r=nnethercote.
--HG--
extra : rebase_source : f4f5451a94fa60bb8059688bd64a6638e69a32c7
2009-07-23 13:46:44 -04: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
998a2e55b1 Backed out changeset 137cbe3c46a9 2009-07-30 14:25:03 -07:00
Graydon Hoare
b1632ff303 Backed out changeset 3853806a58df 2009-07-30 14:21:19 -07:00
Graydon Hoare
8017a66d3d Bug 507302 - more whitespace fixes, r=nnethercote. 2009-07-29 16:21:40 -07:00
Edwin Smith
da15262810 Bug 507039 - Remove _startingIns from Assembler, r=nnethercote. 2009-07-23 13:46:44 -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
d5dbe8400a Bug 506177 - TM/nanojit: remove dead 'isfar' argument from asm_branch(). r=rreitmai. 2009-07-24 15:41:32 +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
9360d761e7 Bug 499605: localize _labels, _patches and pending_lives in Assembler. r=edwsmith. 2009-07-09 08:54:31 +10:00
Nicholas Nethercote
1e84e68309 Remove dead setCallTable() declaration (bug 488515, r=gal). 2009-06-30 14:55:44 +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
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
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
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
Graydon Hoare
39ed76ba7c Bug 468484 - Back out further arm-wince breakage from recent merging activity. 2008-12-11 17:09:45 -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
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
Steven Johnson
fbc6fd0ad9 Bug 468484 - internal tamarin-redux merge (mostly formatting), r=gal. 2008-10-20 15:52:11 -07: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 Mandelin
f8d1b7798b Preserve param1 over loop iters if it is used, desk r=danderson 2008-10-31 16:48:14 -07:00
Vladimir Vukicevic
eb73398c11 [arm] Enable VFP 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