import gdb-2000-01-26 snapshot
authorJason Molenda <jmolenda@apple.com>
Wed, 26 Jan 2000 21:49:14 +0000 (21:49 +0000)
committerJason Molenda <jmolenda@apple.com>
Wed, 26 Jan 2000 21:49:14 +0000 (21:49 +0000)
gdb/Makefile.in
sim/arm/armemu.h
sim/arm/armsupp.c
sim/common/cgen-ops.h

index 68292d53e27ea66a0e0f47a3608d7dbda1ea3585..a8cfafec1cf93e89e3224f9f98ba9ad91ecfa4b8 100644 (file)
@@ -229,7 +229,7 @@ CDEPS = $(XM_CDEPS) $(TM_CDEPS) $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE) \
 ADD_FILES = $(REGEX) $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES)
 ADD_DEPS = $(REGEX1) $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES)
 
-VERSION = 20000124
+VERSION = 20000126
 DIST=gdb
 
 LINT=/usr/5bin/lint
index 9c40b8cc230801770854a686ccbdc5ec414c758d..e64dc93c6d827d6b26ced0664802724a05c3a33f 100644 (file)
@@ -95,6 +95,7 @@ extern ARMword isize;
 #define CLEARV state->VFlag = 0
 #define ASSIGNV(res) state->VFlag = res
 
+
 #define IFLAG (state->IFFlags >> 1)
 #define FFLAG (state->IFFlags & 1)
 #define IFFLAGS state->IFFlags
@@ -367,6 +368,8 @@ extern unsigned ARMul_NthReg(ARMword instr,unsigned number) ;
 extern void ARMul_MSRCpsr(ARMul_State *state, ARMword instr, ARMword rhs) ;
 extern void ARMul_NegZero(ARMul_State *state, ARMword result) ;
 extern void ARMul_AddCarry(ARMul_State *state, ARMword a, ARMword b, ARMword result) ;
+extern int AddOverflow(ARMword a, ARMword b, ARMword result) ;
+extern int SubOverflow(ARMword a, ARMword b, ARMword result) ;
 extern void ARMul_AddOverflow(ARMul_State *state, ARMword a, ARMword b, ARMword result) ;
 extern void ARMul_SubCarry(ARMul_State *state, ARMword a, ARMword b, ARMword result) ;
 extern void ARMul_SubOverflow(ARMul_State *state, ARMword a, ARMword b, ARMword result) ;
index 67edd95594d1be01028af7861e70d12e70845618..4979fd8150bde9e95ebd052d4d04a55268a61aef 100644 (file)
@@ -391,6 +391,20 @@ void ARMul_NegZero(ARMul_State *state, ARMword result)
  else { CLEARN ; CLEARZ ; } ;
  }
 
+/* Compute whether an addition of A and B, giving RESULT, overflowed.  */
+int AddOverflow (ARMword a, ARMword b, ARMword result)
+{
+  return ((NEG (a) && NEG (b) && POS (result))
+         || (POS (a) && POS (b) && NEG (result)));
+}
+
+/* Compute whether a subtraction of A and B, giving RESULT, overflowed.  */
+int SubOverflow (ARMword a, ARMword b, ARMword result)
+{
+  return ((NEG (a) && POS (b) && POS (result))
+         || (POS (a) && NEG (b) && NEG (result)));
+}
+
 /***************************************************************************\
 * Assigns the C flag after an addition of a and b to give result            *
 \***************************************************************************/
@@ -408,9 +422,8 @@ void ARMul_AddCarry(ARMul_State *state, ARMword a,ARMword b,ARMword result)
 
 void ARMul_AddOverflow(ARMul_State *state, ARMword a,ARMword b,ARMword result)
 {
- ASSIGNV( (NEG(a) && NEG(b) && POS(result)) ||
-          (POS(a) && POS(b) && NEG(result)) ) ;
- }
+  ASSIGNV (AddOverflow (a, b, result));
+}
 
 /***************************************************************************\
 * Assigns the C flag after an subtraction of a and b to give result         *
@@ -429,8 +442,7 @@ ASSIGNC( (NEG(a) && POS(b)) ||
 
 void ARMul_SubOverflow(ARMul_State *state,ARMword a,ARMword b,ARMword result)
 {
-ASSIGNV( (NEG(a) && POS(b) && POS(result)) ||
-         (POS(a) && NEG(b) && NEG(result)) ) ;
+  ASSIGNV (SubOverflow (a, b, result));
 }
 
 /***************************************************************************\
index 12fab70248cdd49c85a8d71b554c0797ff4d2536..03f03f0116bb74271f893c1fa7d415966486b5ea 100644 (file)
@@ -222,6 +222,7 @@ extern DI EXTQIDI (QI);
 #else
 #define EXTQIDI(x) ((DI) (QI) (x))
 #endif
+#define EXTHIHI(x) ((HI) (HI) (x))
 #define EXTHISI(x) ((SI) (HI) (x))
 #define EXTSISI(x) ((SI) (SI) (x))
 #if defined (DI_FN_SUPPORT)