X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-m68k.c;h=4d2c0e4d05617ad017f3fa0100d6972ccb97ade8;hb=87789e08e5cb2191af1122ed98af2d6c023b3a0a;hp=acfe3499d886bf333e88e09a94ba763a38bea911;hpb=3739860c11a9cfcdaa4d5d204ea3536784de7bb3;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c index acfe3499d8..4d2c0e4d05 100644 --- a/gas/config/tc-m68k.c +++ b/gas/config/tc-m68k.c @@ -1,5 +1,5 @@ /* tc-m68k.c -- Assemble for the m68k family - Copyright (C) 1987-2015 Free Software Foundation, Inc. + Copyright (C) 1987-2016 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -122,7 +122,7 @@ struct label_line { struct label_line *next; symbolS *label; - char *file; + const char *file; unsigned int line; int text; }; @@ -1334,8 +1334,8 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) #undef F #undef MAP - reloc = (arelent *) xmalloc (sizeof (arelent)); - reloc->sym_ptr_ptr = (asymbol **) 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; #ifndef OBJ_ELF @@ -2348,7 +2348,7 @@ m68k_ip (char *instring) const struct m68k_cpu *cpu; int any = 0; size_t space = 400; - char *buf = xmalloc (space + 1); + char *buf = XNEWVEC (char, space + 1); size_t len; int paren = 1; @@ -4599,10 +4599,7 @@ md_begin (void) /* First sort the opcode table into alphabetical order to seperate the order that the assembler wants to see the opcodes from the order that the disassembler wants to see them. */ - m68k_sorted_opcodes = xmalloc (m68k_numopcodes * sizeof (* m68k_sorted_opcodes)); - if (!m68k_sorted_opcodes) - as_fatal (_("Internal Error: Can't allocate m68k_sorted_opcodes of size %d"), - m68k_numopcodes * ((int) sizeof (* m68k_sorted_opcodes))); + m68k_sorted_opcodes = XNEWVEC (const struct m68k_opcode *, m68k_numopcodes); for (i = m68k_numopcodes; i--;) m68k_sorted_opcodes[i] = m68k_opcodes + i; @@ -4615,7 +4612,7 @@ md_begin (void) obstack_begin (&robyn, 4000); for (i = 0; i < m68k_numopcodes; i++) { - hack = slak = obstack_alloc (&robyn, sizeof (struct m68k_incant)); + hack = slak = XOBNEW (&robyn, struct m68k_incant); do { ins = m68k_sorted_opcodes[i]; @@ -4645,7 +4642,7 @@ md_begin (void) if (i + 1 != m68k_numopcodes && !strcmp (ins->name, m68k_sorted_opcodes[i + 1]->name)) { - slak->m_next = obstack_alloc (&robyn, sizeof (struct m68k_incant)); + slak->m_next = XOBNEW (&robyn, struct m68k_incant); i++; } else @@ -4762,7 +4759,7 @@ md_begin (void) while (mote_pseudo_table[n].poc_name) { - hack = obstack_alloc (&robyn, sizeof (struct m68k_incant)); + hack = XOBNEW (&robyn, struct m68k_incant); hash_insert (op_hash, mote_pseudo_table[n].poc_name, (char *) hack); hack->m_operands = 0; @@ -4789,10 +4786,10 @@ m68k_frob_label (symbolS *sym) { struct label_line *n; - n = (struct label_line *) xmalloc (sizeof *n); + n = XNEW (struct label_line); n->next = labels; n->label = sym; - as_where (&n->file, &n->line); + n->file = as_where (&n->line); n->text = 0; labels = n; current_label = n; @@ -4879,7 +4876,7 @@ m68k_mri_mode_change (int on) } } -char * +const char * md_atof (int type, char *litP, int *sizeP) { return ieee_md_atof (type, litP, sizeP, TRUE); @@ -5703,7 +5700,7 @@ mri_chip (void) int i; s = input_line_pointer; - /* We can't use get_symbol_end since the processor names are not proper + /* We can't use get_symbol_name since the processor names are not proper symbols. */ while (is_part_of_name (c = *input_line_pointer++)) ; @@ -5731,7 +5728,7 @@ mri_chip (void) { ++input_line_pointer; s = input_line_pointer; - /* We can't use get_symbol_end since the processor names are not + /* We can't use get_symbol_name since the processor names are not proper symbols. */ while (is_part_of_name (c = *input_line_pointer++)) ; @@ -5896,8 +5893,7 @@ s_opt (int ignore ATTRIBUTE_UNUSED) t = 0; } - s = input_line_pointer; - c = get_symbol_end (); + c = get_symbol_name (&s); for (i = 0, o = opt_table; i < OPTCOUNT; i++, o++) { @@ -5907,14 +5903,14 @@ s_opt (int ignore ATTRIBUTE_UNUSED) { /* Restore input_line_pointer now in case the option takes arguments. */ - *input_line_pointer = c; + (void) restore_line_pointer (c); (*o->pfn) (o->arg, t); } else if (o->pvar != NULL) { if (! t && o->arg == o->notarg) as_bad (_("option `%s' may not be negated"), s); - *input_line_pointer = c; + restore_line_pointer (c); *o->pvar = t ? o->arg : o->notarg; } else @@ -5925,7 +5921,7 @@ s_opt (int ignore ATTRIBUTE_UNUSED) if (i >= OPTCOUNT) { as_bad (_("option `%s' not recognized"), s); - *input_line_pointer = c; + restore_line_pointer (c); } } while (*input_line_pointer++ == ','); @@ -6106,7 +6102,7 @@ s_save (int ignore ATTRIBUTE_UNUSED) { struct save_opts *s; - s = (struct save_opts *) xmalloc (sizeof (struct save_opts)); + s = XNEW (struct save_opts); s->abspcadd = m68k_abspcadd; s->symbols_case_sensitive = symbols_case_sensitive; s->keep_locals = flag_keep_locals; @@ -6226,7 +6222,7 @@ mri_control_label (void) { char *n; - n = (char *) xmalloc (20); + n = XNEWVEC (char, 20); sprintf (n, "%smc%d", FAKE_LABEL_NAME, mri_control_index); ++mri_control_index; return n; @@ -6239,7 +6235,7 @@ push_mri_control (enum mri_control_type type) { struct mri_control_info *n; - n = (struct mri_control_info *) xmalloc (sizeof (struct mri_control_info)); + n = XNEW (struct mri_control_info); n->type = type; n->else_seen = 0; @@ -6518,9 +6514,9 @@ build_mri_control_operand (int qual, int cc, char *leftstart, char *leftstop, if (leftstart != NULL) { - buf = (char *) xmalloc (20 - + (leftstop - leftstart) - + (rightstop - rightstart)); + buf = XNEWVEC (char, (20 + + (leftstop - leftstart) + + (rightstop - rightstart))); s = buf; *s++ = 'c'; *s++ = 'm'; @@ -6538,7 +6534,7 @@ build_mri_control_operand (int qual, int cc, char *leftstart, char *leftstop, free (buf); } - buf = (char *) xmalloc (20 + strlen (truelab)); + buf = XNEWVEC (char, 20 + strlen (truelab)); s = buf; *s++ = 'b'; *s++ = cc >> 8; @@ -6787,7 +6783,7 @@ s_mri_else (int qual) mri_control_stack->else_seen = 1; - buf = (char *) xmalloc (20 + strlen (mri_control_stack->bottom)); + buf = XNEWVEC (char, 20 + strlen (mri_control_stack->bottom)); q[0] = TOLOWER (qual); q[1] = '\0'; sprintf (buf, "bra%s %s", q, mri_control_stack->bottom); @@ -6858,7 +6854,7 @@ s_mri_break (int extent) return; } - buf = (char *) xmalloc (20 + strlen (n->bottom)); + buf = XNEWVEC (char, 20 + strlen (n->bottom)); ex[0] = TOLOWER (extent); ex[1] = '\0'; sprintf (buf, "bra%s %s", ex, n->bottom); @@ -6896,7 +6892,7 @@ s_mri_next (int extent) return; } - buf = (char *) xmalloc (20 + strlen (n->next)); + buf = XNEWVEC (char, 20 + strlen (n->next)); ex[0] = TOLOWER (extent); ex[1] = '\0'; sprintf (buf, "bra%s %s", ex, n->next); @@ -7070,7 +7066,7 @@ s_mri_for (int qual) /* We have fully parsed the FOR operands. Now build the loop. */ n = push_mri_control (mri_for); - buf = (char *) xmalloc (50 + (input_line_pointer - varstart)); + buf = XNEWVEC (char, 50 + (input_line_pointer - varstart)); /* Move init,var. */ s = buf; @@ -7304,7 +7300,7 @@ s_mri_endw (int ignore ATTRIBUTE_UNUSED) return; } - buf = (char *) xmalloc (20 + strlen (mri_control_stack->next)); + buf = XNEWVEC (char, 20 + strlen (mri_control_stack->next)); sprintf (buf, "bra %s", mri_control_stack->next); mri_assemble (buf); free (buf); @@ -7541,7 +7537,7 @@ struct option md_longopts[] = { size_t md_longopts_size = sizeof (md_longopts); int -md_parse_option (int c, char *arg) +md_parse_option (int c, const char *arg) { switch (c) { @@ -7585,7 +7581,7 @@ md_parse_option (int c, char *arg) char *n, *t; const char *s; - n = (char *) xmalloc (strlen (m68k_comment_chars) + 1); + n = XNEWVEC (char, strlen (m68k_comment_chars) + 1); t = n; for (s = m68k_comment_chars; *s != '\0'; s++) if (*s != '|') @@ -7889,7 +7885,7 @@ md_section_align (segT segment ATTRIBUTE_UNUSED, valueT size) int align; align = bfd_get_section_alignment (stdoutput, segment); - size = ((size + (1 << align) - 1) & ((valueT) -1 << align)); + size = ((size + (1 << align) - 1) & (-((valueT) 1 << align))); #endif return size; @@ -8099,7 +8095,7 @@ m68k_elf_cons (int nbytes /* 4=.long */) #endif int -tc_m68k_regname_to_dw2regnum (char *regname) +tc_m68k_regname_to_dw2regnum (const char *regname) { unsigned int regnum; static const char *const regnames[] =