[PATCH 4/4]: Add generic prototype for md_pcrel_from_section
This patch removes the need for target headers to provide a custom prototype for md_pcrel_from_section. * tc.h (md_pcrel_from_section): Add prototype. * config/tc-aarch64.h (md_pcrel_from_section): Remove prototype. * config/tc-arc.h (md_pcrel_from_section): Likewise. * config/tc-arm.h (md_pcrel_from_section): Likewise. * config/tc-avr.h (md_pcrel_from_section): Likewise. * config/tc-bfin.h (md_pcrel_from_section): Likewise. * config/tc-bpf.h (md_pcrel_from_section): Likewise. * config/tc-csky.h (md_pcrel_from_section): Likewise. * config/tc-d10v.h (md_pcrel_from_section): Likewise. * config/tc-d30v.h (md_pcrel_from_section): Likewise. * config/tc-epiphany.h (md_pcrel_from_section): Likewise. * config/tc-fr30.h (md_pcrel_from_section): Likewise. * config/tc-frv.h (md_pcrel_from_section): Likewise. * config/tc-iq2000.h (md_pcrel_from_section): Likewise. * config/tc-lm32.h (md_pcrel_from_section): Likewise. * config/tc-m32c.h (md_pcrel_from_section): Likewise. * config/tc-m32r.h (md_pcrel_from_section): Likewise. * config/tc-mcore.h (md_pcrel_from_section): Likewise. * config/tc-mep.h (md_pcrel_from_section): Likewise. * config/tc-metag.h (md_pcrel_from_section): Likewise. * config/tc-microblaze.h (md_pcrel_from_section): Likewise. * config/tc-mmix.h (md_pcrel_from_section): Likewise. * config/tc-moxie.h (md_pcrel_from_section): Likewise. * config/tc-msp430.h (md_pcrel_from_section): Likewise. * config/tc-mt.h (md_pcrel_from_section): Likewise. * config/tc-or1k.h (md_pcrel_from_section): Likewise. * config/tc-ppc.h (md_pcrel_from_section): Likewise. * config/tc-rl78.h (md_pcrel_from_section): Likewise. * config/tc-rx.h (md_pcrel_from_section): Likewise. * config/tc-s390.h (md_pcrel_from_section): Likewise. * config/tc-sh.h (md_pcrel_from_section): Likewise. * config/tc-xc16x.h (md_pcrel_from_section): Likewise. * config/tc-xstormy16.h (md_pcrel_from_section): Likewise.
This commit is contained in:
parent
d9f1988553
commit
9ad4cfa8c3
@ -5,6 +5,39 @@
|
||||
* config/tc-m32c.h (MD_PCREL_FROM_SECTION): Delete duplicate
|
||||
define.
|
||||
(md_pcrel_from_section): Remove duplicate prototype.
|
||||
* tc.h (md_pcrel_from_section): Add prototype.
|
||||
* config/tc-aarch64.h (md_pcrel_from_section): Remove prototype.
|
||||
* config/tc-arc.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-arm.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-avr.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-bfin.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-bpf.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-csky.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-d10v.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-d30v.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-epiphany.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-fr30.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-frv.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-iq2000.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-lm32.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-m32c.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-m32r.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-mcore.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-mep.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-metag.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-microblaze.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-mmix.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-moxie.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-msp430.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-mt.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-or1k.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-ppc.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-rl78.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-rx.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-s390.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-sh.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-xc16x.h (md_pcrel_from_section): Likewise.
|
||||
* config/tc-xstormy16.h (md_pcrel_from_section): Likewise.
|
||||
|
||||
2020-04-07 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
|
@ -255,7 +255,6 @@ extern void aarch64_after_parse_args (void);
|
||||
|
||||
#define MD_PCREL_FROM_SECTION(F,S) md_pcrel_from_section(F,S)
|
||||
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
extern void aarch64_frag_align_code (int, int);
|
||||
extern const char * elf64_aarch64_target_format (void);
|
||||
extern int aarch64_force_relocation (struct fix *);
|
||||
|
@ -101,7 +101,6 @@ extern const char *arc_target_format;
|
||||
instruction, plus the address of the PC relative fixup. The latter
|
||||
can be calculated as fixp->fx_where +
|
||||
fixp->fx_frag->fr_address. */
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
|
||||
|
||||
/* [ ] is index operator. */
|
||||
|
@ -340,7 +340,6 @@ struct arm_segment_info_type
|
||||
|
||||
#define MD_PCREL_FROM_SECTION(F,S) md_pcrel_from_section(F,S)
|
||||
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
extern void arm_frag_align_code (int, int);
|
||||
extern void arm_validate_fix (struct fix *);
|
||||
extern const char * elf32_arm_target_format (void);
|
||||
|
@ -136,7 +136,6 @@ extern int avr_force_relocation (struct fix *);
|
||||
of a PC relative instruction is the next instruction, so this
|
||||
macro would return the length of an instruction. */
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
/* The number of bytes to put into a word in a listing. This affects
|
||||
the way the bytes are clumped together in the listing. For
|
||||
|
@ -68,7 +68,6 @@ extern int bfin_force_relocation (struct fix *);
|
||||
|
||||
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
/* Values passed to md_apply_fix3 don't include symbol values. */
|
||||
#define MD_APPLY_SYM_VALUE(FIX) 0
|
||||
|
@ -41,7 +41,6 @@
|
||||
|
||||
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
|
||||
#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
/* We don't need to handle .word strangely. */
|
||||
#define WORKING_DOT_WORD
|
||||
|
@ -91,7 +91,6 @@ struct tls_addend
|
||||
extern const relax_typeS csky_relax_table [];
|
||||
|
||||
extern void md_csky_end (void);
|
||||
extern long md_pcrel_from_section (fixS *, segT);
|
||||
extern void csky_cons_fix_new (fragS *,
|
||||
unsigned int off,
|
||||
unsigned int len,
|
||||
|
@ -21,6 +21,8 @@
|
||||
|
||||
#define TC_D10V
|
||||
|
||||
struct fix;
|
||||
|
||||
#define TARGET_BYTES_BIG_ENDIAN 1
|
||||
|
||||
/* The target BFD architecture. */
|
||||
@ -30,8 +32,6 @@
|
||||
|
||||
/* Call md_pcrel_from_section, not md_pcrel_from. */
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
|
||||
struct fix;
|
||||
long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
/* Permit temporary numeric labels. */
|
||||
#define LOCAL_LABELS_FB 1
|
||||
|
@ -29,8 +29,6 @@
|
||||
#define md_operand(x)
|
||||
|
||||
/* Call md_pcrel_from_section, not md_pcrel_from. */
|
||||
struct fix;
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
|
||||
|
||||
/* Permit temporary numeric labels. */
|
||||
|
@ -48,7 +48,6 @@
|
||||
#define tc_fix_adjustable(FIX) epiphany_fix_adjustable (FIX)
|
||||
extern bfd_boolean epiphany_fix_adjustable (struct fix *);
|
||||
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP,SEC)
|
||||
|
||||
#define TC_HANDLES_FX_DONE
|
||||
|
@ -50,7 +50,6 @@ extern bfd_boolean fr30_fix_adjustable (struct fix *);
|
||||
|
||||
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
/* For 8 vs 16 vs 32 bit branch selection. */
|
||||
#define TC_GENERIC_RELAX_TABLE md_relax_table
|
||||
|
@ -76,7 +76,6 @@ void frv_frob_label (symbolS *);
|
||||
|
||||
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
/* After all of the symbols have been adjusted, go over the file looking
|
||||
for any relocations that pic won't support. */
|
||||
|
@ -62,4 +62,3 @@
|
||||
extern void iq2000_frob_file (void);
|
||||
extern bfd_boolean iq2000_fix_adjustable (struct fix *);
|
||||
extern int iq2000_force_relocation (struct fix *);
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
@ -40,7 +40,6 @@
|
||||
#define tc_gen_reloc gas_cgen_tc_gen_reloc
|
||||
|
||||
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC)
|
||||
|
||||
extern bfd_boolean lm32_fix_adjustable (struct fix *);
|
||||
|
@ -67,7 +67,6 @@ extern void m32c_prepare_relax_scan (fragS *, offsetT *, relax_substateT);
|
||||
|
||||
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
|
||||
#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
/* We need a special version of the TC_START_LABEL macro so that we
|
||||
allow the :Z, :S, :Q and :G suffixes to be
|
||||
|
@ -37,7 +37,6 @@ extern const char *m32r_target_format (void);
|
||||
#endif
|
||||
|
||||
/* Call md_pcrel_from_section, not md_pcrel_from. */
|
||||
long md_pcrel_from_section (struct fix *, segT);
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section(FIX, SEC)
|
||||
|
||||
/* Permit temporary numeric labels. */
|
||||
|
@ -87,7 +87,6 @@ struct mcore_tc_sy
|
||||
#include "write.h" /* For definition of fixS */
|
||||
|
||||
extern void md_mcore_end (void);
|
||||
extern long md_pcrel_from_section (fixS *, segT);
|
||||
extern arelent * tc_gen_reloc (asection *, fixS *);
|
||||
extern int mcore_force_relocation (fixS *);
|
||||
extern bfd_boolean mcore_fix_adjustable (fixS *);
|
||||
|
@ -53,7 +53,6 @@ extern void mep_apply_fix (struct fix *, valueT *, segT);
|
||||
|
||||
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
|
||||
#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
#define tc_frob_file() mep_frob_file ()
|
||||
extern void mep_frob_file (void);
|
||||
|
@ -51,7 +51,6 @@ extern int metag_force_relocation (struct fix *);
|
||||
|
||||
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
#define HANDLE_ALIGN(fragp) metag_handle_align (fragp)
|
||||
extern void metag_handle_align (struct frag *);
|
||||
|
@ -94,7 +94,7 @@ extern const struct relax_type md_relax_table[];
|
||||
# error No target format specified.
|
||||
#endif
|
||||
|
||||
#include "write.h" /* For definition of fixS */
|
||||
#include "write.h" /* For definition of fixS. */
|
||||
|
||||
extern void md_begin (void);
|
||||
extern void md_assemble (char *);
|
||||
|
@ -168,7 +168,6 @@ extern int mmix_force_relocation (struct fix *);
|
||||
|
||||
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
#define md_section_align(seg, size) (size)
|
||||
|
||||
|
@ -91,8 +91,6 @@
|
||||
of a PC relative instruction is the next instruction, so this
|
||||
macro would return the length of an instruction. */
|
||||
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
#define LISTING_WORD_SIZE 2
|
||||
/* The number of bytes to put into a word in a listing. This affects
|
||||
the way the bytes are clumped together in the listing. For
|
||||
|
@ -48,7 +48,6 @@ extern void mt_apply_fix (struct fix *, valueT *, segT);
|
||||
|
||||
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
|
||||
#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
#define obj_fix_adjustable(fixP) iq2000_fix_adjustable (fixP)
|
||||
extern bfd_boolean mt_fix_adjustable (struct fix *);
|
||||
|
@ -50,7 +50,6 @@ extern bfd_boolean or1k_fix_adjustable (struct fix *);
|
||||
#define tc_fix_adjustable(FIX) or1k_fix_adjustable (FIX)
|
||||
|
||||
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
|
||||
|
||||
/* For 8 vs 16 vs 32 bit branch selection. */
|
||||
|
@ -297,7 +297,6 @@ extern void ppc_frob_label (symbolS *);
|
||||
|
||||
/* call md_pcrel_from_section, not md_pcrel_from */
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section(FIX, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
#define md_parse_name(name, exp, mode, c) ppc_parse_name (name, exp)
|
||||
extern int ppc_parse_name (const char *, struct expressionS *);
|
||||
|
@ -58,7 +58,6 @@ extern void rl78_frag_init (fragS *);
|
||||
|
||||
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
|
||||
#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
/* RL78 doesn't have a 32 bit PCREL relocations. */
|
||||
#define TC_FORCE_RELOCATION_SUB_LOCAL(FIX, SEG) 1
|
||||
|
@ -70,7 +70,6 @@ extern void rx_frag_init (fragS *);
|
||||
|
||||
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
|
||||
#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
/* RX doesn't have a 32 bit PCREL relocations. */
|
||||
#define TC_FORCE_RELOCATION_SUB_LOCAL(FIX, SEG) 1
|
||||
|
@ -75,7 +75,6 @@ extern int target_big_endian;
|
||||
|
||||
/* call md_pcrel_from_section, not md_pcrel_from */
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section(FIX, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
#define md_operand(x)
|
||||
|
||||
|
@ -87,7 +87,6 @@ extern int sh_force_relocation (struct fix *);
|
||||
&& sh_relax && SWITCH_TABLE (FIX))
|
||||
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
/* SH_COUNT relocs are allowed outside of frag.
|
||||
The target is also buggy and sets fix size too large for other relocs. */
|
||||
|
@ -55,6 +55,5 @@ extern void tc_reloc_mangle (struct fix *, struct internal_reloc *, bfd_vma);
|
||||
#define LISTING_HEADER "Infineon XC16X GAS "
|
||||
#define NEED_FX_R_TYPE 1
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
#define md_operand(x)
|
||||
|
@ -54,7 +54,6 @@ extern int xstormy16_force_relocation (struct fix *);
|
||||
|
||||
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
|
||||
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
|
||||
extern long md_pcrel_from_section (struct fix *, segT);
|
||||
|
||||
#define TC_CONS_FIX_NEW xstormy16_cons_fix_new
|
||||
extern void xstormy16_cons_fix_new (fragS *f, int, int, expressionS *,
|
||||
|
3
gas/tc.h
3
gas/tc.h
@ -54,6 +54,9 @@ void md_create_short_jump (char *, addressT, addressT, fragS *, symbolS *);
|
||||
#ifndef md_pcrel_from
|
||||
long md_pcrel_from (fixS *);
|
||||
#endif
|
||||
#ifndef md_pcrel_from_section
|
||||
long md_pcrel_from_section (fixS *, segT);
|
||||
#endif
|
||||
#ifndef md_operand
|
||||
void md_operand (expressionS *);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user