diff options
author | Mike Pall <mike> | 2011-05-31 21:39:37 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2011-05-31 21:39:37 +0200 |
commit | 865ec114a7e9aedb5d728106883717167fd9d7c0 (patch) | |
tree | 1aa1628517ea1b863b23dcc31c92b4e22631ef0f /src | |
parent | a52208737122d58e1d872559970b8aef3b145b59 (diff) | |
download | luajit-865ec114a7e9aedb5d728106883717167fd9d7c0.tar.gz luajit-865ec114a7e9aedb5d728106883717167fd9d7c0.tar.bz2 luajit-865ec114a7e9aedb5d728106883717167fd9d7c0.zip |
FFI: Fix recording of casts from 32 bit pointers to integers.
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_crecord.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lj_crecord.c b/src/lj_crecord.c index 02e788aa..ed5e8272 100644 --- a/src/lj_crecord.c +++ b/src/lj_crecord.c | |||
@@ -200,7 +200,7 @@ static TRef crec_ct_ct(jit_State *J, CType *d, CType *s, TRef dp, TRef sp, | |||
200 | (sinfo & CTF_UNSIGNED) ? 0 : IRCONV_SEXT); | 200 | (sinfo & CTF_UNSIGNED) ? 0 : IRCONV_SEXT); |
201 | else if (dsize < 8 && ssize == 8) /* Truncate from 64 bit integer. */ | 201 | else if (dsize < 8 && ssize == 8) /* Truncate from 64 bit integer. */ |
202 | sp = emitconv(sp, dsize < 4 ? IRT_INT : dt, st, 0); | 202 | sp = emitconv(sp, dsize < 4 ? IRT_INT : dt, st, 0); |
203 | else if (ssize <= 4) | 203 | else if (st == IRT_INT) |
204 | sp = lj_opt_narrow_toint(J, sp); | 204 | sp = lj_opt_narrow_toint(J, sp); |
205 | xstore: | 205 | xstore: |
206 | if (dt == IRT_I64 || dt == IRT_U64) lj_needsplit(J); | 206 | if (dt == IRT_I64 || dt == IRT_U64) lj_needsplit(J); |