diff options
Diffstat (limited to 'src/lj_ffrecord.c')
-rw-r--r-- | src/lj_ffrecord.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lj_ffrecord.c b/src/lj_ffrecord.c index 64a9a65d..6d141a20 100644 --- a/src/lj_ffrecord.c +++ b/src/lj_ffrecord.c | |||
@@ -1114,8 +1114,13 @@ static TRef recff_io_fp(jit_State *J, TRef *udp, int32_t id) | |||
1114 | { | 1114 | { |
1115 | TRef tr, ud, fp; | 1115 | TRef tr, ud, fp; |
1116 | if (id) { /* io.func() */ | 1116 | if (id) { /* io.func() */ |
1117 | #if LJ_GC64 | ||
1118 | /* TODO: fix ARM32 asm_fload(), so we can use this for all archs. */ | ||
1119 | ud = lj_ir_ggfload(J, IRT_UDATA, GG_OFS(g.gcroot[id])); | ||
1120 | #else | ||
1117 | tr = lj_ir_kptr(J, &J2G(J)->gcroot[id]); | 1121 | tr = lj_ir_kptr(J, &J2G(J)->gcroot[id]); |
1118 | ud = emitir(IRT(IR_XLOAD, IRT_UDATA), tr, 0); | 1122 | ud = emitir(IRT(IR_XLOAD, IRT_UDATA), tr, 0); |
1123 | #endif | ||
1119 | } else { /* fp:method() */ | 1124 | } else { /* fp:method() */ |
1120 | ud = J->base[0]; | 1125 | ud = J->base[0]; |
1121 | if (!tref_isudata(ud)) | 1126 | if (!tref_isudata(ud)) |