X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-d10v.c;h=e7cfcdfa9a1ff8ad6889d07ac878a0fd1ae31306;hb=7766fd10024dc0587838fbc4608f3f8e30e17a26;hp=339eb7489114ac79e7aa92b049e1d3100cc484a1;hpb=800f6ec8e25806362f05460ed0e8804b60a59960;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/tc-d10v.c b/gas/config/tc-d10v.c index 339eb74891..e7cfcdfa9a 100644 --- a/gas/config/tc-d10v.c +++ b/gas/config/tc-d10v.c @@ -1,7 +1,5 @@ /* tc-d10v.c -- Assembler code for the Mitsubishi D10V - Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, - 2007, 2009 - Free Software Foundation, Inc. + Copyright (C) 1996-2016 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -224,7 +222,7 @@ md_show_usage (FILE *stream) } int -md_parse_option (int c, char *arg ATTRIBUTE_UNUSED) +md_parse_option (int c, const char *arg ATTRIBUTE_UNUSED) { switch (c) { @@ -253,7 +251,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, TRUE); @@ -271,13 +269,13 @@ valueT md_section_align (asection *seg, valueT addr) { int align = bfd_get_section_alignment (stdoutput, seg); - return ((addr + (1 << align) - 1) & (-1 << align)); + return ((addr + (1 << align) - 1) & -(1 << align)); } void md_begin (void) { - char *prev_name = ""; + const char *prev_name = ""; struct d10v_opcode *opcode; d10v_hash = hash_new (); @@ -1119,7 +1117,7 @@ write_2_short (struct d10v_opcode *opcode1, static unsigned long prev_insn; static struct d10v_opcode *prev_opcode = 0; static subsegT prev_subseg; -static segT prev_seg = 0;; +static segT prev_seg = 0; /* Find the symbol which has the same name as the register in exp. */ @@ -1201,7 +1199,9 @@ find_opcode (struct d10v_opcode *opcode, expressionS myops[]) for (i = 0; opcode->operands[i + 1]; i++) { int bits = d10v_operands[next_opcode->operands[opnum]].bits; - int flags = d10v_operands[next_opcode->operands[opnum]].flags; + + flags = d10v_operands[next_opcode->operands[opnum]].flags; + if (flags & OPERAND_ADDR) bits += 2; @@ -1226,9 +1226,7 @@ find_opcode (struct d10v_opcode *opcode, expressionS myops[]) sym_frag = symbol_get_frag (myops[opnum].X_add_symbol); found_symbol = FALSE; - current_position = - obstack_next_free (&frchain_now->frch_obstack) - - frag_now->fr_literal; + current_position = frag_now_fix_octets (); symbol_position = S_GET_VALUE (myops[opnum].X_add_symbol); for (f = frchain_now->frch_root; f; f = f->fr_next) @@ -1418,11 +1416,13 @@ do_assemble (char *str, struct d10v_opcode **opcode) /* Find the opcode end. */ for (op_start = op_end = (unsigned char *) str; - *op_end && nlen < 20 && !is_end_of_line[*op_end] && *op_end != ' '; + *op_end && !is_end_of_line[*op_end] && *op_end != ' '; op_end++) { name[nlen] = TOLOWER (op_start[nlen]); nlen++; + if (nlen == sizeof (name) - 1) + break; } name[nlen] = 0; @@ -1451,8 +1451,8 @@ arelent * tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) { arelent *reloc; - reloc = xmalloc (sizeof (arelent)); - reloc->sym_ptr_ptr = xmalloc (sizeof (asymbol *)); + reloc = XNEW (arelent); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type); @@ -1548,7 +1548,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) if ( segf && segf->sym != fixP->fx_addsy) value = 0; } - /* Drop through. */ + /* Fall through. */ case BFD_RELOC_D10V_18: /* Instruction addresses are always right-shifted by 2. */ value >>= AT_WORD_RIGHT_SHIFT;