Mike Pall
b838cd8dca
Minor cleanup of trace event handling.
2010-02-15 16:41:52 +01:00
Mike Pall
1288e04186
Add missing FORI coercions in recorder.
2010-02-15 01:51:41 +01:00
Mike Pall
b6e4fde0dc
Improve FOR loop const specialization and integerness checks.
2010-02-15 01:07:30 +01:00
Mike Pall
2a2f8ed6a1
Implement return hooks for Lua functions (zero-cost if disabled).
2010-02-14 20:48:33 +01:00
Mike Pall
8e38231f9e
Implement call hooks (zero-cost if disabled).
2010-02-14 17:47:03 +01:00
Mike Pall
c93138b59e
Major redesign of function call handling.
...
Drop call gates. Use function headers, dispatched like bytecodes.
Emit BC_FUNCF/BC_FUNCV bytecode at PC 0 for all Lua functions.
C functions and ASM fast functions get extra bytecodes.
Modify internal calling convention: new base in BASE (formerly in RA).
Can now use better C function wrapper semantics (dynamic on/off).
Prerequisite for call hooks with zero-overhead if disabled.
Prerequisite for compiling recursive calls.
Prerequisite for efficient 32/64 bit prototype guards.
2010-02-13 04:51:56 +01:00
Mike Pall
4f8d7be8ea
Extend scope of local vars in debug info beyond final return.
2010-02-12 16:17:42 +01:00
Mike Pall
2e5d3740ae
Fix dump of bytecode instructions with missing operands.
2010-02-11 20:59:00 +01:00
Mike Pall
b2067236c5
Move dispatch tables out of GG_State struct.
2010-02-11 16:21:18 +01:00
Mike Pall
565eb39574
Drop frame clearing in exit handling and JIT compiled code.
2010-02-11 01:50:32 +01:00
Mike Pall
ab90b8fc2b
Switch to pre-initialized stacks. Drop frame clearing in interpreter.
2010-02-11 01:21:40 +01:00
Mike Pall
bb0384c366
Replace GCproto reference with bytecode PC in GCfuncL.
2010-02-10 21:45:57 +01:00
Mike Pall
d5a46621f9
Drop bc field in GCproto since the bytecode is colocated.
2010-02-08 20:17:34 +01:00
Mike Pall
2ddea3838d
Fix constructor bytecode generation for conditional values.
2010-02-08 16:08:58 +01:00
Mike Pall
f86f9e8eec
Reduce whitespace in lj_bcdef.h.
2010-02-08 05:35:18 +01:00
Mike Pall
6194b1c896
Redesign of prototype generation, part 5: colocation of protoype arrays.
2010-02-08 05:30:57 +01:00
Mike Pall
f275a9d7ef
Redesign of prototype generation, part 4: late creation of prototype.
2010-02-08 05:29:47 +01:00
Mike Pall
4424027844
Redesign of prototype generation, part 3: bc and lineinfo.
...
Use a growable, per-chunk bytecode instruction/line stack.
Collect bc/lineinfo for prototype at the end.
2010-02-08 05:28:57 +01:00
Mike Pall
48d93d8c84
Redesign of prototype generation, part 2: late init of chunkname.
2010-02-08 05:27:43 +01:00
Mike Pall
60b5af4422
Redesign of prototype generation, part 1: varinfo and uvname.
...
Use a growable, per-chunk variable stack.
Collect varinfo/uvname for prototype at the end.
2010-02-08 05:26:52 +01:00
Mike Pall
1307f49137
Major cleanup of bytecode parser.
2010-02-06 08:18:32 +01:00
Mike Pall
1f39cc5c21
Update .gitignore.
2010-02-06 08:18:20 +01:00
Mike Pall
c4dadf1d67
Move bytecode offsets from lj_vm.* to generated header.
2010-02-05 20:15:01 +01:00
Mike Pall
a0914c409b
32/64 bit memory ref cleanup, part 4: GCproto ->varinfo.
2010-02-05 01:35:38 +01:00
Mike Pall
8dcc4364cf
32/64 bit memory ref cleanup, part 3: GCproto ->lineinfo.
2010-02-05 01:16:22 +01:00
Mike Pall
d778982120
32/64 bit memory ref cleanup, part 2: GCproto ->uvname and ->chunkname.
2010-02-05 00:52:21 +01:00
Mike Pall
c8d55e8506
32/64 bit memory ref cleanup, part 1: GCproto ->bc and ->k.
2010-02-05 00:07:32 +01:00
Mike Pall
370c868c31
RETF modifies BASE. Treat it like a store or it gets CSEd.
2010-02-04 21:36:32 +01:00
Mike Pall
5d2690c608
Reset the hotcount table after a JIT off to on transition.
2010-02-04 20:40:00 +01:00
Mike Pall
7256690364
Add shadow frame link stack for trace recorder.
...
Simplifies snapshots. Prerequisite for pre-call snapshots.
Increases consistency for fast function calls, too.
2010-02-04 03:08:29 +01:00
Mike Pall
78f5e2ffd3
Fix unroll limit checks and frame depth adjustment for pcall.
2010-02-03 16:48:25 +01:00
Mike Pall
318e86c7eb
Clean up frame depth checks and loop detection.
2010-02-03 14:55:56 +01:00
Mike Pall
c1c9abeab7
Add extra check to suppress hotcall event during recording.
2010-02-03 14:34:30 +01:00
Mike Pall
305ecbbb84
Another loop formation test must check for return to lower frame.
2010-02-03 14:31:42 +01:00
Mike Pall
61c5a60dc3
Improve coalescing of BASE register in side traces.
2010-02-01 23:32:26 +01:00
Mike Pall
9a682f341d
Revise hardcoded inlining in lj_asm.c. Saves 1-2K.
2010-01-30 14:33:08 +01:00
Mike Pall
02e58f5e56
Add support for weak IR references to register allocator.
...
Spilling a weak ref forces a spill slot, but omits the restore.
Spill slots for snapshot refs override the register, anyway.
Marking snapshot refs weak avoids pointless restores.
2010-01-30 06:50:39 +01:00
Mike Pall
96e8a56260
Loop formation test must check for return to lower frame.
2010-01-29 15:07:40 +01:00
Mike Pall
8681b7330f
Compile return to lower frame. Only for Lua frames right now.
2010-01-29 03:32:37 +01:00
Mike Pall
272b2f7368
Followup fix: set maxslot for continuation return.
2010-01-28 04:29:15 +01:00
Mike Pall
2ed0bb7f1e
Drop obsolete frame shrinking after continuation return.
2010-01-28 04:20:20 +01:00
Mike Pall
a6565d21fa
Fix recording of metamethod result adjustment.
2010-01-28 04:02:32 +01:00
Mike Pall
725da9224d
Don't modify jit_State and exit counters while in vmevent.
...
Fixes crash with hot loop in TEXIT callback which cleared J->parent.
2010-01-28 02:30:12 +01:00
Mike Pall
fb2c583cfc
Fix snapshot dumps.
2010-01-28 02:02:08 +01:00
Mike Pall
21d6709271
Avoid reuse of PHI registers, even for duplicate right PHIs.
2010-01-27 22:09:43 +01:00
Mike Pall
09b8f67cd8
Expose compressed snapshot map to reflection API.
...
Update jit.dump module and restore printing of frame separators.
2010-01-27 20:06:03 +01:00
Mike Pall
3aeb892262
Eliminate IR_FRAME. Replace with KGC and TRef/SnapEntry flags.
2010-01-27 03:50:29 +01:00
Mike Pall
d216cdb2b9
Add frame and continuation flags to TRef and SnapEntry.
2010-01-27 02:17:56 +01:00
Mike Pall
05d67cf566
Add missing check for return to lower frame.
2010-01-27 01:57:15 +01:00
Mike Pall
c8a80fa989
Cleanup types for narrowing stack machine.
2010-01-27 00:39:22 +01:00