aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/config/pa/tm-hppa.h28
-rw-r--r--gdb/config/pa/tm-pro.h3
3 files changed, 18 insertions, 20 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9bfd237..aec9fe3 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+Wed Jan 31 17:20:26 1996 Jeffrey A Law (law@cygnus.com)
+
+ * 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.
+
Wed Jan 31 13:34:52 1996 Fred Fish <fnf@cygnus.com>
* config/i386/xm-linux.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
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,
diff --git a/gdb/config/pa/tm-pro.h b/gdb/config/pa/tm-pro.h
index 59d825a..05ecb62 100644
--- a/gdb/config/pa/tm-pro.h
+++ b/gdb/config/pa/tm-pro.h
@@ -5,6 +5,9 @@
#define PA_LEVEL_0 /* Disables touching space regs and fp */
+/* All the PRO targets use software floating point at the moment. */
+#define SOFT_FLOAT 1
+
/* It's mostly just the common stuff. */
#include "pa/tm-hppa.h"