* config/tc-mips.c (mips16_macro_build): Pass "args" by

reference rather than value.
	(macro_build): Update accordingly.
This commit is contained in:
Maciej W. Rozycki 2010-07-27 21:04:59 +00:00
parent 8680f6e184
commit 03ea81db63
2 changed files with 17 additions and 11 deletions

View 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.

View 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;
}