* 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:
parent
615c0a79da
commit
17280c3f6f
|
@ -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>
|
Wed Jan 31 13:34:52 1996 Fred Fish <fnf@cygnus.com>
|
||||||
|
|
||||||
* config/i386/xm-linux.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
|
* config/i386/xm-linux.h (MMAP_BASE_ADDRESS, MMAP_INCREMENT):
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Parameters for execution on any Hewlett-Packard PA-RISC machine.
|
/* 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.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
Contributed by the Center for Software Science at the
|
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) \
|
#define IN_SOLIB_RETURN_TRAMPOLINE(pc, name) \
|
||||||
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.
|
/* Immediately after a function call, return the saved pc.
|
||||||
Can't go through the frames for this because on some machines
|
Can't go through the frames for this because on some machines
|
||||||
the new frame is not set up until the new function executes
|
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) \
|
#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), \
|
memcpy ((VALBUF), \
|
||||||
((int *)(REGBUF)) + REGISTER_BYTE (FP4_REGNUM), \
|
((char *)(REGBUF)) + REGISTER_BYTE (FP4_REGNUM), \
|
||||||
TYPE_LENGTH (TYPE)); \
|
TYPE_LENGTH (TYPE)); \
|
||||||
else \
|
else \
|
||||||
memcpy ((VALBUF), \
|
memcpy ((VALBUF), \
|
||||||
|
@ -285,10 +272,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
#define STORE_RETURN_VALUE(TYPE,VALBUF) \
|
#define STORE_RETURN_VALUE(TYPE,VALBUF) \
|
||||||
write_register_bytes (REGISTER_BYTE (28),(VALBUF), TYPE_LENGTH (TYPE)) ; \
|
write_register_bytes (REGISTER_BYTE (28),(VALBUF), TYPE_LENGTH (TYPE)) ; \
|
||||||
write_register_bytes ((TYPE_CODE(TYPE) == TYPE_CODE_FLT \
|
if (!SOFT_FLOAT) \
|
||||||
? REGISTER_BYTE (FP4_REGNUM) \
|
write_register_bytes ((TYPE_CODE(TYPE) == TYPE_CODE_FLT \
|
||||||
: REGISTER_BYTE (28)), \
|
? REGISTER_BYTE (FP4_REGNUM) \
|
||||||
(VALBUF), TYPE_LENGTH (TYPE))
|
: REGISTER_BYTE (28)), \
|
||||||
|
(VALBUF), TYPE_LENGTH (TYPE))
|
||||||
|
|
||||||
/* Extract from an array REGBUF containing the (raw) register state
|
/* Extract from an array REGBUF containing the (raw) register state
|
||||||
the address in which a function should return its structure value,
|
the address in which a function should return its structure value,
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
|
|
||||||
#define PA_LEVEL_0 /* Disables touching space regs and fp */
|
#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. */
|
/* It's mostly just the common stuff. */
|
||||||
#include "pa/tm-hppa.h"
|
#include "pa/tm-hppa.h"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue