X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-mn10300.c;h=1a41731379f01454b8c79f1d06b402aaca9f0596;hb=1820262bc909121a408e030195789a70513b9139;hp=9a5d3bed5dcb6f78185b4b7b23286f79a1eb5966;hpb=6d4af3c269e64b0093b23bd63d302bd9f90de6a9;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/tc-mn10300.c b/gas/config/tc-mn10300.c index 9a5d3bed5d..1a41731379 100644 --- a/gas/config/tc-mn10300.c +++ b/gas/config/tc-mn10300.c @@ -1,5 +1,5 @@ /* tc-mn10300.c -- Assembler code for the Matsushita 10300 - Copyright (C) 1996-2016 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -89,9 +89,6 @@ const relax_typeS md_relax_table[] = }; -/* Set linkrelax here to avoid fixups in most sections. */ -int linkrelax = 1; - static int current_machine; /* Fixups. */ @@ -287,7 +284,7 @@ static const struct reg_name other_registers[] = #define OTHER_REG_NAME_CNT ARRAY_SIZE (other_registers) /* Perform a binary search of the given register table REGS to see - if NAME is a valid regiter name. Returns the register number from + if NAME is a valid register name. Returns the register number from the array on success, or -1 on failure. */ static int @@ -903,7 +900,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, valueT md_section_align (asection *seg, valueT addr) { - int align = bfd_get_section_alignment (stdoutput, seg); + int align = bfd_section_alignment (seg); return ((addr + (1 << align) - 1) & -(1 << align)); } @@ -944,6 +941,9 @@ md_begin (void) current_machine = MN103; #endif + + /* Set linkrelax here to avoid fixups in most sections. */ + linkrelax = 1; } static symbolS *GOT_symbol; @@ -1865,7 +1865,7 @@ keep_going: as the size of a pointer, so we need a union to convert the opindex field of the fr_cgen structure into a char * so that it can be stored in the frag. We do not have - to worry about loosing accuracy as we are not going to + to worry about losing accuracy as we are not going to be even close to the 32bit limit of the int. */ union { @@ -2168,7 +2168,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) static arelent * relocs[MAX_RELOC_EXPANSION + 1]; arelent *reloc; - reloc = xmalloc (sizeof (arelent)); + reloc = XNEW (arelent); reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type); if (reloc->howto == NULL) @@ -2204,7 +2204,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) even local symbols defined in the same section. */ if (ssec != absolute_section || asec != absolute_section) { - arelent * reloc2 = xmalloc (sizeof * reloc); + arelent * reloc2 = XNEW (arelent); relocs[0] = reloc2; relocs[1] = reloc; @@ -2212,7 +2212,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) reloc2->address = reloc->address; reloc2->howto = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_MN10300_SYM_DIFF); reloc2->addend = - S_GET_VALUE (fixp->fx_subsy); - reloc2->sym_ptr_ptr = xmalloc (sizeof (asymbol *)); + reloc2->sym_ptr_ptr = XNEW (asymbol *); *reloc2->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_subsy); reloc->addend = fixp->fx_offset; @@ -2223,7 +2223,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) } else { - reloc->sym_ptr_ptr = xmalloc (sizeof (asymbol *)); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); } @@ -2268,7 +2268,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) } else { - reloc->sym_ptr_ptr = xmalloc (sizeof (asymbol *)); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->addend = fixp->fx_offset; } @@ -2422,7 +2422,7 @@ mn10300_fix_adjustable (struct fix *fixp) /* Likewise, do not adjust symbols that won't be merged, or debug symbols, because they too break relaxation. We do want to adjust - other mergable symbols, like .rodata, because code relaxations + other mergeable symbols, like .rodata, because code relaxations need section-relative symbols to properly relax them. */ if (! (S_GET_SEGMENT (fixp->fx_addsy)->flags & SEC_MERGE)) return FALSE; @@ -2616,9 +2616,9 @@ mn10300_handle_align (fragS *frag) && now_seg != bss_section /* Do not create relocs for the merging sections - such relocs will prevent the contents from being merged. */ - && (bfd_get_section_flags (now_seg->owner, now_seg) & SEC_MERGE) == 0) + && (bfd_section_flags (now_seg) & SEC_MERGE) == 0) /* Create a new fixup to record the alignment request. The symbol is - irrelevent but must be present so we use the absolute section symbol. + irrelevant but must be present so we use the absolute section symbol. The offset from the symbol is used to record the power-of-two alignment value. The size is set to 0 because the frag may already be aligned, thus causing cvt_frag_to_fill to reduce the size of the frag to zero. */