diff options
author | Alan Modra <amodra@gmail.com> | 2002-09-05 00:01:18 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2002-09-05 00:01:18 +0000 |
commit | a161fe53205dbc69d42f5a123b2b04346724b2de (patch) | |
tree | bb28dde4f0deee90db9e7a8247fb82dd2e4933fe /gas/config/tc-alpha.h | |
parent | 8f8429869e9a245fe48b8c69bde2bffa3d6c7734 (diff) | |
download | fsf-binutils-gdb-a161fe53205dbc69d42f5a123b2b04346724b2de.zip fsf-binutils-gdb-a161fe53205dbc69d42f5a123b2b04346724b2de.tar.gz fsf-binutils-gdb-a161fe53205dbc69d42f5a123b2b04346724b2de.tar.bz2 |
gas reloc rewrite.
Diffstat (limited to 'gas/config/tc-alpha.h')
-rw-r--r-- | gas/config/tc-alpha.h | 45 |
1 files changed, 19 insertions, 26 deletions
diff --git a/gas/config/tc-alpha.h b/gas/config/tc-alpha.h index 65e0684..d6a8842 100644 --- a/gas/config/tc-alpha.h +++ b/gas/config/tc-alpha.h @@ -1,5 +1,5 @@ /* This file is tc-alpha.h - Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Ken Raeburn <raeburn@cygnus.com>. @@ -39,6 +39,9 @@ #define NEED_LITERAL_POOL #define REPEAT_CONS_EXPRESSIONS +struct fix; +struct alpha_reloc_tag; + extern void alpha_validate_fix PARAMS ((struct fix *)); extern int alpha_force_relocation PARAMS ((struct fix *)); extern int alpha_fix_adjustable PARAMS ((struct fix *)); @@ -47,24 +50,14 @@ extern unsigned long alpha_gprmask, alpha_fprmask; extern valueT alpha_gp_value; #ifdef OBJ_ELF -#define TC_VALIDATE_FIX(FIXP,SEGTYPE,SKIP) alpha_validate_fix (FIXP) +#define TC_VALIDATE_FIX(FIX,SEGTYPE,SKIP) alpha_validate_fix (FIX) #endif - -#define TC_FORCE_RELOCATION(FIXP) alpha_force_relocation (FIXP) -#define tc_fix_adjustable(FIXP) alpha_fix_adjustable (FIXP) +#define TC_FORCE_RELOCATION(FIX) alpha_force_relocation (FIX) +#define tc_fix_adjustable(FIX) alpha_fix_adjustable (FIX) #define RELOC_REQUIRES_SYMBOL -/* This expression evaluates to false if the relocation is for a local - object for which we still want to do the relocation at runtime. - True if we are willing to perform this relocation while building - the .o file. This is only used for pcrel relocations. */ - -#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \ - ((FIX)->fx_addsy == NULL \ - || (! S_IS_EXTERNAL ((FIX)->fx_addsy) \ - && ! S_IS_WEAK ((FIX)->fx_addsy) \ - && S_IS_DEFINED ((FIX)->fx_addsy) \ - && ! S_IS_COMMON ((FIX)->fx_addsy))) +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 #define md_convert_frag(b,s,f) as_fatal ("alpha convert_frag\n") #define md_estimate_size_before_relax(f,s) \ @@ -129,8 +122,8 @@ extern flagword alpha_elf_section_flags PARAMS ((flagword, int, int)); supplied !lituse relocations follow the appropriate !literal relocations. Also convert the gas-internal relocations to the appropriate linker relocations. */ -#define tc_adjust_symtab() alpha_adjust_symtab () -extern void alpha_adjust_symtab PARAMS ((void)); +#define tc_frob_file_before_fix() alpha_before_fix () +extern void alpha_before_fix PARAMS ((void)); /* New fields for supporting explicit relocations (such as !literal to mark where a pointer is loaded from the global table, and !lituse_base to track @@ -145,19 +138,19 @@ struct alpha_fix_tag }; /* Initialize the TC_FIX_TYPE field. */ -#define TC_INIT_FIX_DATA(fixP) \ +#define TC_INIT_FIX_DATA(FIX) \ do { \ - fixP->tc_fix_data.next_reloc = (struct fix *)0; \ - fixP->tc_fix_data.info = (struct alpha_literal_tag *)0; \ + FIX->tc_fix_data.next_reloc = (struct fix *) 0; \ + FIX->tc_fix_data.info = (struct alpha_reloc_tag *) 0; \ } while (0) /* Work with DEBUG5 to print fields in tc_fix_type. */ -#define TC_FIX_DATA_PRINT(stream,fixP) \ +#define TC_FIX_DATA_PRINT(STREAM, FIX) \ do { \ - if (fixP->tc_fix_data.info) \ - fprintf (stderr, "\tinfo = 0x%lx, next_reloc = 0x%lx\n", \ - (long)fixP->tc_fix_data.info, \ - (long)fixP->tc_fix_data.next_reloc); \ + if (FIX->tc_fix_data.info) \ + fprintf (STREAM, "\tinfo = 0x%lx, next_reloc = 0x%lx\n", \ + (long) FIX->tc_fix_data.info, \ + (long) FIX->tc_fix_data.next_reloc); \ } while (0) #define DWARF2_LINE_MIN_INSN_LENGTH 4 |