diff options
-rw-r--r-- | sim/common/ChangeLog | 3 | ||||
-rw-r--r-- | sim/common/sim-fpu.c | 18 | ||||
-rw-r--r-- | sim/common/sim-fpu.h | 6 |
3 files changed, 24 insertions, 3 deletions
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index 16296da..83b4556 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,5 +1,6 @@ -2003-06-17 Doug Evans <dje@sebabeach.org> +2003-06-17 Frank Ch. Eigler <fche@redhat.com> + From Doug Evans <dje@sebabeach.org>: * cgen-trace.h (sim_disasm_read_memory): Update args to be compatible with disassemble_info:read_memory_func. * cgen-trace.c (sim_disasm_read_memory): Ditto. diff --git a/sim/common/sim-fpu.c b/sim/common/sim-fpu.c index 14505f6..845248a 100644 --- a/sim/common/sim-fpu.c +++ b/sim/common/sim-fpu.c @@ -2,7 +2,7 @@ of the floating point routines in libgcc1.c for targets without hardware floating point. */ -/* Copyright (C) 1994,1997-1998 Free Software Foundation, Inc. +/* Copyright 1994, 1997, 1998, 2003 Free Software Foundation, Inc. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -2188,6 +2188,22 @@ sim_fpu_exp (const sim_fpu *d) } +INLINE_SIM_FPU (unsigned64) +sim_fpu_fraction (const sim_fpu *d) +{ + return d->fraction; +} + + +INLINE_SIM_FPU (unsigned64) +sim_fpu_guard (const sim_fpu *d, int is_double) +{ + unsigned64 rv; + unsigned64 guardmask = LSMASK64 (NR_GUARDS - 1, 0); + rv = (d->fraction & guardmask) >> NR_PAD; + return rv; +} + INLINE_SIM_FPU (int) sim_fpu_is (const sim_fpu *d) diff --git a/sim/common/sim-fpu.h b/sim/common/sim-fpu.h index 72323f5..579fbaa 100644 --- a/sim/common/sim-fpu.h +++ b/sim/common/sim-fpu.h @@ -1,5 +1,7 @@ /* Simulator Floating-point support. - Copyright (C) 1997, 1998, 2002 Free Software Foundation, Inc. + + Copyright 1997, 1998, 2002, 2003 Free Software Foundation, Inc. + Contributed by Cygnus Support. This file is part of GDB, the GNU debugger. @@ -316,6 +318,8 @@ INLINE_SIM_FPU (int) sim_fpu_is_denorm (const sim_fpu *s); /* !zero */ INLINE_SIM_FPU (int) sim_fpu_sign (const sim_fpu *s); INLINE_SIM_FPU (int) sim_fpu_exp (const sim_fpu *s); +INLINE_SIM_FPU (unsigned64) sim_fpu_fraction (const sim_fpu *s); +INLINE_SIM_FPU (unsigned64) sim_fpu_guard (const sim_fpu *s, int is_double); |