From 03ea81db632f49ae89068671e0e394eea7fd8f0d Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Tue, 27 Jul 2010 21:04:59 +0000 Subject: [PATCH] * config/tc-mips.c (mips16_macro_build): Pass "args" by reference rather than value. (macro_build): Update accordingly. --- gas/ChangeLog | 8 +++++++- gas/config/tc-mips.c | 20 ++++++++++---------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index a47c8be93ac..eeb310fc655 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,4 +1,10 @@ -2010-07-26 Maciej W. Rozycki +2010-07-27 Maciej W. Rozycki + + * config/tc-mips.c (mips16_macro_build): Pass "args" by + reference rather than value. + (macro_build): Update accordingly. + +2010-07-27 Maciej W. Rozycki * 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 4c3beba0994..145f8b62ea4 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; } -- 2.30.2