diff options
Diffstat (limited to 'src/lj_target.h')
-rw-r--r-- | src/lj_target.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lj_target.h b/src/lj_target.h index 8575dd5a..13de8fc6 100644 --- a/src/lj_target.h +++ b/src/lj_target.h | |||
@@ -53,7 +53,7 @@ typedef uint32_t RegSP; | |||
53 | /* Bitset for registers. 32 registers suffice for most architectures. | 53 | /* Bitset for registers. 32 registers suffice for most architectures. |
54 | ** Note that one set holds bits for both GPRs and FPRs. | 54 | ** Note that one set holds bits for both GPRs and FPRs. |
55 | */ | 55 | */ |
56 | #if LJ_TARGET_PPC | 56 | #if LJ_TARGET_PPC || LJ_TARGET_MIPS |
57 | typedef uint64_t RegSet; | 57 | typedef uint64_t RegSet; |
58 | #else | 58 | #else |
59 | typedef uint32_t RegSet; | 59 | typedef uint32_t RegSet; |
@@ -63,11 +63,11 @@ typedef uint32_t RegSet; | |||
63 | #define RSET_EMPTY ((RegSet)0) | 63 | #define RSET_EMPTY ((RegSet)0) |
64 | #define RSET_RANGE(lo, hi) ((RID2RSET((hi)-(lo))-1) << (lo)) | 64 | #define RSET_RANGE(lo, hi) ((RID2RSET((hi)-(lo))-1) << (lo)) |
65 | 65 | ||
66 | #define rset_test(rs, r) (((rs) >> (r)) & 1) | 66 | #define rset_test(rs, r) ((int)((rs) >> (r)) & 1) |
67 | #define rset_set(rs, r) (rs |= RID2RSET(r)) | 67 | #define rset_set(rs, r) (rs |= RID2RSET(r)) |
68 | #define rset_clear(rs, r) (rs &= ~RID2RSET(r)) | 68 | #define rset_clear(rs, r) (rs &= ~RID2RSET(r)) |
69 | #define rset_exclude(rs, r) (rs & ~RID2RSET(r)) | 69 | #define rset_exclude(rs, r) (rs & ~RID2RSET(r)) |
70 | #if LJ_TARGET_PPC | 70 | #if LJ_TARGET_PPC || LJ_TARGET_MIPS |
71 | #define rset_picktop(rs) ((Reg)(__builtin_clzll(rs)^63)) | 71 | #define rset_picktop(rs) ((Reg)(__builtin_clzll(rs)^63)) |
72 | #define rset_pickbot(rs) ((Reg)__builtin_ctzll(rs)) | 72 | #define rset_pickbot(rs) ((Reg)__builtin_ctzll(rs)) |
73 | #else | 73 | #else |