diff options
author | Andrew Cagney <cagney@redhat.com> | 1997-05-29 07:25:20 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 1997-05-29 07:25:20 +0000 |
commit | 4e95b94e1eaa92c6694582bcb93e90df28d5ee33 (patch) | |
tree | b59a82d0498ab76fc71b9d5054be809c9f133bef /sim | |
parent | efe4f1cbf80c4508bfb97e4ae13db7bb1d1fa31d (diff) | |
download | gdb-4e95b94e1eaa92c6694582bcb93e90df28d5ee33.zip gdb-4e95b94e1eaa92c6694582bcb93e90df28d5ee33.tar.gz gdb-4e95b94e1eaa92c6694582bcb93e90df28d5ee33.tar.bz2 |
Fix subu immed - was incorrectly using unsigned.
Diffstat (limited to 'sim')
-rw-r--r-- | sim/tic80/ChangeLog | 6 | ||||
-rw-r--r-- | sim/tic80/alu.h | 3 | ||||
-rw-r--r-- | sim/tic80/insns | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/sim/tic80/ChangeLog b/sim/tic80/ChangeLog index d0c56c0..62aecf2 100644 --- a/sim/tic80/ChangeLog +++ b/sim/tic80/ChangeLog @@ -1,3 +1,9 @@ +Thu May 29 12:09:13 1997 Andrew Cagney <cagney@b2.cygnus.com> + + * 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 <cagney@b1.cygnus.com> * 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 3f13759..ce40a01 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 ad71d21..a3aceae 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); |