From 19f785835e5e97a7c666e8f942cb4ec8e543aebc Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 5 Sep 2001 02:39:43 +0000 Subject: * config/tc-alpha.c (struct alpha_insn): Make sequence scalar long. (MACRO_LITERAL, MACRO_BASE, MACRO_BYTOFF, MACRO_JSR): Remove. (alpha_macros): Remove occurrences of same. (O_lituse_addr, O_gprel): New. (DUMMY_RELOC_LITUSE_*): New. (s_alpha_ucons, s_alpha_arch): Prototype. (alpha_reloc_op): Construct elements via DEF macro. (ALPHA_RELOC_SEQUENCE_OK): Remove. (struct alpha_reloc_tag): Rename from alpha_literal_tag; rename members to not be literal specific. (next_sequence_num): New. (md_apply_fix3): Cope with missing GPDISP_LO16. Adjust for added/removed BFD relocations. (alpha_force_relocation, alpha_fix_adjustable): Likewise. (alpha_adjust_symtab_relocs): Handle GPDISP relocs as well. (tokenize_arguments): Parse ! relocations properly. (find_macro_match): Delete unused macro argument types. (assemble_insn): Add reloc parameter; emit that instead of the default as appropriate. (get_alpha_reloc_tag): New. Split from ... (emit_insn): ... here. Allocate a reloc tag for GPDISP. (assemble_tokens): Don't search macros if user relocation present. Copy reloc sequence number to insn struct. (emit_ldgp): Remove user reloc handling. (load_expression, emit_lda, emit_ldah, emit_ir_load): Likewise. (emit_loadstore, emit_ldXu, emit_ldil, emit_stX): Likewise. (emit_sextX, emit_division, emit_jsrjmp, emit_retjcr): Likewise. * config/tc-alpha.h (tc_adjust_symtab): Always define. (struct alpha_fix_tag): Name members less literal specific. * gas/alpha/alpha.exp: New file. * gas/alpha/elf-reloc-1.[sd]: New test. * gas/alpha/elf-reloc-2.[sl]: New test. * gas/alpha/elf-reloc-3.[sl]: New test. * gas/alpha/elf-reloc-4.[sd]: New test. * gas/alpha/fp.exp: Remove file. * gas/alpha/fp.s: Output to .data not .rdata. * gas/alpha/fp.d: Adjust to match. --- gas/config/tc-alpha.h | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'gas/config/tc-alpha.h') diff --git a/gas/config/tc-alpha.h b/gas/config/tc-alpha.h index 26739f1..1eabfd0 100644 --- a/gas/config/tc-alpha.h +++ b/gas/config/tc-alpha.h @@ -117,11 +117,10 @@ extern void alpha_frob_file_before_adjust PARAMS ((void)); #define RELOC_OP_P #endif -#ifdef RELOC_OP_P -/* Before the relocations are written, reorder them, so that user supplied - !lituse relocations follow the appropriate !literal relocations. Also - convert the gas-internal relocations to the appropriate linker relocations. - */ +/* Before the relocations are written, reorder them, so that user + 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)); @@ -133,14 +132,14 @@ extern void alpha_adjust_symtab PARAMS ((void)); struct alpha_fix_tag { - struct fix *next_lituse; /* next !lituse */ - struct alpha_literal_tag *info; /* other members with same sequence */ + struct fix *next_reloc; /* next !lituse or !gpdisp */ + struct alpha_reloc_tag *info; /* other members with same sequence */ }; /* Initialize the TC_FIX_TYPE field. */ #define TC_INIT_FIX_DATA(fixP) \ do { \ - fixP->tc_fix_data.next_lituse = (struct fix *)0; \ + fixP->tc_fix_data.next_reloc = (struct fix *)0; \ fixP->tc_fix_data.info = (struct alpha_literal_tag *)0; \ } while (0) @@ -148,10 +147,9 @@ do { \ #define TC_FIX_DATA_PRINT(stream,fixP) \ do { \ if (fixP->tc_fix_data.info) \ - fprintf (stderr, "\tinfo = 0x%lx, next_lituse = 0x%lx\n", \ + fprintf (stderr, "\tinfo = 0x%lx, next_reloc = 0x%lx\n", \ (long)fixP->tc_fix_data.info, \ - (long)fixP->tc_fix_data.next_lituse); \ + (long)fixP->tc_fix_data.next_reloc); \ } while (0) -#endif #define DWARF2_LINE_MIN_INSN_LENGTH 4 -- cgit v1.1