aboutsummaryrefslogtreecommitdiff
path: root/src/lj_target.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_target.h')
-rw-r--r--src/lj_target.h10
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
59typedef uint64_t RegSet; 59typedef uint64_t RegSet;
60#define RSET_BITS 6
60#else 61#else
61typedef uint32_t RegSet; 62typedef 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 -------------------------------------------- */