Browse Source

[xcc,sim] fixed RM field

cs250
Andrew Waterman 15 years ago
parent
commit
f5f9ed0a0d
  1. 6
      riscv/decode.h

6
riscv/decode.h

@ -182,8 +182,10 @@ private:
#define TARGET insn.jtype.target #define TARGET insn.jtype.target
#define BRANCH_TARGET (pc + (BIMM << BRANCH_ALIGN_BITS)) #define BRANCH_TARGET (pc + (BIMM << BRANCH_ALIGN_BITS))
#define JUMP_TARGET (pc + (TARGET << JUMP_ALIGN_BITS)) #define JUMP_TARGET (pc + (TARGET << JUMP_ALIGN_BITS))
#define RM ((insn.ftype.rm != 7) ? insn.ftype.rm : \ #define RM ({ int rm = insn.ftype.rm; \
((fsr & FSR_RD) >> FSR_RD_SHIFT)) if(rm == 7) rm = (fsr & FSR_RD) >> FSR_RD_SHIFT; \
if(rm > 4) throw trap_illegal_instruction; \
rm; })
#define require_supervisor if(!(sr & SR_S)) throw trap_privileged_instruction #define require_supervisor if(!(sr & SR_S)) throw trap_privileged_instruction
#define xpr64 (xprlen == 64) #define xpr64 (xprlen == 64)

Loading…
Cancel
Save