diff options
author | Mike Pall <mike> | 2012-11-06 17:05:37 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2012-11-06 17:05:37 +0100 |
commit | 4e5ef81b869dd15238ccfd5aeef09ce577f9b805 (patch) | |
tree | 4f87b74e0ad1c0ee9390cc34a513379fb4f6cd48 /src/lj_crecord.c | |
parent | 8a1a6097bef28df3875f5f9c2624952bd173cf81 (diff) | |
download | luajit2-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.c | 5 |
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; } |