David Anderson
c5a85f7524
Merge.
2008-08-11 16:14:29 -07:00
David Anderson
1b623f7d25
Added explicit deallocation (bug 443500, r=gal)
2008-08-11 16:01:21 -07:00
Andreas Gal
020e68ab1e
Remove default parameter for guard, specify MISMATCH_EXIT explicitly.
2008-08-11 15:40:04 -07:00
Brendan Eich
2991c66416
- Avoid unnecessary FASTCALL builtin wrappers for existing js_* library-private or friend functions, which could be (and now are) fastcall (JS_FASTCALL). A couple of builtins avoid name collisions by using js_Fast instead of just js_ as their name prefix.
...
- Use GCF_DONT_BLOCK from fastcall builtins that call into the GC allocator (mostly; a few places need help still, or better: need to avoid allocation).
- Cope with C clients of jscntxt.h and its include files (these hacks should go away).
- Naming convention and function definition line-break style nit-picks.
2008-08-10 00:39:18 -07:00
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