aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-arc.h
diff options
context:
space:
mode:
authorClaudiu Zissulescu <claziss@synopsys.com>2015-12-04 10:49:57 +0000
committerNick Clifton <nickc@redhat.com>2015-12-04 10:49:57 +0000
commit24b368f8532b4775f9fd5bcc7958a84d4218aa46 (patch)
treedf221eb545296594c1801556ba1c9ae3fb555bb8 /gas/config/tc-arc.h
parent5cc854a862fef488bd08190eb5822ab6e2a50ef3 (diff)
downloadgdb-24b368f8532b4775f9fd5bcc7958a84d4218aa46.zip
gdb-24b368f8532b4775f9fd5bcc7958a84d4218aa46.tar.gz
gdb-24b368f8532b4775f9fd5bcc7958a84d4218aa46.tar.bz2
Fix failures in the GAS testsuite for the ARC architecture.
gas * config/tc-arc.c (arc_option): Sets all internal gas options when parsing .cpu directive. (declare_register_set): Declare all 64 registers. (md_section_align): Refactor. (md_pcrel_from_section): Remove assert. (pseudo_operand_match): Fix pseudo operand match. (find_reloc): Use flags filed, extend matching. * config/tc-arc.h (TC_VALIDATE_FIX): Don't fixup any PLT relocation. testsuite * gas/arc/bic.d: Update test. * gas/arc/add_s-err.s: New file. * gas/arc/cpu-warn1.s: Likewise. * gas/arc/pcl-relocs.d: Likewise. * gas/arc/pcl-relocs.s: Likewise. * gas/arc/pcrel-relocs.d: Likewise. * gas/arc/pcrel-relocs.s: Likewise. * gas/arc/pic-relocs.d: Likewise. * gas/arc/pic-relocs.s: Likewise. * gas/arc/plt-relocs.d: Likewise. * gas/arc/plt-relocs.s: Likewise. * gas/arc/pseudos.d: Likewise. * gas/arc/pseudos.s: Likewise. * gas/arc/sda-relocs.d: Likewise. * gas/arc/sda-relocs.s: Likewise. * gas/arc/sda-relocs2.d: Likewise. * gas/arc/sda-relocs2.s: Likewise. * gas/arc/tls-relocs.d: Likewise. * gas/arc/tls-relocs.s: Likewise. opcode * arc.h (arc_reloc_equiv_tab): Replace flagcode with flags[32]. opcodes * arc-dis.c (special_flag_p): Match full mnemonic. * arc-opc.c (print_insn_arc): Check section size to read appropriate number of bytes. Fix printing. * arc-tbl.h: Fix instruction table. Allow clri/seti instruction without arguments.
Diffstat (limited to 'gas/config/tc-arc.h')
-rw-r--r--gas/config/tc-arc.h22
1 files changed, 14 insertions, 8 deletions
diff --git a/gas/config/tc-arc.h b/gas/config/tc-arc.h
index 8fff767..fa0bbd9 100644
--- a/gas/config/tc-arc.h
+++ b/gas/config/tc-arc.h
@@ -125,14 +125,20 @@ extern long md_pcrel_from_section (struct fix *, segT);
arc_cons_fix_new ((FRAG), (OFF), (LEN), (EXP), (RELOC))
/* We don't want gas to fixup the following program memory related
- relocations. */
-#define TC_VALIDATE_FIX(FIXP,SEG,SKIP) \
- if ((FIXP->fx_r_type == BFD_RELOC_ARC_GOTPC32) \
- && FIXP->fx_addsy != NULL \
- && FIXP->fx_subsy == NULL) \
- { \
- symbol_mark_used_in_reloc (FIXP->fx_addsy); \
- goto SKIP; \
+ relocations. Check also that fx_addsy is not NULL, in order to
+ make sure that the fixup refers to some sort of label. */
+#define TC_VALIDATE_FIX(FIXP,SEG,SKIP) \
+ if ((FIXP->fx_r_type == BFD_RELOC_ARC_GOTPC32 \
+ || FIXP->fx_r_type == BFD_RELOC_ARC_PLT32 \
+ || FIXP->fx_r_type == BFD_RELOC_ARC_S25W_PCREL_PLT \
+ || FIXP->fx_r_type == BFD_RELOC_ARC_S25H_PCREL_PLT \
+ || FIXP->fx_r_type == BFD_RELOC_ARC_S21W_PCREL_PLT \
+ || FIXP->fx_r_type == BFD_RELOC_ARC_S21H_PCREL_PLT) \
+ && FIXP->fx_addsy != NULL \
+ && FIXP->fx_subsy == NULL) \
+ { \
+ symbol_mark_used_in_reloc (FIXP->fx_addsy); \
+ goto SKIP; \
}
/* BFD_RELOC_ARC_TLS_GD_LD may use fx_subsy to store a label that is