aboutsummaryrefslogtreecommitdiff
path: root/riscv
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2022-09-22 14:55:50 -0700
committerAndrew Waterman <andrew@sifive.com>2022-10-04 15:40:01 -0700
commit3447aecd16e8ce34109a122d3f95b5e69176505f (patch)
tree11944d7509e74973d2a32f82a3163e4792868aca /riscv
parent3e166310b4fab72cbbf73e34de6a0b66ba6155ed (diff)
downloadspike-3447aecd16e8ce34109a122d3f95b5e69176505f.zip
spike-3447aecd16e8ce34109a122d3f95b5e69176505f.tar.gz
spike-3447aecd16e8ce34109a122d3f95b5e69176505f.tar.bz2
Rewrite READ_REG macro to avoid GNU statement expression extension
This way, it can be used as an expression within a template argument.
Diffstat (limited to 'riscv')
-rw-r--r--riscv/decode.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/riscv/decode.h b/riscv/decode.h
index 5fb0358..1b55502 100644
--- a/riscv/decode.h
+++ b/riscv/decode.h
@@ -177,7 +177,7 @@ private:
#define STATE (*p->get_state())
#define FLEN (p->get_flen())
#define CHECK_REG(reg) ((void) 0)
-#define READ_REG(reg) ({ CHECK_REG(reg); STATE.XPR[reg]; })
+#define READ_REG(reg) (CHECK_REG(reg), STATE.XPR[reg])
#define READ_FREG(reg) STATE.FPR[reg]
#define RD READ_REG(insn.rd())
#define RS1 READ_REG(insn.rs1())