diff options
Diffstat (limited to 'src/lj_target.h')
-rw-r--r-- | src/lj_target.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/lj_target.h b/src/lj_target.h index 2f4d21c1..09d19bd9 100644 --- a/src/lj_target.h +++ b/src/lj_target.h | |||
@@ -57,8 +57,10 @@ typedef uint32_t RegSP; | |||
57 | */ | 57 | */ |
58 | #if LJ_TARGET_PPC || LJ_TARGET_MIPS || LJ_TARGET_ARM64 | 58 | #if LJ_TARGET_PPC || LJ_TARGET_MIPS || LJ_TARGET_ARM64 |
59 | typedef uint64_t RegSet; | 59 | typedef uint64_t RegSet; |
60 | #define RSET_BITS 6 | ||
60 | #else | 61 | #else |
61 | typedef uint32_t RegSet; | 62 | typedef uint32_t RegSet; |
63 | #define RSET_BITS 5 | ||
62 | #endif | 64 | #endif |
63 | 65 | ||
64 | #define RID2RSET(r) (((RegSet)1) << (r)) | 66 | #define RID2RSET(r) (((RegSet)1) << (r)) |
@@ -70,11 +72,11 @@ typedef uint32_t RegSet; | |||
70 | #define rset_clear(rs, r) (rs &= ~RID2RSET(r)) | 72 | #define rset_clear(rs, r) (rs &= ~RID2RSET(r)) |
71 | #define rset_exclude(rs, r) (rs & ~RID2RSET(r)) | 73 | #define rset_exclude(rs, r) (rs & ~RID2RSET(r)) |
72 | #if LJ_TARGET_PPC || LJ_TARGET_MIPS || LJ_TARGET_ARM64 | 74 | #if LJ_TARGET_PPC || LJ_TARGET_MIPS || LJ_TARGET_ARM64 |
73 | #define rset_picktop(rs) ((Reg)(__builtin_clzll(rs)^63)) | 75 | #define rset_picktop_(rs) ((Reg)(__builtin_clzll(rs)^63)) |
74 | #define rset_pickbot(rs) ((Reg)__builtin_ctzll(rs)) | 76 | #define rset_pickbot_(rs) ((Reg)__builtin_ctzll(rs)) |
75 | #else | 77 | #else |
76 | #define rset_picktop(rs) ((Reg)lj_fls(rs)) | 78 | #define rset_picktop_(rs) ((Reg)lj_fls(rs)) |
77 | #define rset_pickbot(rs) ((Reg)lj_ffs(rs)) | 79 | #define rset_pickbot_(rs) ((Reg)lj_ffs(rs)) |
78 | #endif | 80 | #endif |
79 | 81 | ||
80 | /* -- Register allocation cost -------------------------------------------- */ | 82 | /* -- Register allocation cost -------------------------------------------- */ |