import gdb-2000-01-26 snapshot

This commit is contained in:
Jason Molenda 2000-01-26 21:49:14 +00:00
parent cb26882951
commit f743149ecb
4 changed files with 22 additions and 6 deletions

View 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

View 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) ;

View 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));
}
/***************************************************************************\

View 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)