From f61dfddf2d39c72b66e18861c1959c3ec06aaee8 Mon Sep 17 00:00:00 2001 From: Stephen Clarke Date: Wed, 9 Oct 2002 19:07:43 +0000 Subject: [PATCH] * config/tc-sh64.c (sh64_target_format): Add support for sh64 Linux environment. --- gas/ChangeLog | 6 ++++++ gas/config/tc-sh64.c | 17 +++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index ed37bd25ec8..30124d522f1 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2002-10-09 Richard Shann + Stephen Clarke + + * config/tc-sh64.c (sh64_target_format): Add support for sh64 + Linux environment. + 2002-10-03 Kaz Kojima * contig/tc-sh.c (sh_local_pcrel): New. diff --git a/gas/config/tc-sh64.c b/gas/config/tc-sh64.c index 6ac77b853d8..8d899fbefb4 100644 --- a/gas/config/tc-sh64.c +++ b/gas/config/tc-sh64.c @@ -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. */ -- 2.30.2