diff options
Diffstat (limited to 'src/lj_ir.h')
-rw-r--r-- | src/lj_ir.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/lj_ir.h b/src/lj_ir.h index 14b86165..bc89edf9 100644 --- a/src/lj_ir.h +++ b/src/lj_ir.h | |||
@@ -320,6 +320,7 @@ IRTDEF(IRTENUM) | |||
320 | IRT_PTR = LJ_64 ? IRT_P64 : IRT_P32, | 320 | IRT_PTR = LJ_64 ? IRT_P64 : IRT_P32, |
321 | IRT_INTP = LJ_64 ? IRT_I64 : IRT_INT, | 321 | IRT_INTP = LJ_64 ? IRT_I64 : IRT_INT, |
322 | IRT_UINTP = LJ_64 ? IRT_U64 : IRT_U32, | 322 | IRT_UINTP = LJ_64 ? IRT_U64 : IRT_U32, |
323 | /* TODO_GC64: major changes required for all uses of IRT_P32. */ | ||
323 | 324 | ||
324 | /* Additional flags. */ | 325 | /* Additional flags. */ |
325 | IRT_MARK = 0x20, /* Marker for misc. purposes. */ | 326 | IRT_MARK = 0x20, /* Marker for misc. purposes. */ |
@@ -371,7 +372,12 @@ typedef struct IRType1 { uint8_t irt; } IRType1; | |||
371 | #define irt_isaddr(t) (irt_typerange((t), IRT_LIGHTUD, IRT_UDATA)) | 372 | #define irt_isaddr(t) (irt_typerange((t), IRT_LIGHTUD, IRT_UDATA)) |
372 | #define irt_isint64(t) (irt_typerange((t), IRT_I64, IRT_U64)) | 373 | #define irt_isint64(t) (irt_typerange((t), IRT_I64, IRT_U64)) |
373 | 374 | ||
374 | #if LJ_64 | 375 | #if LJ_GC64 |
376 | #define IRT_IS64 \ | ||
377 | ((1u<<IRT_NUM)|(1u<<IRT_I64)|(1u<<IRT_U64)|(1u<<IRT_P64)|\ | ||
378 | (1u<<IRT_LIGHTUD)|(1u<<IRT_STR)|(1u<<IRT_THREAD)|(1u<<IRT_PROTO)|\ | ||
379 | (1u<<IRT_FUNC)|(1u<<IRT_CDATA)|(1u<<IRT_TAB)|(1u<<IRT_UDATA)) | ||
380 | #elif LJ_64 | ||
375 | #define IRT_IS64 \ | 381 | #define IRT_IS64 \ |
376 | ((1u<<IRT_NUM)|(1u<<IRT_I64)|(1u<<IRT_U64)|(1u<<IRT_P64)|(1u<<IRT_LIGHTUD)) | 382 | ((1u<<IRT_NUM)|(1u<<IRT_I64)|(1u<<IRT_U64)|(1u<<IRT_P64)|(1u<<IRT_LIGHTUD)) |
377 | #else | 383 | #else |
@@ -392,7 +398,7 @@ static LJ_AINLINE IRType itype2irt(const TValue *tv) | |||
392 | return IRT_INT; | 398 | return IRT_INT; |
393 | else if (tvisnum(tv)) | 399 | else if (tvisnum(tv)) |
394 | return IRT_NUM; | 400 | return IRT_NUM; |
395 | #if LJ_64 | 401 | #if LJ_64 && !LJ_GC64 |
396 | else if (tvislightud(tv)) | 402 | else if (tvislightud(tv)) |
397 | return IRT_LIGHTUD; | 403 | return IRT_LIGHTUD; |
398 | #endif | 404 | #endif |
@@ -547,6 +553,7 @@ typedef union IRIns { | |||
547 | MRef ptr; /* Pointer constant (overlaps op12). */ | 553 | MRef ptr; /* Pointer constant (overlaps op12). */ |
548 | } IRIns; | 554 | } IRIns; |
549 | 555 | ||
556 | /* TODO_GC64: major changes required. */ | ||
550 | #define ir_kgc(ir) check_exp((ir)->o == IR_KGC, gcref((ir)->gcr)) | 557 | #define ir_kgc(ir) check_exp((ir)->o == IR_KGC, gcref((ir)->gcr)) |
551 | #define ir_kstr(ir) (gco2str(ir_kgc((ir)))) | 558 | #define ir_kstr(ir) (gco2str(ir_kgc((ir)))) |
552 | #define ir_ktab(ir) (gco2tab(ir_kgc((ir)))) | 559 | #define ir_ktab(ir) (gco2tab(ir_kgc((ir)))) |