diff options
Diffstat (limited to '')
-rw-r--r-- | src/lj_dispatch.c | 6 |
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; |