summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/sparc/sparcdefs.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/sparc/sparcdefs.h')
-rw-r--r--src/devices/cpu/sparc/sparcdefs.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/devices/cpu/sparc/sparcdefs.h b/src/devices/cpu/sparc/sparcdefs.h
index fd90b065ed8..66147c37780 100644
--- a/src/devices/cpu/sparc/sparcdefs.h
+++ b/src/devices/cpu/sparc/sparcdefs.h
@@ -97,17 +97,17 @@
#define OPFLOW ((op >> 5) & 0x3f)
#define DISP30 (int32_t(op << 2))
-#define DISP22 (int32_t(op << 10) >> 8)
-#define DISP19 (int32_t(op << 13) >> 11)
-#define DISP16 (int32_t(((op << 10) & 0xc0000000) | ((op << 16) & 0x3fff0000)) >> 14)
+#define DISP22 util::sext(op << 2, 24)
+#define DISP19 util::sext(op << 2, 21)
+#define DISP16 util::sext((op & 0x300000) >> 4 | (op & 0x3fff) << 2, 18)
#define IMM22 (op << 10)
#define CONST22 (op & 0x3fffff)
-#define SIMM13 (int32_t(op << 19) >> 19)
-#define SIMM11 (int32_t(op << 21) >> 21)
-#define SIMM10 (int32_t(op << 22) >> 22)
-#define SIMM8 (int32_t(op << 24) >> 24)
+#define SIMM13 util::sext(op, 13)
+#define SIMM11 util::sext(op, 11)
+#define SIMM10 util::sext(op, 10)
+#define SIMM8 util::sext(op, 8)
#define IMM7 (op & 0x7f)
-#define SIMM7 (int32_t(op << 25) >> 25)
+#define SIMM7 util::sext(op, 7)
#define SHCNT32 (op & 31)
#define SHCNT64 (op & 63)
#define IAMODE (op & 0x7)