aboutsummaryrefslogtreecommitdiff
path: root/gdb/config/pa/tm-hppa.h
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1996-02-01 00:40:59 +0000
committerJeff Law <law@redhat.com>1996-02-01 00:40:59 +0000
commit17280c3f6fb315870da0af787abbf22d32578d4b (patch)
tree975b765a84512579d38557bd13ca90d33c4fa2e9 /gdb/config/pa/tm-hppa.h
parent615c0a79da2e82bd61a93f355429eafcb98e69d8 (diff)
downloadgdb-17280c3f6fb315870da0af787abbf22d32578d4b.zip
gdb-17280c3f6fb315870da0af787abbf22d32578d4b.tar.gz
gdb-17280c3f6fb315870da0af787abbf22d32578d4b.tar.bz2
* config/pa/tm-hppa.h (EXTRACT_RETURN_VALUE): Handle software
floating point correctly. (STORE_RETURN_VALUE): Likewise. * config/pa/tm-pro.h (SOFT_FLOAT): define. Fixes minor testsuite failures for pro targets.
Diffstat (limited to 'gdb/config/pa/tm-hppa.h')
-rw-r--r--gdb/config/pa/tm-hppa.h28
1 files changed, 8 insertions, 20 deletions
diff --git a/gdb/config/pa/tm-hppa.h b/gdb/config/pa/tm-hppa.h
index 1178f48..bfae85e 100644
--- a/gdb/config/pa/tm-hppa.h
+++ b/gdb/config/pa/tm-hppa.h
@@ -1,5 +1,5 @@
/* Parameters for execution on any Hewlett-Packard PA-RISC machine.
- Copyright 1986, 1987, 1989, 1990, 1991, 1992, 1993
+ Copyright 1986, 1987, 1989, 1990, 1991, 1992, 1993, 1995
Free Software Foundation, Inc.
Contributed by the Center for Software Science at the
@@ -71,19 +71,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define IN_SOLIB_RETURN_TRAMPOLINE(pc, name) \
in_solib_return_trampoline (pc, name)
-/* For some stupid reason find_pc_partial_function wants to treat
- trampoline symbols differently.
-
- In a nutshell, find_pc_partial_fucntion sets the low address for
- the function to the PC value that was passed in if the PC value
- passed in is a mst_trampoline symbol.
-
- This causes wait_for_inferior to execute code for stepping over
- or around a function (stop_pc == stop_func_start). This is
- extremely bad when we're stepping through a return from a shared
- library back to user code (which on the PA uses trampolines). */
-#define INHIBIT_SUNSOLIB_TRANSFER_TABLE_HACK
-
/* Immediately after a function call, return the saved pc.
Can't go through the frames for this because on some machines
the new frame is not set up until the new function executes
@@ -264,9 +251,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
{ \
- if (TYPE_CODE (TYPE) == TYPE_CODE_FLT) \
+ if (TYPE_CODE (TYPE) == TYPE_CODE_FLT && !SOFT_FLOAT) \
memcpy ((VALBUF), \
- ((int *)(REGBUF)) + REGISTER_BYTE (FP4_REGNUM), \
+ ((char *)(REGBUF)) + REGISTER_BYTE (FP4_REGNUM), \
TYPE_LENGTH (TYPE)); \
else \
memcpy ((VALBUF), \
@@ -285,10 +272,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define STORE_RETURN_VALUE(TYPE,VALBUF) \
write_register_bytes (REGISTER_BYTE (28),(VALBUF), TYPE_LENGTH (TYPE)) ; \
- write_register_bytes ((TYPE_CODE(TYPE) == TYPE_CODE_FLT \
- ? REGISTER_BYTE (FP4_REGNUM) \
- : REGISTER_BYTE (28)), \
- (VALBUF), TYPE_LENGTH (TYPE))
+ if (!SOFT_FLOAT) \
+ write_register_bytes ((TYPE_CODE(TYPE) == TYPE_CODE_FLT \
+ ? REGISTER_BYTE (FP4_REGNUM) \
+ : REGISTER_BYTE (28)), \
+ (VALBUF), TYPE_LENGTH (TYPE))
/* Extract from an array REGBUF containing the (raw) register state
the address in which a function should return its structure value,