X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-mn10200.c;h=0558a3751d9bcce7ca0f7d27f0d8107eb61adc73;hb=de54374205650be71237ce51ef7981d30ddd78dc;hp=76280c114b9b49097a5d98348edddd8109050afb;hpb=652618321c90cdb53f6573b4e8aef196cdf74a4a;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/tc-mn10200.c b/gas/config/tc-mn10200.c index 76280c114b..0558a3751d 100644 --- a/gas/config/tc-mn10200.c +++ b/gas/config/tc-mn10200.c @@ -1,6 +1,5 @@ /* tc-mn10200.c -- Assembler code for the Matsushita 10200 - Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, - 2005, 2006, 2007, 2009 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -134,7 +133,7 @@ static const struct reg_name other_registers[] = (sizeof (other_registers) / sizeof (struct reg_name)) /* reg_name_search does a binary search of the given register table - to see if "name" is a valid regiter name. Returns the register + to see if "name" is a valid register name. Returns the register number from the array on success, or -1 on failure. */ static int @@ -182,13 +181,12 @@ data_register_name (expressionS *expressionP) char c; /* Find the spelling of the operand. */ - start = name = input_line_pointer; - - c = get_symbol_end (); + start = input_line_pointer; + c = get_symbol_name (&name); reg_number = reg_name_search (data_registers, DATA_REG_NAME_CNT, name); /* Put back the delimiting char. */ - *input_line_pointer = c; + (void) restore_line_pointer (c); /* Look to see if it's in the register table. */ if (reg_number >= 0) @@ -227,13 +225,12 @@ address_register_name (expressionS *expressionP) char c; /* Find the spelling of the operand. */ - start = name = input_line_pointer; - - c = get_symbol_end (); + start = input_line_pointer; + c = get_symbol_name (&name); reg_number = reg_name_search (address_registers, ADDRESS_REG_NAME_CNT, name); /* Put back the delimiting char. */ - *input_line_pointer = c; + (void) restore_line_pointer (c); /* Look to see if it's in the register table. */ if (reg_number >= 0) @@ -272,13 +269,12 @@ other_register_name (expressionS *expressionP) char c; /* Find the spelling of the operand. */ - start = name = input_line_pointer; - - c = get_symbol_end (); + start = input_line_pointer; + c = get_symbol_name (&name); reg_number = reg_name_search (other_registers, OTHER_REG_NAME_CNT, name); /* Put back the delimiting char. */ - *input_line_pointer = c; + (void) restore_line_pointer (c); /* Look to see if it's in the register table. */ if (reg_number >= 0) @@ -307,7 +303,7 @@ none yet\n")); int md_parse_option (int c ATTRIBUTE_UNUSED, - char *arg ATTRIBUTE_UNUSED) + const char *arg ATTRIBUTE_UNUSED) { return 0; } @@ -318,7 +314,7 @@ md_undefined_symbol (char *name ATTRIBUTE_UNUSED) return 0; } -char * +const char * md_atof (int type, char *litp, int *sizep) { return ieee_md_atof (type, litp, sizep, FALSE); @@ -562,6 +558,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, break; case 0xff: opcode = 0xfe; + break; case 0xe8: opcode = 0xe9; break; @@ -678,15 +675,15 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, valueT md_section_align (asection *seg, valueT addr) { - int align = bfd_get_section_alignment (stdoutput, seg); - return ((addr + (1 << align) - 1) & (-1 << align)); + int align = bfd_section_alignment (seg); + return ((addr + (1 << align) - 1) & -(1 << align)); } void md_begin (void) { - char *prev_name = ""; - register const struct mn10200_opcode *op; + const char *prev_name = ""; + const struct mn10200_opcode *op; mn10200_hash = hash_new (); @@ -751,7 +748,7 @@ arelent * tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) { arelent *reloc; - reloc = xmalloc (sizeof (arelent)); + reloc = XNEW (arelent); if (fixp->fx_subsy != NULL) { @@ -784,7 +781,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) return NULL; } reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; - 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; return reloc; @@ -980,32 +977,32 @@ md_assemble (char *str) } else if (operand->flags & MN10200_OPERAND_PSW) { - char *start = input_line_pointer; - char c = get_symbol_end (); + char *start; + char c = get_symbol_name (&start); if (strcmp (start, "psw") != 0) { - *input_line_pointer = c; + (void) restore_line_pointer (c); input_line_pointer = hold; str = hold; goto error; } - *input_line_pointer = c; + (void) restore_line_pointer (c); goto keep_going; } else if (operand->flags & MN10200_OPERAND_MDR) { - char *start = input_line_pointer; - char c = get_symbol_end (); + char *start; + char c = get_symbol_name (&start); if (strcmp (start, "mdr") != 0) { - *input_line_pointer = c; + (void) restore_line_pointer (c); input_line_pointer = hold; str = hold; goto error; } - *input_line_pointer = c; + (void) restore_line_pointer (c); goto keep_going; } else if (data_register_name (&ex)) @@ -1106,7 +1103,7 @@ md_assemble (char *str) break; } -keep_going: + keep_going: str = input_line_pointer; input_line_pointer = hold; @@ -1157,14 +1154,14 @@ keep_going: abort (); /* Write out the instruction. */ - dwarf2_emit_insn (0); + dwarf2_emit_insn (size); if (relaxable && fc > 0) { /* On a 64-bit host the size of an 'int' is not the same 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 { @@ -1337,4 +1334,3 @@ keep_going: } } } -