+2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
+
+ * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
+ varargs with pointer parameter.
+ (aarch64_simd_expand_builtin): pass pointer into previous.
+
2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
static rtx
aarch64_simd_expand_args (rtx target, int icode, int have_retval,
- tree exp, ...)
+ tree exp, builtin_simd_arg *args)
{
- va_list ap;
rtx pat;
tree arg[SIMD_MAX_BUILTIN_ARGS];
rtx op[SIMD_MAX_BUILTIN_ARGS];
|| !(*insn_data[icode].operand[0].predicate) (target, tmode)))
target = gen_reg_rtx (tmode);
- va_start (ap, exp);
-
for (;;)
{
- builtin_simd_arg thisarg = (builtin_simd_arg) va_arg (ap, int);
+ builtin_simd_arg thisarg = args[argc];
if (thisarg == SIMD_ARG_STOP)
break;
}
}
- va_end (ap);
-
if (have_retval)
switch (argc)
{
/* The interface to aarch64_simd_expand_args expects a 0 if
the function is void, and a 1 if it is not. */
return aarch64_simd_expand_args
- (target, icode, !is_void, exp,
- args[1],
- args[2],
- args[3],
- args[4],
- SIMD_ARG_STOP);
+ (target, icode, !is_void, exp, &args[1]);
}
rtx