* config/tc-mips.c (mips16_macro_build): Pass "args" by
authorMaciej W. Rozycki <macro@linux-mips.org>
Tue, 27 Jul 2010 21:04:59 +0000 (21:04 +0000)
committerMaciej W. Rozycki <macro@linux-mips.org>
Tue, 27 Jul 2010 21:04:59 +0000 (21:04 +0000)
reference rather than value.
(macro_build): Update accordingly.

gas/ChangeLog
gas/config/tc-mips.c

index a47c8be93ac707c101e19c615b05de8ff740337f..eeb310fc6558d9e359e6c06335ee8001c69e5f40 100644 (file)
@@ -1,4 +1,10 @@
-2010-07-26  Maciej W. Rozycki  <macro@codesourcery.com>
+2010-07-27  Maciej W. Rozycki  <macro@codesourcery.com>
+
+       * config/tc-mips.c (mips16_macro_build): Pass "args" by
+       reference rather than value.
+       (macro_build): Update accordingly.
+
+2010-07-27  Maciej W. Rozycki  <macro@codesourcery.com>
 
        * config/tc-mips.c (mips_ip): Use symbol_temp_new_now to create
        a fake label.
index 4c3beba09941099abbff0beaf4d34231648b59ed..145f8b62ea41a2bbd366c70dab3072b08af4634c 100644 (file)
@@ -1063,7 +1063,7 @@ static void append_insn
 static void mips_no_prev_insn (void);
 static void macro_build (expressionS *, const char *, const char *, ...);
 static void mips16_macro_build
-  (expressionS *, const char *, const char *, va_list);
+  (expressionS *, const char *, const char *, va_list *);
 static void load_register (int, expressionS *, int);
 static void macro_start (void);
 static void macro_end (void);
@@ -3616,7 +3616,7 @@ macro_build (expressionS *ep, const char *name, const char *fmt, ...)
 
   if (mips_opts.mips16)
     {
-      mips16_macro_build (ep, name, fmt, args);
+      mips16_macro_build (ep, name, fmt, &args);
       va_end (args);
       return;
     }
@@ -3842,7 +3842,7 @@ macro_build (expressionS *ep, const char *name, const char *fmt, ...)
 
 static void
 mips16_macro_build (expressionS *ep, const char *name, const char *fmt,
-                   va_list args)
+                   va_list *args)
 {
   struct mips_opcode *mo;
   struct mips_cl_insn insn;
@@ -3878,20 +3878,20 @@ mips16_macro_build (expressionS *ep, const char *name, const char *fmt,
 
        case 'y':
        case 'w':
-         MIPS16_INSERT_OPERAND (RY, insn, va_arg (args, int));
+         MIPS16_INSERT_OPERAND (RY, insn, va_arg (*args, int));
          continue;
 
        case 'x':
        case 'v':
-         MIPS16_INSERT_OPERAND (RX, insn, va_arg (args, int));
+         MIPS16_INSERT_OPERAND (RX, insn, va_arg (*args, int));
          continue;
 
        case 'z':
-         MIPS16_INSERT_OPERAND (RZ, insn, va_arg (args, int));
+         MIPS16_INSERT_OPERAND (RZ, insn, va_arg (*args, int));
          continue;
 
        case 'Z':
-         MIPS16_INSERT_OPERAND (MOVE32Z, insn, va_arg (args, int));
+         MIPS16_INSERT_OPERAND (MOVE32Z, insn, va_arg (*args, int));
          continue;
 
        case '0':
@@ -3901,14 +3901,14 @@ mips16_macro_build (expressionS *ep, const char *name, const char *fmt,
          continue;
 
        case 'X':
-         MIPS16_INSERT_OPERAND (REGR32, insn, va_arg (args, int));
+         MIPS16_INSERT_OPERAND (REGR32, insn, va_arg (*args, int));
          continue;
 
        case 'Y':
          {
            int regno;
 
-           regno = va_arg (args, int);
+           regno = va_arg (*args, int);
            regno = ((regno & 7) << 2) | ((regno & 0x18) >> 3);
            MIPS16_INSERT_OPERAND (REG32R, insn, regno);
          }
@@ -3947,7 +3947,7 @@ mips16_macro_build (expressionS *ep, const char *name, const char *fmt,
          continue;
 
        case '6':
-         MIPS16_INSERT_OPERAND (IMM6, insn, va_arg (args, int));
+         MIPS16_INSERT_OPERAND (IMM6, insn, va_arg (*args, int));
          continue;
        }