Change target of hppa-netbsd port
authorNick Clifton <nickc@redhat.com>
Mon, 6 Oct 2003 11:01:36 +0000 (11:01 +0000)
committerNick Clifton <nickc@redhat.com>
Mon, 6 Oct 2003 11:01:36 +0000 (11:01 +0000)
bfd/ChangeLog
bfd/config.bfd
gas/ChangeLog
gas/config/tc-hppa.c
gas/config/tc-hppa.h
ld/ChangeLog
ld/emulparams/hppanbsd.sh
ld/emulparams/hppaobsd.sh

index b6ec1ae2a200ef6699213fb57d78419030c7697e..77e9f8701749d43ca88b98e3e42fa66049f462a1 100644 (file)
@@ -1,3 +1,7 @@
+2003-10-06  Matt Thomas <matt@3am-software.com>
+
+         config.bfd: Move the hppa*-*-netbsd* case to the hppa*-*-linux* case.
+
 2003-10-06  Robert Millan  <robertmh@gnu.org>
 
        * configure.in: Match GNU/KNetBSD with new knetbsd*-gnu triplet.
index c570c219c31c5050c8c6392d2514699afa96adfb..cdf11a967eba1aa634215daa341243c3ca9989fd 100644 (file)
@@ -366,11 +366,11 @@ case "${targ}" in
     ;;
 #endif
 
-  hppa*-*-linux-gnu*)
+  hppa*-*-linux-gnu* | hppa*-*-netbsd*)
     targ_defvec=bfd_elf32_hppa_linux_vec
     targ_selvecs=bfd_elf32_hppa_vec
     ;;
-  hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-netbsd* | hppa*-*-sysv4* | hppa*-*-rtems* | hppa*-*-openbsd*)
+  hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-rtems* | hppa*-*-openbsd*)
     targ_defvec=bfd_elf32_hppa_vec
     targ_selvecs=bfd_elf32_hppa_linux_vec
     ;;
index 67bc647e0c57dcd5ff6cd079ac4d6edd0fe2a951..583e0ca7b930c954bc31d9641169c26c9e1bab1d 100644 (file)
@@ -1,3 +1,15 @@
+2003-10-06      Matt Thomas <matt@3am-software.com>
+
+         Switch NetBSD/hppa to use Linux PA-RISC ELF ABI and
+         assembler syntax.
+
+         tc-hppa.c: Add "%farg[0-3]", "%fret", "%t[1-4]", "%tf[1-4]"
+         register names.  Change all "defined (TE_LINUX)" to
+         "(defined (TE_LINUX) || defined (TE_NETBSD))".
+
+         tc-hppa.h: Make NetBSD use "elfXX-hppa-linux" bfd target.
+         Remove NetBSD's use of LABELS_WITHOUT_COLONS.
+
 2003-10-06  Robert Millan  <robertmh@gnu.org>
 
        * configure.in: Match GNU/KNetBSD with new knetbsd*-gnu triplet.
index 89b39e5b4cdac3206a686719802ba82c4cc4d5bd..1f365b0f733f223fe6fee928f21dce58795ea00b 100644 (file)
@@ -490,7 +490,7 @@ struct selector_entry
 static void pa_check_current_space_and_subspace PARAMS ((void));
 #endif
 
-#if !(defined (OBJ_ELF) && defined (TE_LINUX))
+#if !(defined (OBJ_ELF) && (defined (TE_LINUX) || defined (TE_NetBSD)))
 static void pa_text PARAMS ((int));
 static void pa_data PARAMS ((int));
 static void pa_comm PARAMS ((int));
@@ -647,7 +647,7 @@ const pseudo_typeS md_pseudo_table[] =
   {"byte", pa_cons, 1},
   {"call", pa_call, 0},
   {"callinfo", pa_callinfo, 0},
-#if defined (OBJ_ELF) && defined (TE_LINUX)
+#if defined (OBJ_ELF) && (defined (TE_LINUX) || defined (TE_NetBSD))
   {"code", obj_elf_text, 0},
 #else
   {"code", pa_text, 0},
@@ -657,14 +657,14 @@ const pseudo_typeS md_pseudo_table[] =
   {"compiler", pa_compiler, 0},
 #endif
   {"copyright", pa_copyright, 0},
-#if !(defined (OBJ_ELF) && defined (TE_LINUX))
+#if !(defined (OBJ_ELF) && (defined (TE_LINUX) || defined (TE_NetBSD)))
   {"data", pa_data, 0},
 #endif
   {"double", pa_float_cons, 'd'},
   {"dword", pa_cons, 8},
   {"end", pa_end, 0},
   {"end_brtab", pa_brtab, 0},
-#if !(defined (OBJ_ELF) && defined (TE_LINUX))
+#if !(defined (OBJ_ELF) && (defined (TE_LINUX) || defined (TE_NetBSD)))
   {"end_try", pa_try, 0},
 #endif
   {"enter", pa_enter, 0},
@@ -705,7 +705,7 @@ const pseudo_typeS md_pseudo_table[] =
 #ifdef OBJ_SOM
   {"subspa", pa_subspace, 0},
 #endif
-#if !(defined (OBJ_ELF) && defined (TE_LINUX))
+#if !(defined (OBJ_ELF) && (defined (TE_LINUX) || defined (TE_NetBSD)))
   {"text", pa_text, 0},
 #endif
   {"version", pa_version, 0},
@@ -852,6 +852,10 @@ static const struct pd_reg pre_defined_registers[] =
   {"%dp",    27},
   {"%eiem",  15},
   {"%eirr",  23},
+  {"%farg0",  5},
+  {"%farg1",  6},
+  {"%farg2",  7},
+  {"%farg3",  8},
   {"%fr0",    0 + FP_REG_BASE},
   {"%fr0l",   0 + FP_REG_BASE},
   {"%fr0r",   0 + FP_REG_BASE + FP_REG_RSEL},
@@ -948,6 +952,7 @@ static const struct pd_reg pre_defined_registers[] =
   {"%fr9",    9 + FP_REG_BASE},
   {"%fr9l",   9 + FP_REG_BASE},
   {"%fr9r",   9 + FP_REG_BASE + FP_REG_RSEL},
+  {"%fret",   4},
   {"%hta",   25},
   {"%iir",   19},
   {"%ior",   21},
@@ -1013,6 +1018,14 @@ static const struct pd_reg pre_defined_registers[] =
   {"%sr5",    5},
   {"%sr6",    6},
   {"%sr7",    7},
+  {"%t1",    22},
+  {"%t2",    21},
+  {"%t3",    20},
+  {"%t4",    19},
+  {"%tf1",   11},
+  {"%tf2",   10},
+  {"%tf3",    9},
+  {"%tf4",    8},
   {"%tr0",   24},
   {"%tr1",   25},
   {"%tr2",   26},
@@ -6304,7 +6317,7 @@ pa_callinfo (unused)
   demand_empty_rest_of_line ();
 }
 
-#if !(defined (OBJ_ELF) && defined (TE_LINUX))
+#if !(defined (OBJ_ELF) && (defined (TE_LINUX) || defined (TE_NetBSD)))
 /* Switch to the text space.  Like s_text, but delete our
    label when finished.  */
 static void
@@ -6384,7 +6397,7 @@ pa_comm (unused)
     }
   demand_empty_rest_of_line ();
 }
-#endif /* !(defined (OBJ_ELF) && defined (TE_LINUX)) */
+#endif /* !(defined (OBJ_ELF) && (defined (TE_LINUX) || defined (TE_NetBSD))) */
 
 /* Process a .END pseudo-op.  */
 
index 338b6e83f98f680ae53ddf17b898adb298adf249..64d0644233171475b1a6bd3509ec274ab9c55a7c 100644 (file)
 #ifdef OBJ_ELF
 #if TARGET_ARCH_SIZE == 64
 #include "bfd/elf64-hppa.h"
-#ifdef TE_LINUX
+#if defined (TE_LINUX) || defined (TE_NetBSD)
 #define TARGET_FORMAT "elf64-hppa-linux"
 #else
 #define TARGET_FORMAT "elf64-hppa"
 #endif
 #else /* TARGET_ARCH_SIZE == 32 */
 #include "bfd/elf32-hppa.h"
-#ifdef TE_LINUX
+#if defined (TE_LINUX) || defined (TE_NetBSD)
 #define TARGET_FORMAT "elf32-hppa-linux"
 #else
 #define TARGET_FORMAT "elf32-hppa"
 #define WARN_COMMENTS 1
 #endif
 
-#ifdef TE_NetBSD
-/* XXX the original OpenBSD code has labels without colons,
-   so this is required, for now -- fredette@netbsd.org */
-/* Labels are not required to have a colon for a suffix.  */
-#define LABELS_WITHOUT_COLONS 1
-#endif
-
 /* FIXME.  Why oh why aren't these defined somewhere globally?  */
 #ifndef FALSE
 #define FALSE   (0)
index c306a10761777ba33d6234a7dbd70240e759492e..aeb046090210919073547d0411d8a70cfe1c0174 100644 (file)
@@ -1,3 +1,8 @@
+2003-10-03  Matt Thomas <matt@3am-software.com>
+
+       * emulparams/hppanbsd.sh: Remove OUTPUT_FORMAT.
+       * emulparams/hppaobsd.sh: Add OUTPUT_FORMAT="elf32-hppa".
+
 2003-10-06  Robert Millan  <robertmh@gnu.org>
 
        * configure.tgt: Match GNU/KNetBSD with new knetbsd*-gnu triplet.
index c782c6d4fb51b10184390bc0e38b68b54422162a..3f376b47608006cdcbf6f3c1608a9597b03871db 100644 (file)
@@ -3,4 +3,3 @@
 
 . ${srcdir}/emulparams/hppalinux.sh
 
-OUTPUT_FORMAT="elf32-hppa"
index ff120b97f8274f9ffb85db0e77b92059bfba527d..0227dc5c3351d2bdae600816539a89fb5a0dea03 100644 (file)
@@ -1,5 +1,6 @@
 . ${srcdir}/emulparams/hppanbsd.sh
 
+OUTPUT_FORMAT="elf32-hppa"
 TEXT_START_ADDR=0x1000
 TARGET_PAGE_SIZE=0x1000
 MAXPAGESIZE=0x1000