aboutsummaryrefslogtreecommitdiff
path: root/src/lj_crecord.c
diff options
context:
space:
mode:
authorMike Pall <mike>2020-09-30 01:31:27 +0200
committerMike Pall <mike>2020-09-30 01:34:49 +0200
commite9af1abec542e6f9851ff2368e7f196b6382a44c (patch)
tree4b6d76732347a402abb43c6efa5ec3e01a4d61f0 /src/lj_crecord.c
parente67e2040be693122b54fc83797cdc9eb07221aea (diff)
downloadluajit-e9af1abec542e6f9851ff2368e7f196b6382a44c.tar.gz
luajit-e9af1abec542e6f9851ff2368e7f196b6382a44c.tar.bz2
luajit-e9af1abec542e6f9851ff2368e7f196b6382a44c.zip
Add support for full-range 64 bit lightuserdata.
Diffstat (limited to 'src/lj_crecord.c')
-rw-r--r--src/lj_crecord.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/lj_crecord.c b/src/lj_crecord.c
index 7ae1479e..f6824bff 100644
--- a/src/lj_crecord.c
+++ b/src/lj_crecord.c
@@ -646,8 +646,7 @@ static TRef crec_ct_tv(jit_State *J, CType *d, TRef dp, TRef sp, cTValue *sval)
646 } 646 }
647 } else if (tref_islightud(sp)) { 647 } else if (tref_islightud(sp)) {
648#if LJ_64 648#if LJ_64
649 sp = emitir(IRT(IR_BAND, IRT_P64), sp, 649 lj_trace_err(J, LJ_TRERR_NYICONV);
650 lj_ir_kint64(J, U64x(00007fff,ffffffff)));
651#endif 650#endif
652 } else { /* NYI: tref_istab(sp). */ 651 } else { /* NYI: tref_istab(sp). */
653 IRType t; 652 IRType t;
@@ -1212,8 +1211,7 @@ static int crec_call(jit_State *J, RecordFFData *rd, GCcdata *cd)
1212 TRef tr; 1211 TRef tr;
1213 TValue tv; 1212 TValue tv;
1214 /* Check for blacklisted C functions that might call a callback. */ 1213 /* Check for blacklisted C functions that might call a callback. */
1215 setlightudV(&tv, 1214 tv.u64 = ((uintptr_t)cdata_getptr(cdataptr(cd), (LJ_64 && tp == IRT_P64) ? 8 : 4) >> 2) | U64x(800000000, 00000000);
1216 cdata_getptr(cdataptr(cd), (LJ_64 && tp == IRT_P64) ? 8 : 4));
1217 if (tvistrue(lj_tab_get(J->L, cts->miscmap, &tv))) 1215 if (tvistrue(lj_tab_get(J->L, cts->miscmap, &tv)))
1218 lj_trace_err(J, LJ_TRERR_BLACKL); 1216 lj_trace_err(J, LJ_TRERR_BLACKL);
1219 if (ctype_isvoid(ctr->info)) { 1217 if (ctype_isvoid(ctr->info)) {