summaryrefslogtreecommitdiff
path: root/src/lj_trace.c
diff options
context:
space:
mode:
authorMike Pall <mike>2011-02-02 02:29:37 +0100
committerMike Pall <mike>2011-02-02 02:29:37 +0100
commitb613216efc7447dae645d8834e4d6f3185cd1bcc (patch)
tree0859fed377f00ebeada70ba45d02496b7fb4a249 /src/lj_trace.c
parentc539c0cac8f668e66a5ce9e5fd645cb45e3c5063 (diff)
downloadluajit-b613216efc7447dae645d8834e4d6f3185cd1bcc.tar.gz
luajit-b613216efc7447dae645d8834e4d6f3185cd1bcc.tar.bz2
luajit-b613216efc7447dae645d8834e4d6f3185cd1bcc.zip
Add SPLIT pass to split 64 bit IR instructions for 32 bit CPUs.
Add generic HIOP instruction for extra backend functionality. Add support for HIOP to x86 backend. Use POWI for 64 bit integer x^k, too. POWI is lowered to a call by SPLIT or the x64 backend.
Diffstat (limited to 'src/lj_trace.c')
-rw-r--r--src/lj_trace.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lj_trace.c b/src/lj_trace.c
index da20f991..b67e8f75 100644
--- a/src/lj_trace.c
+++ b/src/lj_trace.c
@@ -394,6 +394,7 @@ static void trace_start(jit_State *J)
394 J->bcskip = 0; 394 J->bcskip = 0;
395 J->guardemit.irt = 0; 395 J->guardemit.irt = 0;
396 J->postproc = LJ_POST_NONE; 396 J->postproc = LJ_POST_NONE;
397 lj_resetsplit(J);
397 setgcref(J->cur.startpt, obj2gco(J->pt)); 398 setgcref(J->cur.startpt, obj2gco(J->pt));
398 399
399 L = J->L; 400 L = J->L;
@@ -592,6 +593,7 @@ static TValue *trace_state(lua_State *L, lua_CFunction dummy, void *ud)
592 } 593 }
593 J->loopref = J->chain[IR_LOOP]; /* Needed by assembler. */ 594 J->loopref = J->chain[IR_LOOP]; /* Needed by assembler. */
594 } 595 }
596 lj_opt_split(J);
595 J->state = LJ_TRACE_ASM; 597 J->state = LJ_TRACE_ASM;
596 break; 598 break;
597 599