aboutsummaryrefslogtreecommitdiff
path: root/src/lj_ir.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_ir.h')
-rw-r--r--src/lj_ir.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lj_ir.h b/src/lj_ir.h
index 4e9c85c7..e77f7b99 100644
--- a/src/lj_ir.h
+++ b/src/lj_ir.h
@@ -412,7 +412,7 @@ static LJ_AINLINE IRType itype2irt(const TValue *tv)
412 412
413static LJ_AINLINE uint32_t irt_toitype_(IRType t) 413static LJ_AINLINE uint32_t irt_toitype_(IRType t)
414{ 414{
415 lua_assert(!LJ_64 || t != IRT_LIGHTUD); 415 lua_assert(!LJ_64 || LJ_GC64 || t != IRT_LIGHTUD);
416 if (LJ_DUALNUM && t > IRT_NUM) { 416 if (LJ_DUALNUM && t > IRT_NUM) {
417 return LJ_TISNUM; 417 return LJ_TISNUM;
418 } else { 418 } else {
@@ -568,7 +568,11 @@ typedef union IRIns {
568#define ir_knum(ir) check_exp((ir)->o == IR_KNUM, &(ir)[1].tv) 568#define ir_knum(ir) check_exp((ir)->o == IR_KNUM, &(ir)[1].tv)
569#define ir_kint64(ir) check_exp((ir)->o == IR_KINT64, &(ir)[1].tv) 569#define ir_kint64(ir) check_exp((ir)->o == IR_KINT64, &(ir)[1].tv)
570#define ir_k64(ir) \ 570#define ir_k64(ir) \
571 check_exp((ir)->o == IR_KNUM || (ir)->o == IR_KINT64, &(ir)[1].tv) 571 check_exp((ir)->o == IR_KNUM || (ir)->o == IR_KINT64 || \
572 (LJ_GC64 && \
573 ((ir)->o == IR_KGC || \
574 (ir)->o == IR_KPTR || (ir)->o == IR_KKPTR)), \
575 &(ir)[1].tv)
572#define ir_kptr(ir) \ 576#define ir_kptr(ir) \
573 check_exp((ir)->o == IR_KPTR || (ir)->o == IR_KKPTR, \ 577 check_exp((ir)->o == IR_KPTR || (ir)->o == IR_KKPTR, \
574 mref((ir)[LJ_GC64].ptr, void)) 578 mref((ir)[LJ_GC64].ptr, void))