diff options
author | Mike Pall <mike> | 2010-01-26 21:49:04 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2010-01-26 21:49:04 +0100 |
commit | 67ca399a30cec05acacd7ea33d5cb0e361f92755 (patch) | |
tree | 335806ea53e2f98a71eb2395baa1d3d7bea352ae /src/lj_trace.c | |
parent | e058714a2e3745a819b77e6b50551e423897026a (diff) | |
download | luajit-67ca399a30cec05acacd7ea33d5cb0e361f92755.tar.gz luajit-67ca399a30cec05acacd7ea33d5cb0e361f92755.tar.bz2 luajit-67ca399a30cec05acacd7ea33d5cb0e361f92755.zip |
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.
Diffstat (limited to 'src/lj_trace.c')
-rw-r--r-- | src/lj_trace.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/lj_trace.c b/src/lj_trace.c index a5468655..fb36c7ee 100644 --- a/src/lj_trace.c +++ b/src/lj_trace.c | |||
@@ -161,8 +161,8 @@ void lj_trace_reenableproto(GCproto *pt) | |||
161 | static void trace_unpatch(jit_State *J, Trace *T) | 161 | static void trace_unpatch(jit_State *J, Trace *T) |
162 | { | 162 | { |
163 | BCOp op = bc_op(T->startins); | 163 | BCOp op = bc_op(T->startins); |
164 | uint32_t pcofs = T->snap[0].mapofs + T->snap[0].nslots; | 164 | MSize pcofs = T->snap[0].mapofs + T->snap[0].nent; |
165 | BCIns *pc = ((BCIns *)(uintptr_t)T->snapmap[pcofs]) - 1; | 165 | BCIns *pc = ((BCIns *)snap_pc(T->snapmap[pcofs])) - 1; |
166 | switch (op) { | 166 | switch (op) { |
167 | case BC_FORL: | 167 | case BC_FORL: |
168 | lua_assert(bc_op(*pc) == BC_JFORI); | 168 | lua_assert(bc_op(*pc) == BC_JFORI); |
@@ -352,7 +352,6 @@ static void trace_start(jit_State *J) | |||
352 | J->cur.ir = J->irbuf; | 352 | J->cur.ir = J->irbuf; |
353 | J->cur.snap = J->snapbuf; | 353 | J->cur.snap = J->snapbuf; |
354 | J->cur.snapmap = J->snapmapbuf; | 354 | J->cur.snapmap = J->snapmapbuf; |
355 | /* J->cur.nsnapmap = 0; */ | ||
356 | J->mergesnap = 0; | 355 | J->mergesnap = 0; |
357 | J->needsnap = 0; | 356 | J->needsnap = 0; |
358 | J->guardemit.irt = 0; | 357 | J->guardemit.irt = 0; |