diff options
Diffstat (limited to 'sim/lm32')
-rw-r--r-- | sim/lm32/cpu.h | 6 | ||||
-rw-r--r-- | sim/lm32/decode.c | 20 |
2 files changed, 13 insertions, 13 deletions
diff --git a/sim/lm32/cpu.h b/sim/lm32/cpu.h index 3bb7caf..7484ce9 100644 --- a/sim/lm32/cpu.h +++ b/sim/lm32/cpu.h @@ -198,7 +198,7 @@ struct scache { f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \ f_r0 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \ f_r1 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \ - f_imm = EXTRACT_LSB0_INT (insn, 32, 15, 16); \ + f_imm = EXTRACT_LSB0_SINT (insn, 32, 15, 16); \ #define EXTRACT_IFMT_ANDI_VARS \ UINT f_opcode; \ @@ -248,7 +248,7 @@ struct scache { #define EXTRACT_IFMT_BI_CODE \ length = 4; \ f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \ - f_call = ((pc) + (((int) (((EXTRACT_LSB0_INT (insn, 32, 25, 26)) << (6))) >> (4)))); \ + f_call = ((pc) + (((int) (((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (6))) >> (4)))); \ #define EXTRACT_IFMT_BE_VARS \ UINT f_opcode; \ @@ -261,7 +261,7 @@ struct scache { f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \ f_r0 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \ f_r1 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \ - f_branch = ((pc) + (((int) (((EXTRACT_LSB0_INT (insn, 32, 15, 16)) << (16))) >> (14)))); \ + f_branch = ((pc) + (((int) (((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (16))) >> (14)))); \ #define EXTRACT_IFMT_ORI_VARS \ UINT f_opcode; \ diff --git a/sim/lm32/decode.c b/sim/lm32/decode.c index a5d7e2e..8aa8f8c 100644 --- a/sim/lm32/decode.c +++ b/sim/lm32/decode.c @@ -392,7 +392,7 @@ lm32bf_decode (SIM_CPU *current_cpu, IADDR pc, f_r0 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); f_r1 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); - f_imm = EXTRACT_LSB0_INT (insn, 32, 15, 16); + f_imm = EXTRACT_LSB0_SINT (insn, 32, 15, 16); /* Record the fields for the semantic handler. */ FLD (f_imm) = f_imm; @@ -474,7 +474,7 @@ lm32bf_decode (SIM_CPU *current_cpu, IADDR pc, #define FLD(f) abuf->fields.sfmt_bi.f SI f_call; - f_call = ((pc) + (((int) (((EXTRACT_LSB0_INT (insn, 32, 25, 26)) << (6))) >> (4)))); + f_call = ((pc) + (((int) (((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (6))) >> (4)))); /* Record the fields for the semantic handler. */ FLD (i_call) = f_call; @@ -495,7 +495,7 @@ lm32bf_decode (SIM_CPU *current_cpu, IADDR pc, f_r0 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); f_r1 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); - f_branch = ((pc) + (((int) (((EXTRACT_LSB0_INT (insn, 32, 15, 16)) << (16))) >> (14)))); + f_branch = ((pc) + (((int) (((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (16))) >> (14)))); /* Record the fields for the semantic handler. */ FLD (f_r0) = f_r0; @@ -531,7 +531,7 @@ lm32bf_decode (SIM_CPU *current_cpu, IADDR pc, #define FLD(f) abuf->fields.sfmt_bi.f SI f_call; - f_call = ((pc) + (((int) (((EXTRACT_LSB0_INT (insn, 32, 25, 26)) << (6))) >> (4)))); + f_call = ((pc) + (((int) (((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (6))) >> (4)))); /* Record the fields for the semantic handler. */ FLD (i_call) = f_call; @@ -575,7 +575,7 @@ lm32bf_decode (SIM_CPU *current_cpu, IADDR pc, f_r0 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); f_r1 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); - f_imm = EXTRACT_LSB0_INT (insn, 32, 15, 16); + f_imm = EXTRACT_LSB0_SINT (insn, 32, 15, 16); /* Record the fields for the semantic handler. */ FLD (f_imm) = f_imm; @@ -598,7 +598,7 @@ lm32bf_decode (SIM_CPU *current_cpu, IADDR pc, f_r0 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); f_r1 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); - f_imm = EXTRACT_LSB0_INT (insn, 32, 15, 16); + f_imm = EXTRACT_LSB0_SINT (insn, 32, 15, 16); /* Record the fields for the semantic handler. */ FLD (f_imm) = f_imm; @@ -621,7 +621,7 @@ lm32bf_decode (SIM_CPU *current_cpu, IADDR pc, f_r0 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); f_r1 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); - f_imm = EXTRACT_LSB0_INT (insn, 32, 15, 16); + f_imm = EXTRACT_LSB0_SINT (insn, 32, 15, 16); /* Record the fields for the semantic handler. */ FLD (f_imm) = f_imm; @@ -687,7 +687,7 @@ lm32bf_decode (SIM_CPU *current_cpu, IADDR pc, f_r0 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); f_r1 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); - f_imm = EXTRACT_LSB0_INT (insn, 32, 15, 16); + f_imm = EXTRACT_LSB0_SINT (insn, 32, 15, 16); /* Record the fields for the semantic handler. */ FLD (f_imm) = f_imm; @@ -730,7 +730,7 @@ lm32bf_decode (SIM_CPU *current_cpu, IADDR pc, f_r0 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); f_r1 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); - f_imm = EXTRACT_LSB0_INT (insn, 32, 15, 16); + f_imm = EXTRACT_LSB0_SINT (insn, 32, 15, 16); /* Record the fields for the semantic handler. */ FLD (f_imm) = f_imm; @@ -753,7 +753,7 @@ lm32bf_decode (SIM_CPU *current_cpu, IADDR pc, f_r0 = EXTRACT_LSB0_UINT (insn, 32, 25, 5); f_r1 = EXTRACT_LSB0_UINT (insn, 32, 20, 5); - f_imm = EXTRACT_LSB0_INT (insn, 32, 15, 16); + f_imm = EXTRACT_LSB0_SINT (insn, 32, 15, 16); /* Record the fields for the semantic handler. */ FLD (f_imm) = f_imm; |