]> oss.titaniummirror.com Git - msp430-binutils.git/blobdiff - gas/config/tc-tic4x.c
Imported binutils-2.20
[msp430-binutils.git] / gas / config / tc-tic4x.c
index 5898702f969caf126826742979784fa6c7d45d7d..3ff6cbc0457ea87e2f829e11895a9e517ab39b8e 100644 (file)
@@ -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;
     }