aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2010-07-27 21:04:59 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2010-07-27 21:04:59 +0000
commit03ea81db632f49ae89068671e0e394eea7fd8f0d (patch)
tree2781483682b817f688767a21c3e10244e63ec8aa
parent8680f6e1845c30a88057c582e47ac10e1bf38fdb (diff)
downloadfsf-binutils-gdb-03ea81db632f49ae89068671e0e394eea7fd8f0d.zip
fsf-binutils-gdb-03ea81db632f49ae89068671e0e394eea7fd8f0d.tar.gz
fsf-binutils-gdb-03ea81db632f49ae89068671e0e394eea7fd8f0d.tar.bz2
* config/tc-mips.c (mips16_macro_build): Pass "args" by
reference rather than value. (macro_build): Update accordingly.
-rw-r--r--gas/ChangeLog8
-rw-r--r--gas/config/tc-mips.c20
2 files changed, 17 insertions, 11 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index a47c8be..eeb310f 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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.
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 4c3beba..145f8b6 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -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;
}