From 41fb94defa8f830ce69a8122b03f6ac3216d392a Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Wed, 30 Aug 2023 01:10:52 +0200 Subject: Add randomized register allocation for fuzz testing. This must be explicitly enabled with: -DLUAJIT_RANDOM_RA Thanks to Peter Cawley. #1062 --- src/lj_target.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/lj_target.h') 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; */ #if LJ_TARGET_PPC || LJ_TARGET_MIPS || LJ_TARGET_ARM64 typedef uint64_t RegSet; +#define RSET_BITS 6 #else typedef uint32_t RegSet; +#define RSET_BITS 5 #endif #define RID2RSET(r) (((RegSet)1) << (r)) @@ -70,11 +72,11 @@ typedef uint32_t RegSet; #define rset_clear(rs, r) (rs &= ~RID2RSET(r)) #define rset_exclude(rs, r) (rs & ~RID2RSET(r)) #if LJ_TARGET_PPC || LJ_TARGET_MIPS || LJ_TARGET_ARM64 -#define rset_picktop(rs) ((Reg)(__builtin_clzll(rs)^63)) -#define rset_pickbot(rs) ((Reg)__builtin_ctzll(rs)) +#define rset_picktop_(rs) ((Reg)(__builtin_clzll(rs)^63)) +#define rset_pickbot_(rs) ((Reg)__builtin_ctzll(rs)) #else -#define rset_picktop(rs) ((Reg)lj_fls(rs)) -#define rset_pickbot(rs) ((Reg)lj_ffs(rs)) +#define rset_picktop_(rs) ((Reg)lj_fls(rs)) +#define rset_pickbot_(rs) ((Reg)lj_ffs(rs)) #endif /* -- Register allocation cost -------------------------------------------- */ -- cgit v1.2.3-55-g6feb