summaryrefslogtreecommitdiff
path: root/src/lj_dispatch.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_dispatch.c')
-rw-r--r--src/lj_dispatch.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/lj_dispatch.c b/src/lj_dispatch.c
index 4629fb7e..7b3ff80b 100644
--- a/src/lj_dispatch.c
+++ b/src/lj_dispatch.c
@@ -209,10 +209,12 @@ int luaJIT_setmode(lua_State *L, int idx, int mode)
209 if ((mode & LUAJIT_MODE_FLUSH)) { 209 if ((mode & LUAJIT_MODE_FLUSH)) {
210 lj_trace_flushall(L); 210 lj_trace_flushall(L);
211 } else { 211 } else {
212 if ((mode & LUAJIT_MODE_ON)) 212 if (!(mode & LUAJIT_MODE_ON))
213 G2J(g)->flags &= ~(uint32_t)JIT_F_ON;
214 else if ((G2J(g)->flags & JIT_F_SSE2))
213 G2J(g)->flags |= (uint32_t)JIT_F_ON; 215 G2J(g)->flags |= (uint32_t)JIT_F_ON;
214 else 216 else
215 G2J(g)->flags &= ~(uint32_t)JIT_F_ON; 217 return 0; /* Don't turn on JIT compiler without SSE2 support. */
216 lj_dispatch_update(g); 218 lj_dispatch_update(g);
217 } 219 }
218 break; 220 break;