From 83bba698fd52236cedddc7e701665c5f4e51a07e Mon Sep 17 00:00:00 2001 From: Mark Kettenis Date: Wed, 31 Dec 2003 20:46:51 +0000 Subject: * sparc-tdep.c: Include "floatformat.h". (floatformat_sparc_quad): New define. (sparc32_gdbarch_init): Set long_double_format to &floatformat_sparc_quad. * sparc-linux-tdep.c: Include "floatformat.h". (sparc32_linux_init_abi): Set long_double_format to &floatformat_ieee_double_big. * sparcnbsd-tdep.c: Likewise. --- gdb/ChangeLog | 9 +++++++++ gdb/sparc-linux-tdep.c | 2 ++ gdb/sparc-tdep.c | 6 ++++++ gdb/sparcnbsd-tdep.c | 2 ++ 4 files changed, 19 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c80cddfcdd6..eb1bd389458 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,14 @@ 2003-12-31 Mark Kettenis + * sparc-tdep.c: Include "floatformat.h". + (floatformat_sparc_quad): New define. + (sparc32_gdbarch_init): Set long_double_format to + &floatformat_sparc_quad. + * sparc-linux-tdep.c: Include "floatformat.h". + (sparc32_linux_init_abi): Set long_double_format to + &floatformat_ieee_double_big. + * sparcnbsd-tdep.c: Likewise. + * sparc-tdep.c (sparc_stabs_unglobalize_name): New function. * config/sparc/tm-sol2.h (SOFUN_ADDRESS_MAYBE_MISSING): Define. (sparc_stabs_unglobalize_name): New prototype. diff --git a/gdb/sparc-linux-tdep.c b/gdb/sparc-linux-tdep.c index aa6423684d4..b6facf272b3 100644 --- a/gdb/sparc-linux-tdep.c +++ b/gdb/sparc-linux-tdep.c @@ -20,6 +20,7 @@ Boston, MA 02111-1307, USA. */ #include "defs.h" +#include "floatformat.h" #include "frame.h" #include "frame-base.h" #include "frame-unwind.h" @@ -291,6 +292,7 @@ sparc32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) /* GNU/Linux doesn't support the 128-bit `long double' from the psABI. */ set_gdbarch_long_double_bit (gdbarch, 64); + set_gdbarch_long_double_format (gdbarch, &floatformat_ieee_double_big); set_gdbarch_pc_in_sigtramp (gdbarch, sparc32_linux_pc_in_sigtramp); frame_unwind_append_sniffer (gdbarch, sparc32_linux_sigtramp_frame_sniffer); diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c index 7de4a8e1918..8ba8a50a7f3 100644 --- a/gdb/sparc-tdep.c +++ b/gdb/sparc-tdep.c @@ -22,6 +22,7 @@ #include "defs.h" #include "arch-utils.h" #include "dis-asm.h" +#include "floatformat.h" #include "frame.h" #include "frame-base.h" #include "frame-unwind.h" @@ -60,6 +61,10 @@ code that can handle both. The 64-bit specific code lives in sparc64-tdep.c; don't add any here. */ +/* The SPARC Floating-Point Quad-Precision format is similar to + big-endian IA-64 Quad-recision format. */ +#define floatformat_sparc_quad floatformat_ia64_quad_big + /* The stack pointer is offset from the stack frame by a BIAS of 2047 (0x7ff) for 64-bit code. BIAS is likely to be defined on SPARC hosts, so undefine it first. */ @@ -1020,6 +1025,7 @@ sparc32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) tdep->plt_entry_size = 0; set_gdbarch_long_double_bit (gdbarch, 128); + set_gdbarch_long_double_format (gdbarch, &floatformat_sparc_quad); set_gdbarch_num_regs (gdbarch, SPARC32_NUM_REGS); set_gdbarch_register_name (gdbarch, sparc32_register_name); diff --git a/gdb/sparcnbsd-tdep.c b/gdb/sparcnbsd-tdep.c index 0c5acfba3cd..806085e8e43 100644 --- a/gdb/sparcnbsd-tdep.c +++ b/gdb/sparcnbsd-tdep.c @@ -21,6 +21,7 @@ Boston, MA 02111-1307, USA. */ #include "defs.h" +#include "floatformat.h" #include "frame.h" #include "frame-unwind.h" #include "gdbcore.h" @@ -265,6 +266,7 @@ sparc32nbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) { /* NetBSD doesn't support the 128-bit `long double' from the psABI. */ set_gdbarch_long_double_bit (gdbarch, 64); + set_gdbarch_long_double_format (gdbarch, &floatformat_ieee_double_big); set_gdbarch_pc_in_sigtramp (gdbarch, sparc32nbsd_pc_in_sigtramp); frame_unwind_append_sniffer (gdbarch, sparc32nbsd_sigtramp_frame_sniffer); -- cgit v1.2.1