diff options
author | Mike Pall <mike> | 2020-09-30 01:31:27 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2020-09-30 01:34:49 +0200 |
commit | e9af1abec542e6f9851ff2368e7f196b6382a44c (patch) | |
tree | 4b6d76732347a402abb43c6efa5ec3e01a4d61f0 /src/lj_crecord.c | |
parent | e67e2040be693122b54fc83797cdc9eb07221aea (diff) | |
download | luajit-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.c | 6 |
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)) { |