diff options
Diffstat (limited to 'src/lj_record.c')
-rw-r--r-- | src/lj_record.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lj_record.c b/src/lj_record.c index f0481050..3c67e1a0 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -976,7 +976,13 @@ int lj_record_mm_lookup(jit_State *J, RecordIndex *ix, MMS mm) | |||
976 | } | 976 | } |
977 | /* The cdata metatable is treated as immutable. */ | 977 | /* The cdata metatable is treated as immutable. */ |
978 | if (LJ_HASFFI && tref_iscdata(ix->tab)) goto immutable_mt; | 978 | if (LJ_HASFFI && tref_iscdata(ix->tab)) goto immutable_mt; |
979 | #if LJ_GC64 | ||
980 | /* TODO: fix ARM32 asm_fload(), so we can use this for all archs. */ | ||
981 | ix->mt = mix.tab = lj_ir_ggfload(J, IRT_TAB, | ||
982 | GG_OFS(g.gcroot[GCROOT_BASEMT+itypemap(&ix->tabv)])); | ||
983 | #else | ||
979 | ix->mt = mix.tab = lj_ir_ktab(J, mt); | 984 | ix->mt = mix.tab = lj_ir_ktab(J, mt); |
985 | #endif | ||
980 | goto nocheck; | 986 | goto nocheck; |
981 | } | 987 | } |
982 | ix->mt = mt ? mix.tab : TREF_NIL; | 988 | ix->mt = mt ? mix.tab : TREF_NIL; |