From: Andrew Cagney Date: Thu, 29 May 1997 07:25:20 +0000 (+0000) Subject: Fix subu immed - was incorrectly using unsigned. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4e95b94e1eaa92c6694582bcb93e90df28d5ee33;p=binutils-gdb.git Fix subu immed - was incorrectly using unsigned. --- diff --git a/sim/tic80/ChangeLog b/sim/tic80/ChangeLog index d0c56c06155..62aecf21799 100644 --- a/sim/tic80/ChangeLog +++ b/sim/tic80/ChangeLog @@ -1,3 +1,9 @@ +Thu May 29 12:09:13 1997 Andrew Cagney + + * alu.h (IMEM_IMMED): New macro, fetch 32bit immediate operand N. + + * insns (subu i): Immediate is signed not unsigned. + Tue May 27 13:22:13 1997 Andrew Cagney * sim-calls.c (sim_read): Pass NULL cpu to sim_core_read_buffer. diff --git a/sim/tic80/alu.h b/sim/tic80/alu.h index 3f13759e61b..ce40a0160fb 100644 --- a/sim/tic80/alu.h +++ b/sim/tic80/alu.h @@ -41,6 +41,9 @@ with this program; if not, write to the Free Software Foundation, Inc., #define IMEM(CIA) \ (sim_core_read_aligned_4(STATE_CPU (sd, 0), CIA, sim_core_execute_map, (CIA).ip)) +#define IMEM_IMMED(CIA, N) \ +(sim_core_read_aligned_4 (STATE_CPU (sd, 0), CIA, sim_core_execute_map, (CIA).ip + 4 * (N))) + #define MEM(SIGN, EA, NR_BYTES) \ ((SIGN##_##NR_BYTES) sim_core_read_unaligned_##NR_BYTES (STATE_CPU (sd, 0), cia, \ sim_core_read_map, \ diff --git a/sim/tic80/insns b/sim/tic80/insns index ad71d216b97..a3aceaea505 100644 --- a/sim/tic80/insns +++ b/sim/tic80/insns @@ -988,7 +988,7 @@ void::function::do_subu:unsigned32 *rDest, unsigned32 Source1, signed32 Source2 TRACE_ALU3 (MY_INDEX, result, Source1, Source2); *rDest = result; // NOTE - the book has 15.1 which conflicts with subu. -31.Dest,26.Source2,21.0b101101,15.1,14.UnsignedImmediate::::subu i +31.Dest,26.Source2,21.0b101101,15.1,14.SignedImmediate::::subu i do_subu (_SD, rDest, vSource1, vSource2); 31.Dest,26.Source2,21.0b11101101,13.1,12.0,11./,4.Source1::::subu r do_subu (_SD, rDest, vSource1, vSource2);