diff options
Diffstat (limited to 'sim/iq2000/cpu.h')
-rw-r--r-- | sim/iq2000/cpu.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sim/iq2000/cpu.h b/sim/iq2000/cpu.h index edc50c4..3d3992f 100644 --- a/sim/iq2000/cpu.h +++ b/sim/iq2000/cpu.h @@ -278,7 +278,7 @@ struct scache { f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \ f_rs = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \ f_rt = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \ - f_offset = ((((EXTRACT_LSB0_INT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); \ + f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); \ #define EXTRACT_IFMT_BBV_VARS \ UINT f_opcode; \ @@ -291,7 +291,7 @@ struct scache { f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \ f_rs = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \ f_rt = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \ - f_offset = ((((EXTRACT_LSB0_INT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); \ + f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); \ #define EXTRACT_IFMT_BGEZ_VARS \ UINT f_opcode; \ @@ -304,7 +304,7 @@ struct scache { f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \ f_rs = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \ f_rt = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \ - f_offset = ((((EXTRACT_LSB0_INT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); \ + f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); \ #define EXTRACT_IFMT_JALR_VARS \ UINT f_opcode; \ @@ -437,7 +437,7 @@ struct scache { f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \ f_rs = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \ f_rt = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \ - f_offset = ((((EXTRACT_LSB0_INT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); \ + f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); \ #define EXTRACT_IFMT_CFC0_VARS \ UINT f_opcode; \ |