diff options
Diffstat (limited to 'src/devices/cpu/sparc/sparcdefs.h')
-rw-r--r-- | src/devices/cpu/sparc/sparcdefs.h | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/devices/cpu/sparc/sparcdefs.h b/src/devices/cpu/sparc/sparcdefs.h index 385392feacb..38227f4c668 100644 --- a/src/devices/cpu/sparc/sparcdefs.h +++ b/src/devices/cpu/sparc/sparcdefs.h @@ -29,9 +29,13 @@ #define PSR_RES_MASK 0x000fc000 #define PSR_ICC_MASK 0x00f00000 #define PSR_N_MASK 0x00800000 +#define PSR_N_SHIFT 23 #define PSR_Z_MASK 0x00400000 +#define PSR_Z_SHIFT 22 #define PSR_V_MASK 0x00200000 +#define PSR_V_SHIFT 21 #define PSR_C_MASK 0x00100000 +#define PSR_C_SHIFT 20 #define PSR_VER_SHIFT 24 #define PSR_VER_MASK 0x0f000000 #define PSR_VER 0 @@ -41,25 +45,25 @@ #define PSR_ZERO_MASK (PSR_IMPL_MASK | PSR_VER_MASK | PSR_RES_MASK) #define ICC_N_SET (m_psr & PSR_N_MASK) -#define ICC_N (ICC_N_SET ? 1 : 0) +#define ICC_N (ICC_N_SET >> PSR_N_SHIFT) #define ICC_N_CLEAR (!ICC_N_SET) #define SET_ICC_N_FLAG do { m_psr |= PSR_N_MASK; } while(0) #define CLEAR_ICC_N_FLAG do { m_psr &= ~PSR_N_MASK; } while(0) #define ICC_Z_SET (m_psr & PSR_Z_MASK) -#define ICC_Z (ICC_Z_SET ? 1 : 0) +#define ICC_Z (ICC_Z_SET >> PSR_Z_SHIFT) #define ICC_Z_CLEAR (!ICC_Z_SET) #define SET_ICC_Z_FLAG do { m_psr |= PSR_Z_MASK; } while(0) #define CLEAR_ICC_Z_FLAG do { m_psr &= ~PSR_Z_MASK; } while(0) #define ICC_V_SET (m_psr & PSR_V_MASK) -#define ICC_V (ICC_V_SET ? 1 : 0) +#define ICC_V (ICC_V_SET >> PSR_V_SHIFT) #define ICC_V_CLEAR (!ICC_V_SET) #define SET_ICC_V_FLAG do { m_psr |= PSR_V_MASK; } while(0) #define CLEAR_ICC_V_FLAG do { m_psr &= ~PSR_V_MASK; } while(0) #define ICC_C_SET (m_psr & PSR_C_MASK) -#define ICC_C (ICC_C_SET ? 1 : 0) +#define ICC_C (ICC_C_SET >> PSR_C_SHIFT) #define ICC_C_CLEAR (!ICC_C_SET) #define SET_ICC_C_FLAG do { m_psr |= PSR_C_MASK; } while(0) #define CLEAR_ICC_C_FLAG do { m_psr &= ~PSR_C_MASK; } while(0) @@ -106,23 +110,24 @@ #define SHCNT64 (op & 63) #define IAMODE (op & 0x7) #define USEIMM (op & (1 << 13)) -#define USEEXT ((op >> 12) & 1) +#define USEEXT (op & (1 << 12)) #define COND ((op >> 25) & 15) #define RCOND ((op >> 10) & 7) #define MOVCOND ((op >> 14) & 15) -#define PRED ((op >> 19) & 1) -#define ANNUL ((op >> 29) & 1) +#define PRED (op & (1 << 19)) +#define ANNUL (op & (1 << 29)) #define BRCC ((op >> 20) & 3) #define MOVCC (((op >> 11) & 3) | ((op >> 16) & 4)) #define OPFCC ((op >> 11) & 7) #define TCCCC ((op >> 11) & 3) -#define ASI ((op >> 5) & 255) +#define ASI (uint8_t)(op >> 5) #define MMASK (op & 15) #define CMASK ((op >> 4) & 7) #define RD ((op >> 25) & 31) +#define RDBITS (op & 0x3e000000) #define RS1 ((op >> 14) & 31) #define RS2 (op & 31) |