aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2011-02-19 23:04:16 +0100
committerMike Pall <mike>2011-02-19 23:04:16 +0100
commit32eaa48c792f8a03b7144383128a9ee82babab83 (patch)
treef2b71d27131e7bac2874f61638036d4bb8b530c3 /src
parentbd29d16141d07ca4e436fe457fd6cbefd638ad15 (diff)
downloadluajit-32eaa48c792f8a03b7144383128a9ee82babab83.tar.gz
luajit-32eaa48c792f8a03b7144383128a9ee82babab83.tar.bz2
luajit-32eaa48c792f8a03b7144383128a9ee82babab83.zip
FFI: Fix recording of ffi.copy() and ffi.fill().
Diffstat (limited to 'src')
-rw-r--r--src/lj_crecord.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lj_crecord.c b/src/lj_crecord.c
index 73575fe2..a24c541e 100644
--- a/src/lj_crecord.c
+++ b/src/lj_crecord.c
@@ -984,11 +984,12 @@ void LJ_FASTCALL recff_ffi_copy(jit_State *J, RecordFFData *rd)
984 if (trlen) { 984 if (trlen) {
985 trlen = crec_toint(J, cts, trlen, &rd->argv[2]); 985 trlen = crec_toint(J, cts, trlen, &rd->argv[2]);
986 } else { 986 } else {
987 trlen = emitir(IRTI(IR_FLOAD), trsrc, IRFL_STR_LEN); 987 trlen = emitir(IRTI(IR_FLOAD), J->base[1], IRFL_STR_LEN);
988 trlen = emitir(IRTI(IR_ADD), trlen, lj_ir_kint(J, 1)); 988 trlen = emitir(IRTI(IR_ADD), trlen, lj_ir_kint(J, 1));
989 } 989 }
990 lj_ir_call(J, IRCALL_memcpy, trdst, trsrc, trlen); 990 lj_ir_call(J, IRCALL_memcpy, trdst, trsrc, trlen);
991 emitir(IRT(IR_XBAR, IRT_NIL), 0, 0); 991 emitir(IRT(IR_XBAR, IRT_NIL), 0, 0);
992 rd->nres = 0;
992 } /* else: interpreter will throw. */ 993 } /* else: interpreter will throw. */
993} 994}
994 995
@@ -1005,6 +1006,7 @@ void LJ_FASTCALL recff_ffi_fill(jit_State *J, RecordFFData *rd)
1005 trfill = lj_ir_kint(J, 0); 1006 trfill = lj_ir_kint(J, 0);
1006 lj_ir_call(J, IRCALL_memset, tr, trfill, trlen); 1007 lj_ir_call(J, IRCALL_memset, tr, trfill, trlen);
1007 emitir(IRT(IR_XBAR, IRT_NIL), 0, 0); 1008 emitir(IRT(IR_XBAR, IRT_NIL), 0, 0);
1009 rd->nres = 0;
1008 } /* else: interpreter will throw. */ 1010 } /* else: interpreter will throw. */
1009} 1011}
1010 1012