aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-sparc.h
diff options
context:
space:
mode:
Diffstat (limited to 'gas/config/tc-sparc.h')
-rw-r--r--gas/config/tc-sparc.h31
1 files changed, 28 insertions, 3 deletions
diff --git a/gas/config/tc-sparc.h b/gas/config/tc-sparc.h
index f43f1f2..4b13ff9 100644
--- a/gas/config/tc-sparc.h
+++ b/gas/config/tc-sparc.h
@@ -15,16 +15,20 @@
You should have received a copy of the GNU General Public
License along with GAS; see the file COPYING. If not, write
- to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+ to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define TC_SPARC 1
-#define LOCAL_LABELS_FB
+#define LOCAL_LABELS_FB 1
#define TARGET_ARCH bfd_arch_sparc
#ifdef OBJ_AOUT
+#ifdef TE_NetBSD
+#define TARGET_FORMAT "a.out-sparc-netbsd"
+#else
#define TARGET_FORMAT "a.out-sunos-big"
#endif
+#endif
#ifdef OBJ_BOUT
#define TARGET_FORMAT "b.out.big"
#endif
@@ -35,7 +39,7 @@
#define TARGET_FORMAT "elf64-sparc" /* v9 */
#define ENV64 /* v9 */
#endif /* sparcv9 */
-#define LOCAL_LABEL(name) ((name)[0] == '.' || !strncmp ((name), "_.L_", 4))
+#define LOCAL_LABEL(name) (((name)[0] == '.' && (name)[1] == 'L') || !strncmp ((name), "_.L_", 4))
#endif
#define WORKING_DOT_WORD
@@ -48,4 +52,25 @@ void tc_aout_pre_write_hook ();
#define LISTING_HEADER "SPARC GAS "
+/* I know that "call 0" fails in sparc-coff if this doesn't return 1. I
+ don't know about other relocation types, or other formats, yet. */
+#ifdef OBJ_COFF
+#define TC_FORCE_RELOCATION(FIXP) \
+ ((FIXP)->fx_r_type == BFD_RELOC_32_PCREL_S2 \
+ && ((FIXP)->fx_addsy == 0 \
+ || S_GET_SEGMENT ((FIXP)->fx_addsy) == absolute_section))
+#define RELOC_REQUIRES_SYMBOL
+#endif
+
+#define TC_HANDLES_FX_DONE
+
+#ifdef OBJ_ELF
+/* Keep relocations against global symbols. Don't turn them into
+ relocations against sections. This is required for the dynamic
+ linker to operate properly. */
+#define tc_fix_adjustable(FIX) (! S_IS_EXTERN ((FIX)->fx_addsy))
+#endif
+
+#define md_operand(x)
+
/* end of tc-sparc.h */