aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-alpha.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-09-05 02:39:43 +0000
committerRichard Henderson <rth@redhat.com>2001-09-05 02:39:43 +0000
commit19f785835e5e97a7c666e8f942cb4ec8e543aebc (patch)
tree2449f5d4aa18964c87052a617c6f0af5b3191e54 /gas/config/tc-alpha.h
parentb8720f9d577e623c5e7203ec586f19a06b5e7399 (diff)
downloadfsf-binutils-gdb-19f785835e5e97a7c666e8f942cb4ec8e543aebc.zip
fsf-binutils-gdb-19f785835e5e97a7c666e8f942cb4ec8e543aebc.tar.gz
fsf-binutils-gdb-19f785835e5e97a7c666e8f942cb4ec8e543aebc.tar.bz2
* 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.
Diffstat (limited to 'gas/config/tc-alpha.h')
-rw-r--r--gas/config/tc-alpha.h20
1 files changed, 9 insertions, 11 deletions
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