aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-pj.h
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2002-09-05 00:01:18 +0000
committerAlan Modra <amodra@gmail.com>2002-09-05 00:01:18 +0000
commita161fe53205dbc69d42f5a123b2b04346724b2de (patch)
treebb28dde4f0deee90db9e7a8247fb82dd2e4933fe /gas/config/tc-pj.h
parent8f8429869e9a245fe48b8c69bde2bffa3d6c7734 (diff)
downloadgdb-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.h20
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))