aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2011-04-01 08:19:13 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2011-04-01 08:19:13 +0000
commitf04713eea7336eac4f636b6b46e64ec72ab68290 (patch)
tree18171d82f2b441c17a136254dc520ee70b3b96ee /gcc/expr.c
parentb29387eec60251cbfed25475892d5645c9c59caf (diff)
downloadgcc-f04713eea7336eac4f636b6b46e64ec72ab68290.zip
gcc-f04713eea7336eac4f636b6b46e64ec72ab68290.tar.gz
gcc-f04713eea7336eac4f636b6b46e64ec72ab68290.tar.bz2
expr.c (emit_block_move_via_movmem): Use n_generator_args instead of n_operands.
gcc/ * expr.c (emit_block_move_via_movmem): Use n_generator_args instead of n_operands. (set_storage_via_setmem): Likewise. * optabs.c (maybe_gen_insn): Likewise. * config/arm/arm.c (arm_init_neon_builtins): Likewise. * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise. (mips_expand_builtin_direct): Likewise. * config/spu/spu.c (expand_builtin_args): Likewise. From-SVN: r171823
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index ca61804..4cbb09b 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -1293,11 +1293,8 @@ emit_block_move_via_movmem (rtx x, rtx y, rtx size, unsigned int align,
nice if there were some way to inform the backend, so
that it doesn't fail the expansion because it thinks
emitting the libcall would be more efficient. */
- nops = insn_data[(int) code].n_operands;
- /* ??? n_operands includes match_scratches; find some other
- way to select the 6 operand variant, or force all targets
- to have exactly 6 operands. */
- gcc_assert (nops >= 4 && nops <= 6);
+ nops = insn_data[(int) code].n_generator_args;
+ gcc_assert (nops == 4 || nops == 6);
create_fixed_operand (&ops[0], x);
create_fixed_operand (&ops[1], y);
@@ -2719,11 +2716,8 @@ set_storage_via_setmem (rtx object, rtx size, rtx val, unsigned int align,
struct expand_operand ops[6];
unsigned int nops;
- nops = insn_data[(int) code].n_operands;
- /* ??? n_operands includes match_scratches; find some other
- way to select the 6 operand variant, or force all targets
- to have exactly 6 operands. */
- gcc_assert (nops >= 4 && nops <= 6);
+ nops = insn_data[(int) code].n_generator_args;
+ gcc_assert (nops == 4 || nops == 6);
create_fixed_operand (&ops[0], object);
/* The check above guarantees that this size conversion is valid. */