summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2003-12-31 20:46:51 +0000
committerMark Kettenis <kettenis@gnu.org>2003-12-31 20:46:51 +0000
commit83bba698fd52236cedddc7e701665c5f4e51a07e (patch)
tree909007018eb01054d67a2be97300151a45cf4acf
parent00f8060d7b31d3be20f103556d15403935f9eed3 (diff)
downloadgdb-83bba698fd52236cedddc7e701665c5f4e51a07e.tar.gz
* 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.
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/sparc-linux-tdep.c2
-rw-r--r--gdb/sparc-tdep.c6
-rw-r--r--gdb/sparcnbsd-tdep.c2
4 files changed, 19 insertions, 0 deletions
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 <kettenis@gnu.org>
+ * 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);