diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/config/pa/tm-hppa.h | 28 | ||||
-rw-r--r-- | gdb/config/pa/tm-pro.h | 3 |
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" |