summaryrefslogtreecommitdiff
path: root/src/lj_crecord.c
diff options
context:
space:
mode:
authorMike Pall <mike>2012-11-06 17:05:37 +0100
committerMike Pall <mike>2012-11-06 17:05:37 +0100
commit4e5ef81b869dd15238ccfd5aeef09ce577f9b805 (patch)
tree4f87b74e0ad1c0ee9390cc34a513379fb4f6cd48 /src/lj_crecord.c
parent8a1a6097bef28df3875f5f9c2624952bd173cf81 (diff)
downloadluajit2-4e5ef81b869dd15238ccfd5aeef09ce577f9b805.tar.gz
FFI: Fix recording of bool call result check on x86/x64.
Diffstat (limited to 'src/lj_crecord.c')
-rw-r--r--src/lj_crecord.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lj_crecord.c b/src/lj_crecord.c
index 9d361a7a..c9cdb261 100644
--- a/src/lj_crecord.c
+++ b/src/lj_crecord.c
@@ -1140,7 +1140,12 @@ static int crec_call(jit_State *J, RecordFFData *rd, GCcdata *cd)
tr = TREF_NIL;
} else {
crec_snap_caller(J);
+#if LJ_TARGET_X86ORX64
+ /* Note: only the x86/x64 backend supports U8 and only for EQ(tr, 0). */
+ lj_ir_set(J, IRTG(IR_NE, IRT_U8), tr, lj_ir_kint(J, 0));
+#else
lj_ir_set(J, IRTGI(IR_NE), tr, lj_ir_kint(J, 0));
+#endif
J->postproc = LJ_POST_FIXGUARDSNAP;
tr = TREF_TRUE;
}