* config/tc-sh64.c (sh64_target_format): Add support for sh64
authorStephen Clarke <stephen.clarke@earthling.net>
Wed, 9 Oct 2002 19:07:43 +0000 (19:07 +0000)
committerStephen Clarke <stephen.clarke@earthling.net>
Wed, 9 Oct 2002 19:07:43 +0000 (19:07 +0000)
Linux environment.

gas/ChangeLog
gas/config/tc-sh64.c

index ed37bd25ec8ec3ec83b0ecb1c430d9f161d1e4ea..30124d522f142c1c219c2ab4dfc9405f1d6e99df 100644 (file)
@@ -1,3 +1,9 @@
+2002-10-09  Richard Shann <richard.shann@superh.com>
+           Stephen Clarke <stephen.clarke@superh.com>
+
+       * config/tc-sh64.c (sh64_target_format): Add support for sh64
+       Linux environment.
+
 2002-10-03  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
 
        * contig/tc-sh.c (sh_local_pcrel): New.
index 6ac77b853d8bace09bfc21a7926856724dae674b..8d899fbefb43446e0857424b4b003fa9532ea350 100644 (file)
@@ -2944,10 +2944,6 @@ s_sh64_abi (ignore)
 const char *
 sh64_target_format ()
 {
-#ifdef TE_LINUX
-  return "FIXME: No linux target yet";
-#endif
-
 #ifdef TE_NetBSD
   /* For NetBSD, if the ISA is unspecified, always use SHmedia.  */
   if (sh64_isa_mode == sh64_isa_unspecified)
@@ -2966,6 +2962,14 @@ sh64_target_format ()
     }
 #endif
 
+#ifdef TE_LINUX
+  if (sh64_isa_mode == sh64_isa_unspecified)
+    sh64_isa_mode = sh64_isa_shmedia;
+
+  if (sh64_abi == sh64_abi_unspecified)
+    sh64_abi = sh64_abi_32;
+#endif
+
   if (sh64_abi == sh64_abi_64 && sh64_isa_mode == sh64_isa_unspecified)
     sh64_isa_mode = sh64_isa_shmedia;
 
@@ -3002,6 +3006,11 @@ sh64_target_format ()
     return (target_big_endian ? "elf64-sh64-nbsd" : "elf64-sh64l-nbsd");
   else
     return (target_big_endian ? "elf32-sh64-nbsd" : "elf32-sh64l-nbsd");
+#elif defined (TE_LINUX)
+  if (sh64_abi == sh64_abi_64)
+    return (target_big_endian ? "elf64-sh64big-linux" : "elf64-sh64-linux");
+  else
+    return (target_big_endian ? "elf32-sh64big-linux" : "elf32-sh64-linux");
 #else
   /* When the ISA is not one of SHmedia or SHcompact, use the old SH
      object format.  */