X-Git-Url: https://oss.titaniummirror.com/gitweb?p=msp430-binutils.git;a=blobdiff_plain;f=gas%2Fconfig%2Ftc-tic4x.c;fp=gas%2Fconfig%2Ftc-tic4x.c;h=3ff6cbc0457ea87e2f829e11895a9e517ab39b8e;hp=5898702f969caf126826742979784fa6c7d45d7d;hb=88750007d7869f178f0ba528f41efd3b74c424cf;hpb=6df9443a374e2b81278c61b8afc0a1eef7db280b diff --git a/gas/config/tc-tic4x.c b/gas/config/tc-tic4x.c index 5898702..3ff6cbc 100644 --- a/gas/config/tc-tic4x.c +++ b/gas/config/tc-tic4x.c @@ -1,5 +1,5 @@ /* tc-tic4x.c -- Assemble for the Texas Instruments TMS320C[34]x. - Copyright (C) 1997,1998, 2002, 2003, 2005, 2006, 2007 + Copyright (C) 1997,1998, 2002, 2003, 2005, 2006, 2007, 2008, 2009 Free Software Foundation. Inc. Contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz) @@ -144,80 +144,17 @@ tic4x_insn_t; static tic4x_insn_t the_insn; /* Info about our instruction. */ static tic4x_insn_t *insn = &the_insn; -static int tic4x_gen_to_words - PARAMS ((FLONUM_TYPE, LITTLENUM_TYPE *, int )); -static char *tic4x_atof - PARAMS ((char *, char, LITTLENUM_TYPE * )); -static void tic4x_insert_reg - PARAMS ((char *, int )); -static void tic4x_insert_sym - PARAMS ((char *, int )); -static char *tic4x_expression - PARAMS ((char *, expressionS *)); -static char *tic4x_expression_abs - PARAMS ((char *, offsetT *)); -static void tic4x_emit_char - PARAMS ((char, int)); -static void tic4x_seg_alloc - PARAMS ((char *, segT, int, symbolS *)); -static void tic4x_asg - PARAMS ((int)); -static void tic4x_bss - PARAMS ((int)); -static void tic4x_globl - PARAMS ((int)); -static void tic4x_cons - PARAMS ((int)); -static void tic4x_stringer - PARAMS ((int)); -static void tic4x_eval - PARAMS ((int)); -static void tic4x_newblock - PARAMS ((int)); -static void tic4x_sect - PARAMS ((int)); -static void tic4x_set - PARAMS ((int)); -static void tic4x_usect - PARAMS ((int)); -static void tic4x_version - PARAMS ((int)); -static void tic4x_init_regtable - PARAMS ((void)); -static void tic4x_init_symbols - PARAMS ((void)); -static int tic4x_inst_insert - PARAMS ((tic4x_inst_t *)); -static tic4x_inst_t *tic4x_inst_make - PARAMS ((char *, unsigned long, char *)); -static int tic4x_inst_add - PARAMS ((tic4x_inst_t *)); -void tic4x_end - PARAMS ((void)); -static int tic4x_indirect_parse - PARAMS ((tic4x_operand_t *, const tic4x_indirect_t *)); -static char *tic4x_operand_parse - PARAMS ((char *, tic4x_operand_t *)); -static int tic4x_operands_match - PARAMS ((tic4x_inst_t *, tic4x_insn_t *, int)); -static void tic4x_insn_check - PARAMS ((tic4x_insn_t *)); -static void tic4x_insn_output - PARAMS ((tic4x_insn_t *)); -static int tic4x_operands_parse - PARAMS ((char *, tic4x_operand_t *, int )); -void tic4x_cleanup - PARAMS ((void)); -int tic4x_unrecognized_line - PARAMS ((int)); -static int tic4x_pc_offset - PARAMS ((unsigned int)); -int tic4x_do_align - PARAMS ((int, const char *, int, int)); -void tic4x_start_line - PARAMS ((void)); -arelent *tc_gen_reloc - PARAMS ((asection *, fixS *)); +static void tic4x_asg (int); +static void tic4x_bss (int); +static void tic4x_globl (int); +static void tic4x_cons (int); +static void tic4x_stringer (int); +static void tic4x_eval (int); +static void tic4x_newblock (int); +static void tic4x_sect (int); +static void tic4x_set (int); +static void tic4x_usect (int); +static void tic4x_version (int); const pseudo_typeS @@ -302,10 +239,7 @@ extern FLONUM_TYPE generic_floating_point_number; /* Turn generic_floating_point_number into a real short/float/double. */ static int -tic4x_gen_to_words (flonum, words, precision) - FLONUM_TYPE flonum; - LITTLENUM_TYPE *words; - int precision; +tic4x_gen_to_words (FLONUM_TYPE flonum, LITTLENUM_TYPE *words, int precision) { int return_value = 0; LITTLENUM_TYPE *p; /* Littlenum pointer. */ @@ -462,7 +396,7 @@ tic4x_gen_to_words (flonum, words, precision) || flonum.sign == 0) /* = NaN */ { if(flonum.sign == 0) - as_bad ("Nan, using zero."); + as_bad (_("Nan, using zero.")); words[0] = 0x8000; return return_value; } @@ -584,7 +518,7 @@ tic4x_gen_to_words (flonum, words, precision) } if (abs (exponent) >= (1 << (exponent_bits - 1))) - as_bad ("Cannot represent exponent in %d bits", exponent_bits); + as_bad (_("Cannot represent exponent in %d bits"), exponent_bits); /* Force exponent to fit in desired field width. */ exponent &= (1 << (exponent_bits)) - 1; @@ -619,10 +553,7 @@ tic4x_gen_to_words (flonum, words, precision) /* Returns pointer past text consumed. */ static char * -tic4x_atof (str, what_kind, words) - char *str; - char what_kind; - LITTLENUM_TYPE *words; +tic4x_atof (char *str, char what_kind, LITTLENUM_TYPE *words) { /* Extra bits for zeroed low-order bits. The 1st MAX_PRECISION are zeroed, the last contain flonum bits. */ @@ -670,7 +601,7 @@ tic4x_atof (str, what_kind, words) break; default: - as_bad ("Invalid floating point number"); + as_bad (_("Invalid floating point number")); return (NULL); } @@ -680,7 +611,7 @@ tic4x_atof (str, what_kind, words) if (atof_generic (&return_value, ".", EXP_CHARS, &generic_floating_point_number)) { - as_bad ("Invalid floating point number"); + as_bad (_("Invalid floating point number")); return (NULL); } @@ -695,9 +626,7 @@ tic4x_atof (str, what_kind, words) } static void -tic4x_insert_reg (regname, regnum) - char *regname; - int regnum; +tic4x_insert_reg (char *regname, int regnum) { char buf[32]; int i; @@ -713,9 +642,7 @@ tic4x_insert_reg (regname, regnum) } static void -tic4x_insert_sym (symname, value) - char *symname; - int value; +tic4x_insert_sym (char *symname, int value) { symbolS *symbolP; @@ -726,9 +653,7 @@ tic4x_insert_sym (symname, value) } static char * -tic4x_expression (str, exp) - char *str; - expressionS *exp; +tic4x_expression (char *str, expressionS *exp) { char *s; char *t; @@ -742,9 +667,7 @@ tic4x_expression (str, exp) } static char * -tic4x_expression_abs (str, value) - char *str; - offsetT *value; +tic4x_expression_abs (char *str, offsetT *value) { char *s; char *t; @@ -758,9 +681,7 @@ tic4x_expression_abs (str, value) } static void -tic4x_emit_char (c,b) - char c; - int b; +tic4x_emit_char (char c, int b) { expressionS exp; @@ -770,11 +691,10 @@ tic4x_emit_char (c,b) } static void -tic4x_seg_alloc (name, seg, size, symbolP) - char *name ATTRIBUTE_UNUSED; - segT seg ATTRIBUTE_UNUSED; - int size; - symbolS *symbolP; +tic4x_seg_alloc (char *name ATTRIBUTE_UNUSED, + segT seg ATTRIBUTE_UNUSED, + int size, + symbolS *symbolP) { /* Note that the size is in words so we multiply it by 4 to get the number of bytes to allocate. */ @@ -796,8 +716,7 @@ tic4x_seg_alloc (name, seg, size, symbolP) /* .asg ["]character-string["], symbol */ static void -tic4x_asg (x) - int x ATTRIBUTE_UNUSED; +tic4x_asg (int x ATTRIBUTE_UNUSED) { char c; char *name; @@ -812,7 +731,7 @@ tic4x_asg (x) input_line_pointer++; if (*input_line_pointer != ',') { - as_bad ("Comma expected\n"); + as_bad (_("Comma expected\n")); return; } *input_line_pointer++ = '\0'; @@ -825,17 +744,16 @@ tic4x_asg (x) strcpy (tmp, name); name = tmp; if (hash_find (tic4x_asg_hash, name)) - hash_replace (tic4x_asg_hash, name, (PTR) str); + hash_replace (tic4x_asg_hash, name, (void *) str); else - hash_insert (tic4x_asg_hash, name, (PTR) str); + hash_insert (tic4x_asg_hash, name, (void *) str); *input_line_pointer = c; demand_empty_rest_of_line (); } /* .bss symbol, size */ static void -tic4x_bss (x) - int x ATTRIBUTE_UNUSED; +tic4x_bss (int x ATTRIBUTE_UNUSED) { char c; char *name; @@ -853,7 +771,7 @@ tic4x_bss (x) c = get_symbol_end (); /* Get terminator. */ if (c != ',') { - as_bad (".bss size argument missing\n"); + as_bad (_(".bss size argument missing\n")); return; } @@ -861,7 +779,7 @@ tic4x_bss (x) tic4x_expression_abs (++input_line_pointer, &size); if (size < 0) { - as_bad (".bss size %ld < 0!", (long) size); + as_bad (_(".bss size %ld < 0!"), (long) size); return; } subseg_set (bss_section, 0); @@ -889,8 +807,7 @@ tic4x_bss (x) } static void -tic4x_globl (ignore) - int ignore ATTRIBUTE_UNUSED; +tic4x_globl (int ignore ATTRIBUTE_UNUSED) { char *name; int c; @@ -904,6 +821,7 @@ tic4x_globl (ignore) *input_line_pointer = c; SKIP_WHITESPACE (); S_SET_STORAGE_CLASS (symbolP, C_EXT); + S_SET_EXTERNAL (symbolP); if (c == ',') { input_line_pointer++; @@ -919,8 +837,7 @@ tic4x_globl (ignore) /* Handle .byte, .word. .int, .long */ static void -tic4x_cons (bytes) - int bytes; +tic4x_cons (int bytes) { register unsigned int c; do @@ -963,8 +880,7 @@ tic4x_cons (bytes) /* Handle .ascii, .asciz, .string */ static void -tic4x_stringer (append_zero) - int append_zero; /*ex: bytes */ +tic4x_stringer (int append_zero) { int bytes; register unsigned int c; @@ -997,7 +913,7 @@ tic4x_stringer (append_zero) input_line_pointer = tic4x_expression (input_line_pointer, &exp); if (exp.X_op != O_constant) { - as_bad("Non-constant symbols not allowed\n"); + as_bad (_("Non-constant symbols not allowed\n")); return; } exp.X_add_number &= 255; /* Limit numeber to 8-bit */ @@ -1017,8 +933,7 @@ tic4x_stringer (append_zero) /* .eval expression, symbol */ static void -tic4x_eval (x) - int x ATTRIBUTE_UNUSED; +tic4x_eval (int x ATTRIBUTE_UNUSED) { char c; offsetT value; @@ -1029,7 +944,7 @@ tic4x_eval (x) tic4x_expression_abs (input_line_pointer, &value); if (*input_line_pointer++ != ',') { - as_bad ("Symbol missing\n"); + as_bad (_("Symbol missing\n")); return; } name = input_line_pointer; @@ -1040,8 +955,7 @@ tic4x_eval (x) /* Reset local labels. */ static void -tic4x_newblock (x) - int x ATTRIBUTE_UNUSED; +tic4x_newblock (int x ATTRIBUTE_UNUSED) { dollar_label_clear (); } @@ -1049,8 +963,7 @@ tic4x_newblock (x) /* .sect "section-name" [, value] */ /* .sect ["]section-name[:subsection-name]["] [, value] */ static void -tic4x_sect (x) - int x ATTRIBUTE_UNUSED; +tic4x_sect (int x ATTRIBUTE_UNUSED) { char c; char *section_name; @@ -1078,7 +991,7 @@ tic4x_sect (x) subsection_name = input_line_pointer; c = get_symbol_end (); /* Get terminator. */ input_line_pointer++; /* Skip null symbol terminator. */ - as_warn (".sect: subsection name ignored"); + as_warn (_(".sect: subsection name ignored")); } /* We might still have a '"' to discard, but the character after a @@ -1106,7 +1019,7 @@ tic4x_sect (x) if (bfd_get_section_flags (stdoutput, seg) == SEC_NO_FLAGS) { if (!bfd_set_section_flags (stdoutput, seg, SEC_DATA)) - as_warn ("Error setting flags for \"%s\": %s", name, + as_warn (_("Error setting flags for \"%s\": %s"), name, bfd_errmsg (bfd_get_error ())); } @@ -1123,8 +1036,7 @@ tic4x_sect (x) /* symbol[:] .set value or .set symbol, value */ static void -tic4x_set (x) - int x ATTRIBUTE_UNUSED; +tic4x_set (int x ATTRIBUTE_UNUSED) { symbolS *symbolP; @@ -1138,7 +1050,7 @@ tic4x_set (x) c = get_symbol_end (); /* Get terminator. */ if (c != ',') { - as_bad (".set syntax invalid\n"); + as_bad (_(".set syntax invalid\n")); ignore_rest_of_line (); return; } @@ -1154,8 +1066,7 @@ tic4x_set (x) /* [symbol] .usect ["]section-name["], size-in-words [, alignment-flag] */ static void -tic4x_usect (x) - int x ATTRIBUTE_UNUSED; +tic4x_usect (int x ATTRIBUTE_UNUSED) { char c; char *name; @@ -1197,7 +1108,7 @@ tic4x_usect (x) else alignment_flag = 0; if (alignment_flag) - as_warn (".usect: non-zero alignment flag ignored"); + as_warn (_(".usect: non-zero alignment flag ignored")); seg = subseg_new (name, 0); if (line_label != NULL) @@ -1208,7 +1119,7 @@ tic4x_usect (x) } seg_info (seg)->bss = 1; /* Uninitialised data. */ if (!bfd_set_section_flags (stdoutput, seg, SEC_ALLOC)) - as_warn ("Error setting flags for \"%s\": %s", name, + as_warn (_("Error setting flags for \"%s\": %s"), name, bfd_errmsg (bfd_get_error ())); tic4x_seg_alloc (name, seg, size, line_label); @@ -1221,25 +1132,24 @@ tic4x_usect (x) /* .version cpu-version. */ static void -tic4x_version (x) - int x ATTRIBUTE_UNUSED; +tic4x_version (int x ATTRIBUTE_UNUSED) { offsetT temp; input_line_pointer = tic4x_expression_abs (input_line_pointer, &temp); if (!IS_CPU_TIC3X (temp) && !IS_CPU_TIC4X (temp)) - as_bad ("This assembler does not support processor generation %ld", + as_bad (_("This assembler does not support processor generation %ld"), (long) temp); if (tic4x_cpu && temp != (offsetT) tic4x_cpu) - as_warn ("Changing processor generation on fly not supported..."); + as_warn (_("Changing processor generation on fly not supported...")); tic4x_cpu = temp; demand_empty_rest_of_line (); } static void -tic4x_init_regtable () +tic4x_init_regtable (void) { unsigned int i; @@ -1257,7 +1167,7 @@ tic4x_init_regtable () } static void -tic4x_init_symbols () +tic4x_init_symbols (void) { /* The TI tools accept case insensitive versions of these symbols, we don't ! @@ -1314,8 +1224,7 @@ tic4x_init_symbols () /* Insert a new instruction template into hash table. */ static int -tic4x_inst_insert (inst) - tic4x_inst_t *inst; +tic4x_inst_insert (const tic4x_inst_t *inst) { static char prev_name[16]; const char *retval = NULL; @@ -1324,7 +1233,7 @@ tic4x_inst_insert (inst) if (!strcmp (inst->name, prev_name) || inst->name[0] == '\0') return 1; - retval = hash_insert (tic4x_op_hash, inst->name, (PTR) inst); + retval = hash_insert (tic4x_op_hash, inst->name, (void *) inst); if (retval != NULL) fprintf (stderr, "internal error: can't hash `%s': %s\n", inst->name, retval); @@ -1335,10 +1244,7 @@ tic4x_inst_insert (inst) /* Make a new instruction template. */ static tic4x_inst_t * -tic4x_inst_make (name, opcode, args) - char *name; - unsigned long opcode; - char *args; +tic4x_inst_make (char *name, unsigned long opcode, char *args) { static tic4x_inst_t *insts = NULL; static char *names = NULL; @@ -1368,8 +1274,7 @@ tic4x_inst_make (name, opcode, args) /* Add instruction template, creating dynamic templates as required. */ static int -tic4x_inst_add (insts) - tic4x_inst_t *insts; +tic4x_inst_add (const tic4x_inst_t *insts) { char *s = insts->name; char *d; @@ -1380,8 +1285,8 @@ tic4x_inst_add (insts) d = name; /* We do not care about INSNs that is not a part of our - oplevel setting */ - if (!insts->oplevel & tic4x_oplevel) + oplevel setting. */ + if ((insts->oplevel & tic4x_oplevel) == 0) return ok; while (1) @@ -1440,7 +1345,7 @@ tic4x_inst_add (insts) set up all the tables, etc., that the MD part of the assembler will need. */ void -md_begin () +md_begin (void) { int ok = 1; unsigned int i; @@ -1481,7 +1386,7 @@ md_begin () /* Add mnemonics to hash table, expanding conditional mnemonics on fly. */ for (i = 0; i < tic4x_num_insts; i++) - ok &= tic4x_inst_add ((void *) &tic4x_insts[i]); + ok &= tic4x_inst_add (tic4x_insts + i); /* Create dummy inst to avoid errors accessing end of table. */ tic4x_inst_make ("", 0, ""); @@ -1497,16 +1402,15 @@ md_begin () } void -tic4x_end () +tic4x_end (void) { bfd_set_arch_mach (stdoutput, bfd_arch_tic4x, IS_CPU_TIC4X (tic4x_cpu) ? bfd_mach_tic4x : bfd_mach_tic3x); } static int -tic4x_indirect_parse (operand, indirect) - tic4x_operand_t *operand; - const tic4x_indirect_t *indirect; +tic4x_indirect_parse (tic4x_operand_t *operand, + const tic4x_indirect_t *indirect) { char *n = indirect->name; char *s = input_line_pointer; @@ -1538,7 +1442,7 @@ tic4x_indirect_parse (operand, indirect) if (operand->aregno >= REG_AR0 && operand->aregno <= REG_AR7) break; - as_bad ("Auxiliary register AR0--AR7 required for indirect"); + as_bad (_("Auxiliary register AR0--AR7 required for indirect")); return -1; case 'd': /* Need to match constant for disp. */ @@ -1552,7 +1456,7 @@ tic4x_indirect_parse (operand, indirect) operand->disp = operand->expr.X_add_number; if (operand->disp < 0 || operand->disp > 255) { - as_bad ("Bad displacement %d (require 0--255)\n", + as_bad (_("Bad displacement %d (require 0--255)\n"), operand->disp); return -1; } @@ -1570,7 +1474,7 @@ tic4x_indirect_parse (operand, indirect) if (operand->expr.X_add_number != REG_IR0 && operand->expr.X_add_number != REG_IR1) { - as_bad ("Index register IR0,IR1 required for displacement"); + as_bad (_("Index register IR0,IR1 required for displacement")); return -1; } @@ -1604,9 +1508,7 @@ tic4x_indirect_parse (operand, indirect) } static char * -tic4x_operand_parse (s, operand) - char *s; - tic4x_operand_t *operand; +tic4x_operand_parse (char *s, tic4x_operand_t *operand) { unsigned int i; char c; @@ -1614,7 +1516,7 @@ tic4x_operand_parse (s, operand) expressionS *exp = &operand->expr; char *save = input_line_pointer; char *str; - char *new; + char *new_pointer; struct hash_entry *entry = NULL; input_line_pointer = s; @@ -1622,7 +1524,7 @@ tic4x_operand_parse (s, operand) str = input_line_pointer; c = get_symbol_end (); /* Get terminator. */ - new = input_line_pointer; + new_pointer = input_line_pointer; if (strlen (str) && (entry = hash_find (tic4x_asg_hash, str)) != NULL) { *input_line_pointer = c; @@ -1641,7 +1543,7 @@ tic4x_operand_parse (s, operand) case '%': input_line_pointer = tic4x_expression (++input_line_pointer, exp); if (exp->X_op != O_register) - as_bad ("Expecting a register name"); + as_bad (_("Expecting a register name")); operand->mode = M_REGISTER; break; @@ -1653,7 +1555,7 @@ tic4x_operand_parse (s, operand) else if (exp->X_op == O_big) { if (exp->X_add_number) - as_bad ("Number too large"); /* bignum required */ + as_bad (_("Number too large")); /* bignum required */ else { tic4x_gen_to_words (generic_floating_point_number, @@ -1676,7 +1578,7 @@ tic4x_operand_parse (s, operand) else if (exp->X_op == O_big) { if (exp->X_add_number > 0) - as_bad ("Number too large"); /* bignum required. */ + as_bad (_("Number too large")); /* bignum required. */ else { tic4x_gen_to_words (generic_floating_point_number, @@ -1693,18 +1595,18 @@ tic4x_operand_parse (s, operand) } else - as_bad ("Expecting a constant value"); + as_bad (_("Expecting a constant value")); break; case '\\': #endif case '@': input_line_pointer = tic4x_expression (++input_line_pointer, exp); if (exp->X_op != O_constant && exp->X_op != O_symbol) - as_bad ("Bad direct addressing construct %s", s); + as_bad (_("Bad direct addressing construct %s"), s); if (exp->X_op == O_constant) { if (exp->X_add_number < 0) - as_bad ("Direct value of %ld is not suitable", + as_bad (_("Direct value of %ld is not suitable"), (long) exp->X_add_number); } operand->mode = M_DIRECT; @@ -1728,7 +1630,7 @@ tic4x_operand_parse (s, operand) operand->expr.X_add_number = 0x18; } else - as_bad ("Unknown indirect addressing mode"); + as_bad (_("Unknown indirect addressing mode")); break; default: @@ -1745,7 +1647,7 @@ tic4x_operand_parse (s, operand) else if (exp->X_op == O_big) { if (exp->X_add_number > 0) - as_bad ("Number too large"); /* bignum required. */ + as_bad (_("Number too large")); /* bignum required. */ else { tic4x_gen_to_words (generic_floating_point_number, @@ -1764,16 +1666,13 @@ tic4x_operand_parse (s, operand) #endif } if (entry == NULL) - new = input_line_pointer; + new_pointer = input_line_pointer; input_line_pointer = save; - return new; + return new_pointer; } static int -tic4x_operands_match (inst, insn, check) - tic4x_inst_t *inst; - tic4x_insn_t *insn; - int check; +tic4x_operands_match (tic4x_inst_t *inst, tic4x_insn_t *insn, int check) { const char *args = inst->args; unsigned long opcode = inst->opcode; @@ -1828,7 +1727,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Immediate value of %ld is too large for ldf", + as_bad (_("Immediate value of %ld is too large for ldf"), (long) exp->X_add_number); ret = -1; continue; @@ -1868,7 +1767,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Destination register must be ARn"); + as_bad (_("Destination register must be ARn")); ret = -1; } continue; @@ -1887,7 +1786,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Immediate value of %ld is too large", + as_bad (_("Immediate value of %ld is too large"), (long) exp->X_add_number); ret = -1; continue; @@ -1916,7 +1815,7 @@ tic4x_operands_match (inst, insn, check) && operand->expr.X_add_number != 0x18) { if (!check) - as_bad ("Invalid indirect addressing mode"); + as_bad (_("Invalid indirect addressing mode")); ret = -1; continue; } @@ -1940,7 +1839,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Register must be Rn"); + as_bad (_("Register must be Rn")); ret = -1; } continue; @@ -1980,7 +1879,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Register must be Rn"); + as_bad (_("Register must be Rn")); ret = -1; } continue; @@ -1994,7 +1893,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Register must be R0--R7"); + as_bad (_("Register must be R0--R7")); ret = -1; } continue; @@ -2018,7 +1917,7 @@ tic4x_operands_match (inst, insn, check) if (IS_CPU_TIC4X (tic4x_cpu)) break; if (!check) - as_bad ("Invalid indirect addressing mode displacement %d", + as_bad (_("Invalid indirect addressing mode displacement %d"), operand->disp); ret = -1; continue; @@ -2046,7 +1945,7 @@ tic4x_operands_match (inst, insn, check) if (IS_CPU_TIC4X (tic4x_cpu)) break; if (!check) - as_bad ("Invalid indirect addressing mode displacement %d", + as_bad (_("Invalid indirect addressing mode displacement %d"), operand->disp); ret = -1; continue; @@ -2064,7 +1963,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Register must be R0--R7"); + as_bad (_("Register must be R0--R7")); ret = -1; } continue; @@ -2078,7 +1977,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Register must be R0--R7"); + as_bad (_("Register must be R0--R7")); ret = -1; } continue; @@ -2092,7 +1991,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Destination register must be R2 or R3"); + as_bad (_("Destination register must be R2 or R3")); ret = -1; } continue; @@ -2106,7 +2005,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Destination register must be R0 or R1"); + as_bad (_("Destination register must be R0 or R1")); ret = -1; } continue; @@ -2121,7 +2020,7 @@ tic4x_operands_match (inst, insn, check) && operand->expr.X_add_number != 0x18) { if (!check) - as_bad ("Invalid indirect addressing mode"); + as_bad (_("Invalid indirect addressing mode")); ret = -1; continue; } @@ -2143,7 +2042,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Displacement value of %ld is too large", + as_bad (_("Displacement value of %ld is too large"), (long) exp->X_add_number); ret = -1; continue; @@ -2171,7 +2070,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Register must be Rn"); + as_bad (_("Register must be Rn")); ret = -1; } continue; @@ -2193,7 +2092,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Register must be Rn"); + as_bad (_("Register must be Rn")); ret = -1; } continue; @@ -2204,7 +2103,7 @@ tic4x_operands_match (inst, insn, check) if (exp->X_op == O_big) { if (!check) - as_bad ("Floating point number not valid in expression"); + as_bad (_("Floating point number not valid in expression")); ret = -1; continue; } @@ -2218,7 +2117,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Signed immediate value %ld too large", + as_bad (_("Signed immediate value %ld too large"), (long) exp->X_add_number); ret = -1; continue; @@ -2260,7 +2159,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Immediate value of %ld is too large", + as_bad (_("Immediate value of %ld is too large"), (long) exp->X_add_number); ret = -1; continue; @@ -2281,7 +2180,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Unsigned immediate value %ld too large", + as_bad (_("Unsigned immediate value %ld too large"), (long) exp->X_add_number); ret = -1; continue; @@ -2319,7 +2218,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Immediate value of %ld is too large", + as_bad (_("Immediate value of %ld is too large"), (long) exp->X_add_number); ret = -1; continue; @@ -2335,7 +2234,7 @@ tic4x_operands_match (inst, insn, check) if (exp->X_op == O_big) { if (!check) - as_bad ("Floating point number not valid in expression"); + as_bad (_("Floating point number not valid in expression")); ret = -1; continue; } @@ -2349,7 +2248,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Immediate value %ld too large", + as_bad (_("Immediate value %ld too large"), (long) exp->X_add_number); ret = -1; continue; @@ -2368,7 +2267,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Register must be ivtp or tvtp"); + as_bad (_("Register must be ivtp or tvtp")); ret = -1; } continue; @@ -2382,7 +2281,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Register must be address register"); + as_bad (_("Register must be address register")); ret = -1; } continue; @@ -2396,7 +2295,7 @@ tic4x_operands_match (inst, insn, check) else { if (!check) - as_bad ("Register must be ivtp or tvtp"); + as_bad (_("Register must be ivtp or tvtp")); ret = -1; } continue; @@ -2444,8 +2343,7 @@ tic4x_operands_match (inst, insn, check) } static void -tic4x_insn_check (insn) - tic4x_insn_t *insn; +tic4x_insn_check (tic4x_insn_t *insn) { if (!strcmp(insn->name, "lda")) @@ -2456,7 +2354,7 @@ tic4x_insn_check (insn) if ( insn->operands[0].mode == M_REGISTER && insn->operands[1].mode == M_REGISTER && insn->operands[0].expr.X_add_number == insn->operands[1].expr.X_add_number ) - as_bad ("Source and destination register should not be equal"); + as_bad (_("Source and destination register should not be equal")); } else if( !strcmp(insn->name, "ldi_ldi") || !strcmp(insn->name, "ldi1_ldi2") @@ -2471,13 +2369,12 @@ tic4x_insn_check (insn) if ( insn->operands[1].mode == M_REGISTER && insn->operands[insn->num_operands-1].mode == M_REGISTER && insn->operands[1].expr.X_add_number == insn->operands[insn->num_operands-1].expr.X_add_number ) - as_warn ("Equal parallell destination registers, one result will be discarded"); + as_warn (_("Equal parallell destination registers, one result will be discarded")); } } static void -tic4x_insn_output (insn) - tic4x_insn_t *insn; +tic4x_insn_output (tic4x_insn_t *insn) { char *dst; @@ -2501,11 +2398,8 @@ tic4x_insn_output (insn) } /* Parse the operands. */ -int -tic4x_operands_parse (s, operands, num_operands) - char *s; - tic4x_operand_t *operands; - int num_operands; +static int +tic4x_operands_parse (char *s, tic4x_operand_t *operands, int num_operands) { if (!*s) return num_operands; @@ -2516,7 +2410,7 @@ tic4x_operands_parse (s, operands, num_operands) if (num_operands > TIC4X_OPERANDS_MAX) { - as_bad ("Too many operands scanned"); + as_bad (_("Too many operands scanned")); return -1; } return num_operands; @@ -2526,8 +2420,7 @@ tic4x_operands_parse (s, operands, num_operands) by the generic front end. We just parse mnemonic and operands, and produce the bytes of data and relocation. */ void -md_assemble (str) - char *str; +md_assemble (char *str) { int ok = 0; char *s; @@ -2547,7 +2440,7 @@ md_assemble (str) { if(insn->parallel) { - as_bad ("Parallel opcode cannot contain more than two instructions"); + as_bad (_("Parallel opcode cannot contain more than two instructions")); insn->parallel = 0; insn->in_use = 0; return; @@ -2592,7 +2485,7 @@ md_assemble (str) if ((insn->inst = (struct tic4x_inst *) hash_find (tic4x_op_hash, insn->name)) == NULL) { - as_bad ("Unknown opcode `%s'.", insn->name); + as_bad (_("Unknown opcode `%s'."), insn->name); insn->parallel = 0; insn->in_use = 0; return; @@ -2620,10 +2513,10 @@ md_assemble (str) { if (first_inst) tic4x_operands_match (first_inst, insn, 0); - as_bad ("Invalid operands for %s", insn->name); + as_bad (_("Invalid operands for %s"), insn->name); } else - as_bad ("Invalid instruction %s", insn->name); + as_bad (_("Invalid instruction %s"), insn->name); } if (str && !parsed) @@ -2652,7 +2545,7 @@ md_assemble (str) } void -tic4x_cleanup () +tic4x_cleanup (void) { if (insn->in_use) md_assemble (NULL); @@ -2660,14 +2553,11 @@ tic4x_cleanup () /* Turn a string in input_line_pointer into a floating point constant of type type, and store the appropriate bytes in *litP. The number - of LITTLENUMS emitted is stored in *sizeP. An error message is + of chars emitted is stored in *sizeP. An error message is returned, or NULL on OK. */ char * -md_atof (type, litP, sizeP) - int type; - char *litP; - int *sizeP; +md_atof (int type, char *litP, int *sizeP) { int prec; int ieee; @@ -2677,36 +2567,36 @@ md_atof (type, litP, sizeP) switch (type) { - case 's': /* .single */ + case 's': /* .single */ case 'S': ieee = 0; prec = 1; break; - case 'd': /* .double */ + case 'd': /* .double */ case 'D': - case 'f': /* .float or .single */ + case 'f': /* .float */ case 'F': ieee = 0; - prec = 2; /* 1 32-bit word */ + prec = 2; /* 1 32-bit word */ break; - case 'i': /* .ieee */ + case 'i': /* .ieee */ case 'I': prec = 2; ieee = 1; - type = 'f'; /* Rewrite type to be usable by atof_ieee() */ + type = 'f'; /* Rewrite type to be usable by atof_ieee(). */ break; - case 'e': /* .ldouble */ + case 'e': /* .ldouble */ case 'E': - prec = 4; /* 2 32-bit words */ + prec = 4; /* 2 32-bit words */ ieee = 0; break; default: *sizeP = 0; - return "Bad call to md_atof()"; + return _("Unrecognized or unsupported floating point constant"); } if (ieee) @@ -2721,10 +2611,10 @@ md_atof (type, litP, sizeP) little endian byte order. */ /* SES: However it is required to put the words (32-bits) out in the correct order, hence we write 2 and 2 littlenums in little endian - order, while we keep the original order on successive words. */ - for(wordP = words; wordP<(words+prec) ; wordP+=2) + order, while we keep the original order on successive words. */ + for (wordP = words; wordP<(words+prec) ; wordP+=2) { - if (wordP<(words+prec-1)) /* Dump wordP[1] (if we have one) */ + if (wordP < (words + prec - 1)) /* Dump wordP[1] (if we have one). */ { md_number_to_chars (litP, (valueT) (wordP[1]), sizeof (LITTLENUM_TYPE)); @@ -2736,14 +2626,11 @@ md_atof (type, litP, sizeP) sizeof (LITTLENUM_TYPE)); litP += sizeof (LITTLENUM_TYPE); } - return 0; + return NULL; } void -md_apply_fix (fixP, value, seg) - fixS *fixP; - valueT *value; - segT seg ATTRIBUTE_UNUSED; +md_apply_fix (fixS *fixP, valueT *value, segT seg ATTRIBUTE_UNUSED) { char *buf = fixP->fx_where + fixP->fx_frag->fr_literal; valueT val = *value; @@ -2778,7 +2665,7 @@ md_apply_fix (fixP, value, seg) case NO_RELOC: default: - as_bad ("Bad relocation type: 0x%02x", fixP->fx_r_type); + as_bad (_("Bad relocation type: 0x%02x"), fixP->fx_r_type); break; } @@ -2787,43 +2674,39 @@ md_apply_fix (fixP, value, seg) /* Should never be called for tic4x. */ void -md_convert_frag (headers, sec, fragP) - bfd *headers ATTRIBUTE_UNUSED; - segT sec ATTRIBUTE_UNUSED; - fragS *fragP ATTRIBUTE_UNUSED; +md_convert_frag (bfd *headers ATTRIBUTE_UNUSED, + segT sec ATTRIBUTE_UNUSED, + fragS *fragP ATTRIBUTE_UNUSED) { as_fatal ("md_convert_frag"); } /* Should never be called for tic4x. */ void -md_create_short_jump (ptr, from_addr, to_addr, frag, to_symbol) - char *ptr ATTRIBUTE_UNUSED; - addressT from_addr ATTRIBUTE_UNUSED; - addressT to_addr ATTRIBUTE_UNUSED; - fragS *frag ATTRIBUTE_UNUSED; - symbolS *to_symbol ATTRIBUTE_UNUSED; +md_create_short_jump (char *ptr ATTRIBUTE_UNUSED, + addressT from_addr ATTRIBUTE_UNUSED, + addressT to_addr ATTRIBUTE_UNUSED, + fragS *frag ATTRIBUTE_UNUSED, + symbolS *to_symbol ATTRIBUTE_UNUSED) { as_fatal ("md_create_short_jmp\n"); } /* Should never be called for tic4x. */ void -md_create_long_jump (ptr, from_addr, to_addr, frag, to_symbol) - char *ptr ATTRIBUTE_UNUSED; - addressT from_addr ATTRIBUTE_UNUSED; - addressT to_addr ATTRIBUTE_UNUSED; - fragS *frag ATTRIBUTE_UNUSED; - symbolS *to_symbol ATTRIBUTE_UNUSED; +md_create_long_jump (char *ptr ATTRIBUTE_UNUSED, + addressT from_addr ATTRIBUTE_UNUSED, + addressT to_addr ATTRIBUTE_UNUSED, + fragS *frag ATTRIBUTE_UNUSED, + symbolS *to_symbol ATTRIBUTE_UNUSED) { as_fatal ("md_create_long_jump\n"); } /* Should never be called for tic4x. */ int -md_estimate_size_before_relax (fragP, segtype) - register fragS *fragP ATTRIBUTE_UNUSED; - segT segtype ATTRIBUTE_UNUSED; +md_estimate_size_before_relax (fragS *fragP ATTRIBUTE_UNUSED, + segT segtype ATTRIBUTE_UNUSED) { as_fatal ("md_estimate_size_before_relax\n"); return 0; @@ -2831,9 +2714,7 @@ md_estimate_size_before_relax (fragP, segtype) int -md_parse_option (c, arg) - int c; - char *arg; +md_parse_option (int c, char *arg) { switch (c) { @@ -2842,7 +2723,7 @@ md_parse_option (c, arg) arg++; tic4x_cpu = atoi (arg); if (!IS_CPU_TIC3X (tic4x_cpu) && !IS_CPU_TIC4X (tic4x_cpu)) - as_warn ("Unsupported processor generation %d", tic4x_cpu); + as_warn (_("Unsupported processor generation %d"), tic4x_cpu); break; case OPTION_REV: /* cpu revision */ @@ -2850,25 +2731,25 @@ md_parse_option (c, arg) break; case 'b': - as_warn ("Option -b is depreciated, please use -mbig"); + as_warn (_("Option -b is depreciated, please use -mbig")); case OPTION_BIG: /* big model */ tic4x_big_model = 1; break; case 'p': - as_warn ("Option -p is depreciated, please use -mmemparm"); + as_warn (_("Option -p is depreciated, please use -mmemparm")); case OPTION_MEMPARM: /* push args */ tic4x_reg_args = 0; break; case 'r': - as_warn ("Option -r is depreciated, please use -mregparm"); + as_warn (_("Option -r is depreciated, please use -mregparm")); case OPTION_REGPARM: /* register args */ tic4x_reg_args = 1; break; case 's': - as_warn ("Option -s is depreciated, please use -msmall"); + as_warn (_("Option -s is depreciated, please use -msmall")); case OPTION_SMALL: /* small model */ tic4x_big_model = 0; break; @@ -2893,8 +2774,7 @@ md_parse_option (c, arg) } void -md_show_usage (stream) - FILE *stream; +md_show_usage (FILE *stream) { fprintf (stream, _("\nTIC4X options:\n" @@ -2922,8 +2802,7 @@ md_show_usage (stream) definitions of TI C3x tools style local labels $n where n is a single decimal digit. */ int -tic4x_unrecognized_line (c) - int c; +tic4x_unrecognized_line (int c) { int lab; char *s; @@ -2943,7 +2822,7 @@ tic4x_unrecognized_line (c) if (dollar_label_defined (lab)) { - as_bad ("Label \"$%d\" redefined", lab); + as_bad (_("Label \"$%d\" redefined"), lab); return 0; } @@ -2956,8 +2835,7 @@ tic4x_unrecognized_line (c) /* Handle local labels peculiar to us referred to in an expression. */ symbolS * -md_undefined_symbol (name) - char *name; +md_undefined_symbol (char *name) { /* Look for local labels of the form $n. */ if (name[0] == '$' && ISDIGIT (name[1])) @@ -2989,23 +2867,19 @@ md_undefined_symbol (name) /* Parse an operand that is machine-specific. */ void -md_operand (expressionP) - expressionS *expressionP ATTRIBUTE_UNUSED; +md_operand (expressionS *expressionP ATTRIBUTE_UNUSED) { } /* Round up a section size to the appropriate boundary---do we need this? */ valueT -md_section_align (segment, size) - segT segment ATTRIBUTE_UNUSED; - valueT size; +md_section_align (segT segment ATTRIBUTE_UNUSED, valueT size) { return size; /* Byte (i.e., 32-bit) alignment is fine? */ } static int -tic4x_pc_offset (op) - unsigned int op; +tic4x_pc_offset (unsigned int op) { /* Determine the PC offset for a C[34]x instruction. This could be simplified using some boolean algebra @@ -3067,8 +2941,7 @@ tic4x_pc_offset (op) DBcondD, BcondD disp + PC + 3 => PC */ long -md_pcrel_from (fixP) - fixS *fixP; +md_pcrel_from (fixS *fixP) { unsigned char *buf; unsigned int op; @@ -3083,11 +2956,10 @@ md_pcrel_from (fixP) /* Fill the alignment area with NOP's on .text, unless fill-data was specified. */ int -tic4x_do_align (alignment, fill, len, max) - int alignment ATTRIBUTE_UNUSED; - const char *fill ATTRIBUTE_UNUSED; - int len ATTRIBUTE_UNUSED; - int max ATTRIBUTE_UNUSED; +tic4x_do_align (int alignment ATTRIBUTE_UNUSED, + const char *fill ATTRIBUTE_UNUSED, + int len ATTRIBUTE_UNUSED, + int max ATTRIBUTE_UNUSED) { unsigned long nop = TIC_NOP_OPCODE; @@ -3116,7 +2988,7 @@ tic4x_do_align (alignment, fill, len, max) /* Look for and remove parallel instruction operator ||. */ void -tic4x_start_line () +tic4x_start_line (void) { char *s = input_line_pointer; @@ -3144,9 +3016,7 @@ tic4x_start_line () } arelent * -tc_gen_reloc (seg, fixP) - asection *seg ATTRIBUTE_UNUSED; - fixS *fixP; +tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixP) { arelent *reloc; @@ -3160,7 +3030,7 @@ tc_gen_reloc (seg, fixP) if (reloc->howto == (reloc_howto_type *) NULL) { as_bad_where (fixP->fx_file, fixP->fx_line, - "Reloc %d not supported by object file format", + _("Reloc %d not supported by object file format"), (int) fixP->fx_r_type); return NULL; }