2005-07-13 Eric Christopher <echristo@redhat.com>
[deliverable/binutils-gdb.git] / gdb / ppcobsd-tdep.c
index 82e23e66e0fb9c9a6a2986ad9089e7d4251b3df4..c2d542e164c49bcae33af2b097b6cbd63a4667c3 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "defs.h"
 #include "arch-utils.h"
+#include "floatformat.h"
 #include "osabi.h"
 #include "regcache.h"
 #include "regset.h"
@@ -91,7 +92,7 @@ ppcobsd_collect_gregset (const struct regset *regset,
   ppc_collect_fpregset (regset, regcache, regnum, gregs, len);
 }
 
-/* OpenBS/powerpc register set.  */
+/* OpenBSD/powerpc register set.  */
 
 struct regset ppcobsd_gregset =
 {
@@ -164,11 +165,18 @@ static const struct tramp_frame ppcobsd_sigtramp =
   },
   ppcobsd_sigtramp_cache_init
 };
-
 \f
+
 static void
 ppcobsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
+  /* OpenBSD 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);
+
+  /* OpenBSD currently uses a broken GCC.  */
+  set_gdbarch_return_value (gdbarch, ppc_sysv_abi_broken_return_value);
+
   /* OpenBSD uses SVR4-style shared libraries.  */
   set_solib_svr4_fetch_link_map_offsets
     (gdbarch, svr4_ilp32_fetch_link_map_offsets);
@@ -204,6 +212,8 @@ _initialize_ppcobsd_tdep (void)
   gdbarch_register_osabi_sniffer (bfd_arch_powerpc, bfd_target_unknown_flavour,
                                   ppcobsd_core_osabi_sniffer);
 
+  gdbarch_register_osabi (bfd_arch_rs6000, 0, GDB_OSABI_OPENBSD_ELF,
+                         ppcobsd_init_abi);
   gdbarch_register_osabi (bfd_arch_powerpc, 0, GDB_OSABI_OPENBSD_ELF,
                          ppcobsd_init_abi);
 
This page took 0.023423 seconds and 4 git commands to generate.