* config/tc-ppc.c (toc_reloc_types): New variable.
(md_assemble): Set it. (ppc_frob_file_before_adjust): Don't warn about toc section size if we have large toc relocs and no small toc relocs.
This commit is contained in:
@@ -1,3 +1,15 @@
|
||||
2010-07-01 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* config/tc-ppc.c (toc_reloc_types): New variable.
|
||||
(md_assemble): Set it.
|
||||
(ppc_frob_file_before_adjust): Don't warn about toc section size
|
||||
if we have large toc relocs and no small toc relocs.
|
||||
|
||||
2010-06-29 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* config/tc-moxie.c (md_apply_fix): Delete set but otherwise
|
||||
unused variable.
|
||||
|
||||
2010-06-29 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* config/tc-maxq.h: Delete file.
|
||||
|
||||
@@ -183,6 +183,12 @@ int ppc_cie_data_alignment;
|
||||
/* The type of processor we are assembling for. This is one or more
|
||||
of the PPC_OPCODE flags defined in opcode/ppc.h. */
|
||||
ppc_cpu_t ppc_cpu = 0;
|
||||
|
||||
/* Flags set on encountering toc relocs. */
|
||||
enum {
|
||||
has_large_toc_reloc = 1,
|
||||
has_small_toc_reloc = 2
|
||||
} toc_reloc_types;
|
||||
|
||||
/* The target specific pseudo-ops which we support. */
|
||||
|
||||
@@ -2168,6 +2174,7 @@ ppc_frob_file_before_adjust (void)
|
||||
|
||||
toc = bfd_get_section_by_name (stdoutput, ".toc");
|
||||
if (toc != NULL
|
||||
&& toc_reloc_types != has_large_toc_reloc
|
||||
&& bfd_section_size (stdoutput, toc) > 0x10000)
|
||||
as_warn (_("TOC section size exceeds 64k"));
|
||||
|
||||
@@ -2783,6 +2790,20 @@ md_assemble (char *str)
|
||||
}
|
||||
}
|
||||
|
||||
switch (reloc)
|
||||
{
|
||||
case BFD_RELOC_PPC_TOC16:
|
||||
toc_reloc_types |= has_small_toc_reloc;
|
||||
break;
|
||||
case BFD_RELOC_PPC64_TOC16_LO:
|
||||
case BFD_RELOC_PPC64_TOC16_HI:
|
||||
case BFD_RELOC_PPC64_TOC16_HA:
|
||||
toc_reloc_types |= has_large_toc_reloc;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (ppc_obj64
|
||||
&& (operand->flags & (PPC_OPERAND_DS | PPC_OPERAND_DQ)) != 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user