aboutsummaryrefslogtreecommitdiff
path: root/src/lj_ffrecord.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_ffrecord.c')
-rw-r--r--src/lj_ffrecord.c5
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))