* 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.
This commit is contained in:
Jeff Law 1996-02-01 00:40:59 +00:00
parent 615c0a79da
commit 17280c3f6f
3 changed files with 18 additions and 20 deletions

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

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

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