* sim-alu.h (ALU64_HAD_OVERFLOW): Define.
authorAndrew Cagney <cagney@redhat.com>
Tue, 14 Oct 1997 09:39:05 +0000 (09:39 +0000)
committerAndrew Cagney <cagney@redhat.com>
Tue, 14 Oct 1997 09:39:05 +0000 (09:39 +0000)
(ALU64_SUB): Define.
* Make-common.in (all): Build SIM_EXTRA_ALL first.
(.gdbinit): Remove dependencies, generate once per build.

sim/common/ChangeLog
sim/common/Make-common.in
sim/common/sim-alu.h

index f99c7d3fd6661cfa881cf497dcc239ee7b0ea631..a42cdaa2f61b0d67753bc4d2dd9eb9ede479049e 100644 (file)
@@ -1,3 +1,11 @@
+Mon Oct 13 11:34:50 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-alu.h (ALU64_HAD_OVERFLOW): Define.
+       (ALU64_SUB): Define.
+
+       * Make-common.in (all): Build SIM_EXTRA_ALL first.
+       (.gdbinit): Remove dependencies, generate once per build.
+
 Tue Oct 14 19:20:09 1997  Andrew Cagney  <cagney@b1.cygnus.com>
 
        * sim-n-core.h (sim_core_read_aligned_N,
index c0e200c41a6c63691ece63040e3ff5e177622438..b40cb8ef64f4e2dabad98bef077b18f08e149d94 100644 (file)
@@ -73,6 +73,7 @@ SIM_PROFILE = @sim_profile@
 
 SIM_ASSERT = @sim_assert@
 SIM_ALIGNMENT = @sim_alignment@
+SIM_BITSIZE = @sim_bitsize@
 SIM_DEFAULT_MODEL = @sim_default_model@
 SIM_ENDIAN = @sim_endian@
 SIM_FLOAT = @sim_float@
@@ -134,6 +135,7 @@ CONFIG_CFLAGS = @DEFS@ \
        $(SIM_BSWAP) \
        $(SIM_ASSERT) \
        $(SIM_ALIGNMENT) \
+       $(SIM_BITSIZE) \
        $(SIM_ENDIAN) \
        $(SIM_FLOAT) \
        $(SIM_HARDWARE) \
@@ -167,7 +169,7 @@ EXTRA_LIBS = $(BFD_LIB) $(OPCODES_LIB) $(LIBIBERTY_LIB) \
 
 LIB_OBJS = callback.o targ-map.o $(SIM_OBJS)
 
-all: libsim.a run $(SIM_EXTRA_ALL)
+all: $(SIM_EXTRA_ALL) libsim.a run
 
 libsim.a: $(LIB_OBJS)
        rm -f libsim.a
@@ -433,7 +435,7 @@ config.h: stamp-h ; @true
 stamp-h: config.in config.status
        CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status
 
-.gdbinit: config.status $(srcdir)/../common/gdbinit.in
+.gdbinit: config.status $(srcdir)/../common/gdbinit.in
        CONFIG_FILES=$@:../common/gdbinit.in CONFIG_HEADERS= $(SHELL) ./config.status
 
 ## End COMMON_POST_CONFIG_FRAG
index 46306c9eb747b8f64fe82415a6d7b72f0c798f11..98bbfd288a5733c594858cef0550c8e9864c4e51 100644 (file)
@@ -132,7 +132,7 @@ do { \
 #define ALU64_ADD(VAL) \
 do { \
   unsigned64 val = (VAL); \
-  unsigned64 alu_lo = alu_val + val); \
+  unsigned64 alu_lo = alu_val + val; \
   signed alu_carry = ((alu_lo & LSBIT64 (31)) != 0); \
   alu_carry_val = (alu_carry_val \
                   + MSEXTRACTED64 (val, 0, 31) \
@@ -186,7 +186,8 @@ do { \
 
 #define ALU64_SUB(VAL) \
 do { \
-  error("ALU_SUB64"); \
+  signed64 subval = -(VAL); /* -MININT? */ \
+  ALU64_ADD (subval); \
 } while (0)
 
 #define ALU_SUB(VAL) XCONCAT3(ALU,WITH_TARGET_WORD_BITSIZE,_SUB)(VAL)
@@ -334,11 +335,15 @@ do { \
   (!(alu_overflow_val & MSBIT32 (0)) != !(alu_overflow_val & MSBIT32 (16)))
   
 #define ALU32_HAD_OVERFLOW \
-  ((((unsigned64)(alu_overflow_val & BIT64(0))) >> 32) \
-   != (alu_overflow_val & MSBIT64(32)))
+  ((((unsigned64)(alu_overflow_val & MSBIT64(0))) >> 32) \
+   != (unsigned64)(alu_overflow_val & MSBIT64(32)))
+
+#define ALU64_HAD_OVERFLOW \
+  ((alu_val & MSBIT64 (0)) != (alu_overflow_val & MSBIT64 (0)))
 
 #define ALU_HAD_OVERFLOW XCONCAT3(ALU,WITH_TARGET_WORD_BITSIZE,_HAD_OVERFLOW)
 
+
 /* carry found in bit before sign */
 
 #define ALU16_HAD_CARRY \