aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2011-05-31 21:39:37 +0200
committerMike Pall <mike>2011-05-31 21:39:37 +0200
commit865ec114a7e9aedb5d728106883717167fd9d7c0 (patch)
tree1aa1628517ea1b863b23dcc31c92b4e22631ef0f /src
parenta52208737122d58e1d872559970b8aef3b145b59 (diff)
downloadluajit-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.c2
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);