Commit Graph

138 Commits

Author SHA1 Message Date
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
Mike Pall
67ca399a30 Compress snapshots using a simple, extensible 1D-compression.
Typically reduces storage overhead for snapshot maps by 60%.
The extensible format is a prerequisite for the next redesign steps:
Eliminate IR_FRAME and implement return-to-lower-frame.
2010-01-26 21:49:04 +01:00
Mike Pall
e058714a2e Add missing eviction in asm_obar(). 2010-01-26 02:56:00 +01:00
Mike Pall
34d84f8836 Fill gaps in frames (caused by metamethod calls) with nil.
Simplifies storing snapshots to stack.
2010-01-26 00:45:30 +01:00
Mike Pall
47f1bc80d8 Use dedicated type for snapshot map entry.
Preparatory work for compressed snapshots.
2010-01-25 19:51:52 +01:00
Mike Pall
055396a69d Force error if lua_newstate() is used in 64 bit mode. 2010-01-24 15:50:59 +01:00
Mike Pall
43f1e13470 Integrate MinGW build with DWARF2 exception handling.
Only works with DWARF2-enabled GCC 4.x (not the default MinGW GCC).
Fix fastcall symbol names for COFF assembler output.
Add DWARF2 unwind info to COFF assembler output.
Use COFF assembler mode for MinGW builds.
Always enable the DWARF2 handler if compiled with GCC.
2010-01-22 01:56:49 +01:00
Mike Pall
c56811bb7a Fix undefined behavior in table resizing calculation. 2010-01-21 19:42:51 +01:00