Andreas Gal
|
3f90159e8b
|
Remove ip from InterpState. Calculate the new pc after a trace side exit relative to lr->from->root->ip, which also works if we side exit on a different tree than we entered (which can happen in case of nested trees.)
|
2008-08-08 18:20:20 -07:00 |
|
Andreas Gal
|
c7be42f2f3
|
Add very preliminary nesting for trees. This is disabled by default. To enable set TRACEMONKEY=nesting in the environment.
|
2008-08-08 15:26:31 -07:00 |
|
Andreas Gal
|
6bd49e0d49
|
Make ip in InterpStruct const*.
|
2008-08-06 15:55:00 -07:00 |
|
Andreas Gal
|
86aa1f7ff7
|
If trees are not enabled, don't try to reuse state and param1.
|
2008-07-30 21:40:21 -07:00 |
|
Andreas Gal
|
afc7936599
|
Remember number of global slots known at that point in the trace in every side exit (forward-looking change to cope with dynamic collection of interned globals.)
|
2008-07-30 00:15:07 -07:00 |
|
David Anderson
|
60181b7fd2
|
Fixed some MSVC whinings, implemented rdtsc on win32
|
2008-07-29 19:19:51 -05:00 |
|
Andreas Gal
|
5a7ac301e6
|
Limit tree growth to side exits that expicitly declare that they want to be grown.
|
2008-07-29 11:13:41 -07:00 |
|
Andreas Gal
|
6126f5fa5c
|
Track the type of guards and react accordingly if we bail out on them. Guards that protect against out-of-memory conditions don't try to grow the tree. Instead we just resume the interpreter.
|
2008-07-27 16:18:53 -07:00 |
|
Andreas Gal
|
ecb79b1640
|
Determine ahead of time whether a side exit is a loop-terminating side exit instead of re-determining this at every side exit.
|
2008-07-25 01:44:40 -07:00 |
|
Andreas Gal
|
41e0593392
|
Maintain a separate frame for globals using InterpState->gp.
This will allow nested loops to access the globals interned by outer loops while at the same time sharing parts of the stack of the outer loop.
|
2008-07-23 23:18:02 -07:00 |
|
Andreas Gal
|
1c9c67b6a1
|
Write all the debug output to stdout (we can't easily make everything go to stderr, so this way at least it all goes into the same place.)
|
2008-07-18 14:13:31 -07:00 |
|
Andreas Gal
|
f309cf6b64
|
Try to clean up the memory allocation/deallocation through the avmplus glue code.
|
2008-07-17 21:31:50 -07:00 |
|
shaver@mozilla.org
|
9182a834c4
|
copy capacity when becoming another list
|
2008-07-16 23:11:17 -07:00 |
|
Andreas Gal
|
7c24d0f34d
|
Compilation fixes for gcc 4.2. Ripp out write-barrier code in our avmplus glue layer.
|
2008-07-15 15:58:43 -07:00 |
|
Andreas Gal
|
a81b83090e
|
Sync with TT.
|
2008-07-15 13:06:05 -07:00 |
|
Andreas Gal
|
9f761173f0
|
Added a callstack that will track the pc of the call that caused a function call to be inlined. This is necessary to recover from deep side exits inside inline functions. The callstack is subject to store elimination, so unnecessary stores to the stack will go dead automatically during compilation (i.e. if we inline a function that doesn't have side exits.)
|
2008-07-14 19:12:50 -07:00 |
|
shaver@mozilla.org
|
634b195855
|
the rest of the stdint defs, no idea why I didn't do them before
|
2008-07-10 20:25:57 -04:00 |
|
shaver@mozilla.org
|
34f7e86edf
|
use VirtualAlloc for Windows, since it lacks valloc
|
2008-07-10 18:39:51 -04:00 |
|
shaver@mozilla.org
|
0b285b6a7e
|
FASTCALL for Windows
|
2008-07-10 17:16:31 -04:00 |
|
shaver@mozilla.org
|
e2ed248ddf
|
int32_t, now available on Windows
|
2008-07-10 16:58:08 -04:00 |
|
shaver@mozilla.org
|
929e6f9e95
|
MSVC knows about intptr_t, and doesn't like our remix
|
2008-07-10 10:21:29 -04:00 |
|
shaver@mozilla.org
|
45b694dc35
|
I'm going to just keep bludgeoning these typedefs until they stick
|
2008-07-10 10:18:22 -04:00 |
|
shaver@mozilla.org
|
853e2a057b
|
try to find malloc on Linux; this buildbot thing rules the school
|
2008-07-10 10:03:45 -04:00 |
|
shaver@mozilla.org
|
2e3334d255
|
use typedefs instead of stdint.h, because someone forgot to tell MSVC it was 2008
|
2008-07-10 09:52:34 -04:00 |
|
shaver@mozilla.org
|
5e83315c4d
|
use stdint.h instead of typedefs to help Linux find intptr_t
|
2008-07-10 09:20:36 -04:00 |
|
Andreas Gal
|
1c24e264ad
|
Removed numMapEntries since typeMap is not really part of the SideExit struct yet anyway.
|
2008-07-09 00:13:35 -07:00 |
|
David Anderson
|
fcf8410125
|
Builds against latest nanojit; merged VMSideExitInfo into SideExit
|
2008-07-08 17:16:51 -07:00 |
|
Andreas Gal
|
399a49e73a
|
Removed an unused variable from the avmplus glue code.
|
2008-07-07 02:59:20 -07:00 |
|
Andreas Gal
|
e4f8fa2f97
|
Sync nanojit with tamarin-tracing tip.
|
2008-07-07 02:47:40 -07:00 |
|
Andreas Gal
|
cef5e9becc
|
Make trace-code 32-bit clean and extend interpreter state to carry the current context (cx). The recorder still has to record a 31-bit int path through the loop, but the emitted code is able to stay in the tree even if values bump over to 32-bit ints.
|
2008-07-04 16:24:42 -07:00 |
|
Andreas Gal
|
9b8f5f75a8
|
Added back support for the instructions required to compile trace.js.
|
2008-07-04 03:06:18 -07:00 |
|
Andreas Gal
|
d3e7a57a68
|
Fix deallocation bug in the recorder. We will have to lift more code Tamarin's Interpreter to stabilize the recording.
|
2008-07-01 02:37:07 -07:00 |
|
Andreas Gal
|
e6b28ce4f8
|
Sync with TT-tip.
|
2008-06-30 15:33:41 -07:00 |
|
Andreas Gal
|
f8a6a789d0
|
Cleanup memory management. Use new char[] inside our overloaded new operator that clears out memory.
|
2008-06-30 12:00:31 -07:00 |
|
Andreas Gal
|
b1e24b8c98
|
Execute trace code. Boxing back the side exit state is not handled yet.
|
2008-06-29 20:56:06 -07:00 |
|
Andreas Gal
|
1f37ae3e62
|
Small cleanups and licensing blurb housekeeping.
|
2008-06-28 09:58:15 -07:00 |
|
dvander@traceknight.local
|
76d930e192
|
Fixed malloc/delete mismatch (Valgrind was complaining)
|
2008-06-23 18:00:03 -07:00 |
|
Andreas Gal
|
78da0668af
|
Start attaching our tracer to nanojit. This is incomplete and meant for review by David only.
|
2008-06-21 14:55:32 -07:00 |
|
Andreas Gal
|
29c6494f2c
|
Back out explicit zeroing in the constructor and ensure heap allocated objects are implicitly zero-ed out.
|
2008-06-20 14:26:43 -07:00 |
|
dvander@traceknight.local
|
f1a775ac86
|
use valloc() on Darwin for GCHeap
|
2008-06-20 11:38:46 -07:00 |
|
Andreas Gal
|
9c6e4287f1
|
Properly align pages allocated by GCHeap.
|
2008-06-19 20:12:48 -07:00 |
|
Andreas Gal
|
ddb6af4683
|
Switch to malloc (avoid new where possible) and properly initialize capacity.
|
2008-06-19 19:19:39 -07:00 |
|
Andreas Gal
|
48b30922c7
|
Drop helper code that is no longer needed.
|
2008-06-19 15:49:32 -07:00 |
|
Andreas Gal
|
9a6946405f
|
Added necessary glue code to make nanojit compile in DEBUG mode.
|
2008-06-19 15:32:40 -07:00 |
|
Andreas Gal
|
5a17de3bca
|
Landed nanojit in TraceMonkey. This is untested and DEBUG must be off for now since we don't support AVM's String class.
|
2008-06-19 10:47:58 -07:00 |
|
Andreas Gal
|
debb2cc333
|
Added RegAlloc.h and Fragmento.h from TT.
|
2008-06-18 21:23:53 -07:00 |
|
Andreas Gal
|
0c21fdbd7e
|
Added LIR.h from TT.
|
2008-06-18 21:11:15 -07:00 |
|
Andreas Gal
|
0e152648fe
|
Added Native*.h from TT.
|
2008-06-18 20:57:17 -07:00 |
|
Andreas Gal
|
eed27a563d
|
Added nanojit.h from TT.
|
2008-06-18 20:49:37 -07:00 |
|
Andreas Gal
|
f65ca9580f
|
Renamned avm.h to avmplus.h
--HG--
rename : js/src/nanojit/avm.h => js/src/nanojit/avmplus.h
|
2008-06-18 20:45:37 -07:00 |
|