* config/tc-frv.c (md_apply_fix): Use abs_section_sym for
relocs with no symbol. * config/tc-mmix.c (md_assemble): Mark fake symbol on BFD_RELOC_MMIX_BASE_PLUS_OFFSET as OK for use by relocs. (mmix_md_end): Likewise mark mmix reg contents section symbol.
This commit is contained in:
parent
326e541f5e
commit
455bde508d
3 changed files with 21 additions and 4 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2008-09-15 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* config/tc-frv.c (md_apply_fix): Use abs_section_sym for
|
||||||
|
relocs with no symbol.
|
||||||
|
* config/tc-mmix.c (md_assemble): Mark fake symbol on
|
||||||
|
BFD_RELOC_MMIX_BASE_PLUS_OFFSET as OK for use by relocs.
|
||||||
|
(mmix_md_end): Likewise mark mmix reg contents section symbol.
|
||||||
|
|
||||||
2008-09-14 Chris Smith <chris@zxdesign.info>
|
2008-09-14 Chris Smith <chris@zxdesign.info>
|
||||||
|
|
||||||
* config/tc-z80.c: Opcode generation of ld a,(bc) and ld a,(de) was
|
* config/tc-z80.c: Opcode generation of ld a,(bc) and ld a,(de) was
|
||||||
|
|
|
@ -1475,7 +1475,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
|
||||||
case BFD_RELOC_FRV_TLSDESC_RELAX:
|
case BFD_RELOC_FRV_TLSDESC_RELAX:
|
||||||
case BFD_RELOC_FRV_GETTLSOFF_RELAX:
|
case BFD_RELOC_FRV_GETTLSOFF_RELAX:
|
||||||
case BFD_RELOC_FRV_TLSOFF_RELAX:
|
case BFD_RELOC_FRV_TLSOFF_RELAX:
|
||||||
fixP->fx_addsy = expr_build_uconstant (0);
|
fixP->fx_addsy = abs_section_sym;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -1365,6 +1365,9 @@ md_assemble (char *str)
|
||||||
pass expressions as symbols and use fix_new, not fix_new_exp. */
|
pass expressions as symbols and use fix_new, not fix_new_exp. */
|
||||||
sym = make_expr_symbol (exp + 1);
|
sym = make_expr_symbol (exp + 1);
|
||||||
|
|
||||||
|
/* Mark the symbol as being OK for a reloc. */
|
||||||
|
symbol_get_bfdsym (sym)->flags |= BSF_KEEP;
|
||||||
|
|
||||||
/* Now we know it can be a "base address plus offset". Add
|
/* Now we know it can be a "base address plus offset". Add
|
||||||
proper fixup types so we can handle this later, when we've
|
proper fixup types so we can handle this later, when we've
|
||||||
parsed everything. */
|
parsed everything. */
|
||||||
|
@ -3448,6 +3451,7 @@ mmix_md_end (void)
|
||||||
{
|
{
|
||||||
fragS *fragP;
|
fragS *fragP;
|
||||||
symbolS *mainsym;
|
symbolS *mainsym;
|
||||||
|
asection *regsec;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* The first frag of GREG:s going into the register contents section. */
|
/* The first frag of GREG:s going into the register contents section. */
|
||||||
|
@ -3512,9 +3516,9 @@ mmix_md_end (void)
|
||||||
and the same allocation order (within a file) as mmixal. */
|
and the same allocation order (within a file) as mmixal. */
|
||||||
segT this_segment = now_seg;
|
segT this_segment = now_seg;
|
||||||
subsegT this_subsegment = now_subseg;
|
subsegT this_subsegment = now_subseg;
|
||||||
asection *regsec
|
|
||||||
= bfd_make_section_old_way (stdoutput,
|
regsec = bfd_make_section_old_way (stdoutput,
|
||||||
MMIX_REG_CONTENTS_SECTION_NAME);
|
MMIX_REG_CONTENTS_SECTION_NAME);
|
||||||
subseg_set (regsec, 0);
|
subseg_set (regsec, 0);
|
||||||
|
|
||||||
/* Finally emit the initialization-value. Emit a variable frag, which
|
/* Finally emit the initialization-value. Emit a variable frag, which
|
||||||
|
@ -3541,6 +3545,11 @@ mmix_md_end (void)
|
||||||
subseg_set (this_segment, this_subsegment);
|
subseg_set (this_segment, this_subsegment);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
regsec = bfd_get_section_by_name (stdoutput, MMIX_REG_CONTENTS_SECTION_NAME);
|
||||||
|
/* Mark the section symbol as being OK for a reloc. */
|
||||||
|
if (regsec != NULL)
|
||||||
|
regsec->symbol->flags |= BSF_KEEP;
|
||||||
|
|
||||||
/* Iterate over frags resulting from GREGs and move those that evidently
|
/* Iterate over frags resulting from GREGs and move those that evidently
|
||||||
have the same value together and point one to another.
|
have the same value together and point one to another.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue