* config/pa/tm-hppa.h (EXTRACT_RETURN_VALUE): Handle software
authorJeff Law <law@redhat.com>
Thu, 1 Feb 1996 00:40:59 +0000 (00:40 +0000)
committerJeff Law <law@redhat.com>
Thu, 1 Feb 1996 00:40:59 +0000 (00:40 +0000)
        floating point correctly.
        (STORE_RETURN_VALUE): Likewise.
        * config/pa/tm-pro.h (SOFT_FLOAT): define.
Fixes minor testsuite failures for pro targets.

gdb/ChangeLog
gdb/config/pa/tm-hppa.h
gdb/config/pa/tm-pro.h

index 9bfd237ee84004d37bee0a12b18b1c37d36643c5..aec9fe3cddd0d521811ff24dbba5a8bdd8662fca 100644 (file)
@@ -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): 
index 1178f4887d70fce4fc8b5e574d8481b4695f0c79..bfae85eddc37f354eb5452a637d69ff921992b32 100644 (file)
@@ -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,
index 59d825aa2c04ded9c740c2f02ccc00146e1e8828..05ecb62f7dcaaba9a3fbf18f8e7e3fbb91c5fb53 100644 (file)
@@ -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"