diff options
Diffstat (limited to 'src/lib_jit.c')
| -rw-r--r-- | src/lib_jit.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lib_jit.c b/src/lib_jit.c index 1b74d957..0f75c5ac 100644 --- a/src/lib_jit.c +++ b/src/lib_jit.c | |||
| @@ -723,7 +723,16 @@ static void jit_init(lua_State *L) | |||
| 723 | jit_State *J = L2J(L); | 723 | jit_State *J = L2J(L); |
| 724 | J->flags = jit_cpudetect() | JIT_F_ON | JIT_F_OPT_DEFAULT; | 724 | J->flags = jit_cpudetect() | JIT_F_ON | JIT_F_OPT_DEFAULT; |
| 725 | memcpy(J->param, jit_param_default, sizeof(J->param)); | 725 | memcpy(J->param, jit_param_default, sizeof(J->param)); |
| 726 | #if LJ_TARGET_UNALIGNED | ||
| 727 | G(L)->tmptv.u64 = U64x(0000504d,4d500000); | ||
| 728 | #endif | ||
| 726 | lj_dispatch_update(G(L)); | 729 | lj_dispatch_update(G(L)); |
| 730 | #if LJ_TARGET_UNALIGNED | ||
| 731 | /* If you get a crash below then your toolchain indicates unaligned | ||
| 732 | ** accesses are OK, but your kernel disagrees. I.e. fix your toolchain. | ||
| 733 | */ | ||
| 734 | if (*(uint32_t *)((char *)&G(L)->tmptv + 2) != 0x504d4d50u) L->top = NULL; | ||
| 735 | #endif | ||
| 727 | } | 736 | } |
| 728 | #endif | 737 | #endif |
| 729 | 738 | ||
