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-pj.h | |
parent | 8f8429869e9a245fe48b8c69bde2bffa3d6c7734 (diff) | |
download | gdb-a161fe53205dbc69d42f5a123b2b04346724b2de.zip gdb-a161fe53205dbc69d42f5a123b2b04346724b2de.tar.gz gdb-a161fe53205dbc69d42f5a123b2b04346724b2de.tar.bz2 |
gas reloc rewrite.
Diffstat (limited to 'gas/config/tc-pj.h')
-rw-r--r-- | gas/config/tc-pj.h | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/gas/config/tc-pj.h b/gas/config/tc-pj.h index 52d33d2..4e6c92d 100644 --- a/gas/config/tc-pj.h +++ b/gas/config/tc-pj.h @@ -1,5 +1,5 @@ /* This file is tc-pj.h - Copyright 1999, 2000 Free Software Foundation, Inc. + Copyright 1999, 2000, 2002 Free Software Foundation, Inc. Contributed by Steve Chamberlain of Transmeta, sac@pobox.com @@ -32,7 +32,7 @@ : "Pico Java GAS Little Endian") void pj_cons_fix_new_pj PARAMS ((struct frag *, int, int, expressionS *)); -arelent *tc_gen_reloc PARAMS((asection *section, struct fix *fixp)); +arelent *tc_gen_reloc PARAMS((asection *, struct fix *)); #define md_section_align(SEGMENT, SIZE) (SIZE) #define md_convert_frag(B, S, F) (as_fatal (_("convert_frag\n")), 0) @@ -42,17 +42,25 @@ arelent *tc_gen_reloc PARAMS((asection *section, struct fix *fixp)); /* PC relative operands are relative to the start of the opcode, and the operand is always one byte into the opcode. */ -#define md_pcrel_from(FIXP) \ - ((FIXP)->fx_where + (FIXP)->fx_frag->fr_address - 1) +#define md_pcrel_from(FIX) \ + ((FIX)->fx_where + (FIX)->fx_frag->fr_address - 1) #define TC_CONS_FIX_NEW(FRAG, WHERE, NBYTES, EXP) \ pj_cons_fix_new_pj (FRAG, WHERE, NBYTES, EXP) +/* No shared lib support, so we don't need to ensure externally + visible symbols can be overridden. */ +#define EXTERN_FORCE_RELOC 0 + /* Always leave vtable relocs untouched in the output. */ #define TC_FORCE_RELOCATION(FIX) \ ((FIX)->fx_r_type == BFD_RELOC_VTABLE_INHERIT \ - || (FIX)->fx_r_type == BFD_RELOC_VTABLE_ENTRY) + || (FIX)->fx_r_type == BFD_RELOC_VTABLE_ENTRY \ + || S_FORCE_RELOC ((FIX)->fx_addsy)) + +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 -#define obj_fix_adjustable(FIX) \ +#define tc_fix_adjustable(FIX) \ (! ((FIX)->fx_r_type == BFD_RELOC_VTABLE_INHERIT \ || (FIX)->fx_r_type == BFD_RELOC_VTABLE_ENTRY)) |