diff options
author | Jason Molenda <jmolenda@apple.com> | 1999-09-22 03:28:34 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 1999-09-22 03:28:34 +0000 |
commit | c2c6d25f0d5eea4f834420870021a8c52db24018 (patch) | |
tree | f4b3d5e9e3207fa8118db4085f9c6a0cbc2bdaf6 /sim/common | |
parent | 54af6ff67571ba569b94e26d558d02f9955e6844 (diff) | |
download | gdb-c2c6d25f0d5eea4f834420870021a8c52db24018.zip gdb-c2c6d25f0d5eea4f834420870021a8c52db24018.tar.gz gdb-c2c6d25f0d5eea4f834420870021a8c52db24018.tar.bz2 |
import gdb-1999-09-21
Diffstat (limited to 'sim/common')
-rw-r--r-- | sim/common/ChangeLog | 17 | ||||
-rw-r--r-- | sim/common/Make-common.in | 1 | ||||
-rw-r--r-- | sim/common/cgen-par.c | 12 | ||||
-rw-r--r-- | sim/common/cgen-par.h | 7 | ||||
-rw-r--r-- | sim/common/hw-instances.c | 1 | ||||
-rw-r--r-- | sim/common/hw-properties.c | 1 | ||||
-rw-r--r-- | sim/common/hw-tree.c | 1 | ||||
-rw-r--r-- | sim/common/sim-base.h | 1 | ||||
-rw-r--r-- | sim/common/sim-fpu.c | 2 |
9 files changed, 39 insertions, 4 deletions
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index 4f9d270..e027456 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,3 +1,20 @@ +Mon Sep 20 21:44:06 1999 Geoffrey Keating <geoffk@cygnus.com> + + * sim-fpu.c (i2fpu): Keep the guard bits sticky when converting + large values. + +Wed Sep 15 14:12:37 1999 Andrew Cagney <cagney@b1.cygnus.com> + + * hw-tree.c, hw-properties.c, hw-instances.c: Include "sim-io.h". + +Tue Sep 14 14:15:47 1999 Dave Brolley <brolley@cygnus.com> + + * cgen-par.h (CGEN_BI_WRITE): New enumerator. + (bi_write): New union element. + (sim_queue_bi_write): New function. + * cgen-par.c (sim_queue_bi_write): New function. + (cgen_write_queue_element_execute): Handle CGEN_BI_WRITE. + Thu Sep 2 18:15:53 1999 Andrew Cagney <cagney@b1.cygnus.com> * configure: Regenerated to track ../common/aclocal.m4 changes. diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in index 9b9ea4e..7c25d6c 100644 --- a/sim/common/Make-common.in +++ b/sim/common/Make-common.in @@ -399,7 +399,6 @@ sim-fpu.o: $(srccom)/sim-fpu.c $(sim-fpu_h) \ $(SIM_EXTRA_DEPS) $(CC) -c $(srccom)/sim-fpu.c $(ALL_CFLAGS) - sim-hload.o: $(srccom)/sim-hload.c $(sim-assert_h) \ $(srcroot)/include/remote-sim.h \ $(SIM_EXTRA_DEPS) diff --git a/sim/common/cgen-par.c b/sim/common/cgen-par.c index 8b983fb..51147ad 100644 --- a/sim/common/cgen-par.c +++ b/sim/common/cgen-par.c @@ -24,6 +24,15 @@ with this program; if not, write to the Free Software Foundation, Inc., /* Functions required by the cgen interface. These functions add various kinds of writes to the write queue. */ +void sim_queue_bi_write (SIM_CPU *cpu, BI *target, BI value) +{ + CGEN_WRITE_QUEUE *q = CPU_WRITE_QUEUE (cpu); + CGEN_WRITE_QUEUE_ELEMENT *element = CGEN_WRITE_QUEUE_NEXT (q); + element->kind = CGEN_BI_WRITE; + element->kinds.bi_write.target = target; + element->kinds.bi_write.value = value; +} + void sim_queue_qi_write (SIM_CPU *cpu, UQI *target, UQI value) { CGEN_WRITE_QUEUE *q = CPU_WRITE_QUEUE (cpu); @@ -138,6 +147,9 @@ cgen_write_queue_element_execute (SIM_CPU *cpu, CGEN_WRITE_QUEUE_ELEMENT *item) IADDR pc; switch (CGEN_WRITE_QUEUE_ELEMENT_KIND (item)) { + case CGEN_BI_WRITE: + *item->kinds.bi_write.target = item->kinds.bi_write.value; + break; case CGEN_QI_WRITE: *item->kinds.qi_write.target = item->kinds.qi_write.value; break; diff --git a/sim/common/cgen-par.h b/sim/common/cgen-par.h index ce4efd5..25272a3 100644 --- a/sim/common/cgen-par.h +++ b/sim/common/cgen-par.h @@ -23,7 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc., /* Kinds of writes stored on the write queue. */ enum cgen_write_queue_kind { - CGEN_QI_WRITE, CGEN_SI_WRITE, CGEN_SF_WRITE, + CGEN_BI_WRITE, CGEN_QI_WRITE, CGEN_SI_WRITE, CGEN_SF_WRITE, CGEN_PC_WRITE, CGEN_FN_SI_WRITE, CGEN_FN_DI_WRITE, CGEN_FN_DF_WRITE, CGEN_MEM_QI_WRITE, CGEN_MEM_HI_WRITE, CGEN_MEM_SI_WRITE, @@ -35,6 +35,10 @@ typedef struct { enum cgen_write_queue_kind kind; /* Used to select union member below. */ union { struct { + BI *target; + BI value; + } bi_write; + struct { UQI *target; QI value; } qi_write; @@ -107,6 +111,7 @@ typedef struct { extern CGEN_WRITE_QUEUE_ELEMENT *cgen_write_queue_overflow (CGEN_WRITE_QUEUE *); /* Functions for queuing writes. Used by semantic code. */ +extern void sim_queue_bi_write (SIM_CPU *, BI *, BI); extern void sim_queue_qi_write (SIM_CPU *, UQI *, UQI); extern void sim_queue_si_write (SIM_CPU *, SI *, SI); extern void sim_queue_sf_write (SIM_CPU *, SI *, SF); diff --git a/sim/common/hw-instances.c b/sim/common/hw-instances.c index 613f819..22c1cd9 100644 --- a/sim/common/hw-instances.c +++ b/sim/common/hw-instances.c @@ -22,6 +22,7 @@ #include "hw-main.h" #include "hw-base.h" +#include "sim-io.h" #include "sim-assert.h" struct hw_instance_data { diff --git a/sim/common/hw-properties.c b/sim/common/hw-properties.c index a1e9291..5a4d76d 100644 --- a/sim/common/hw-properties.c +++ b/sim/common/hw-properties.c @@ -21,6 +21,7 @@ #include "hw-main.h" #include "hw-base.h" +#include "sim-io.h" #include "sim-assert.h" #ifdef HAVE_STRING_H diff --git a/sim/common/hw-tree.c b/sim/common/hw-tree.c index 1a55835..3f31b3b 100644 --- a/sim/common/hw-tree.c +++ b/sim/common/hw-tree.c @@ -22,6 +22,7 @@ #include "hw-base.h" #include "hw-tree.h" +#include "sim-io.h" #include "sim-assert.h" #ifdef HAVE_STDLIB_H diff --git a/sim/common/sim-base.h b/sim/common/sim-base.h index f3af305..420b137 100644 --- a/sim/common/sim-base.h +++ b/sim/common/sim-base.h @@ -236,7 +236,6 @@ typedef struct { #define STATE_HW(sd) ((sd)->base.hw) #endif - /* Should image loads be performed using the LMA or VMA? Older simulators use the VMA while newer simulators prefer the LMA. */ int load_at_lma_p; diff --git a/sim/common/sim-fpu.c b/sim/common/sim-fpu.c index abf746a..99381e0 100644 --- a/sim/common/sim-fpu.c +++ b/sim/common/sim-fpu.c @@ -541,7 +541,7 @@ i2fpu (sim_fpu *f, signed64 i, int is_64bit) { do { - f->fraction >>= 1; + f->fraction = (f->fraction >> 1) | (f->fraction & 1); f->normal_exp += 1; } while (f->fraction >= IMPLICIT_2); |