diff options
author | Mike Pall <mike> | 2016-05-23 00:34:05 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2016-05-23 00:34:05 +0200 |
commit | f26679c7195e99b32f95ea9f25b47b9981e15d3d (patch) | |
tree | d50e967a387b1a9853b83b464cf819eb3607b533 /src/lj_ir.h | |
parent | 9e99ccc360bc9784ebe5ce29d5fa2c72acfc5777 (diff) | |
download | luajit-f26679c7195e99b32f95ea9f25b47b9981e15d3d.tar.gz luajit-f26679c7195e99b32f95ea9f25b47b9981e15d3d.tar.bz2 luajit-f26679c7195e99b32f95ea9f25b47b9981e15d3d.zip |
LJ_GC64: Add support for 64 bit GCobj constants in the IR.
Contributed by Peter Cawley.
Diffstat (limited to '')
-rw-r--r-- | src/lj_ir.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lj_ir.h b/src/lj_ir.h index 03377ec1..8b2fe638 100644 --- a/src/lj_ir.h +++ b/src/lj_ir.h | |||
@@ -557,8 +557,7 @@ typedef union IRIns { | |||
557 | TValue tv; /* TValue constant (overlaps entire slot). */ | 557 | TValue tv; /* TValue constant (overlaps entire slot). */ |
558 | } IRIns; | 558 | } IRIns; |
559 | 559 | ||
560 | /* TODO_GC64: major changes required. */ | 560 | #define ir_kgc(ir) check_exp((ir)->o == IR_KGC, gcref((ir)[LJ_GC64].gcr)) |
561 | #define ir_kgc(ir) check_exp((ir)->o == IR_KGC, gcref((ir)->gcr)) | ||
562 | #define ir_kstr(ir) (gco2str(ir_kgc((ir)))) | 561 | #define ir_kstr(ir) (gco2str(ir_kgc((ir)))) |
563 | #define ir_ktab(ir) (gco2tab(ir_kgc((ir)))) | 562 | #define ir_ktab(ir) (gco2tab(ir_kgc((ir)))) |
564 | #define ir_kfunc(ir) (gco2func(ir_kgc((ir)))) | 563 | #define ir_kfunc(ir) (gco2func(ir_kgc((ir)))) |
@@ -568,7 +567,8 @@ typedef union IRIns { | |||
568 | #define ir_k64(ir) \ | 567 | #define ir_k64(ir) \ |
569 | check_exp((ir)->o == IR_KNUM || (ir)->o == IR_KINT64, &(ir)[1].tv) | 568 | check_exp((ir)->o == IR_KNUM || (ir)->o == IR_KINT64, &(ir)[1].tv) |
570 | #define ir_kptr(ir) \ | 569 | #define ir_kptr(ir) \ |
571 | check_exp((ir)->o == IR_KPTR || (ir)->o == IR_KKPTR, mref((ir)->ptr, void)) | 570 | check_exp((ir)->o == IR_KPTR || (ir)->o == IR_KKPTR, \ |
571 | mref((ir)[LJ_GC64].ptr, void)) | ||
572 | 572 | ||
573 | /* A store or any other op with a non-weak guard has a side-effect. */ | 573 | /* A store or any other op with a non-weak guard has a side-effect. */ |
574 | static LJ_AINLINE int ir_sideeff(IRIns *ir) | 574 | static LJ_AINLINE int ir_sideeff(IRIns *ir) |