return const_vec;
/* Use the move expander with CONST_VECTOR. */
- target = targetm.gen_memset_scratch_rtx (mode);
+ target = gen_reg_rtx (mode);
emit_move_insn (target, const_vec);
return target;
}
the memset expander. */
insn_code icode = optab_handler (vec_duplicate_optab, mode);
- target = targetm.gen_memset_scratch_rtx (mode);
+ target = gen_reg_rtx (mode);
class expand_operand ops[2];
create_output_operand (&ops[0], target, mode);
create_input_operand (&ops[1], (rtx) data, QImode);
machine_mode vector_mode;
if (!mode_for_vector (broadcast_mode, nunits).exists (&vector_mode))
gcc_unreachable ();
- rtx target = ix86_gen_scratch_sse_rtx (vector_mode);
+ rtx target = gen_reg_rtx (vector_mode);
bool ok = ix86_expand_vector_init_duplicate (false, vector_mode,
target,
GEN_INT (val_broadcast));
if (!register_operand (op0, mode)
&& !register_operand (op1, mode))
{
- rtx scratch = ix86_gen_scratch_sse_rtx (mode);
+ rtx scratch = gen_reg_rtx (mode);
emit_move_insn (scratch, op1);
op1 = scratch;
}
&& !register_operand (op0, mode)
&& !register_operand (op1, mode))
{
- rtx tmp = ix86_gen_scratch_sse_rtx (GET_MODE (op0));
+ rtx tmp = gen_reg_rtx (GET_MODE (op0));
emit_move_insn (tmp, op1);
emit_move_insn (op0, tmp);
return;
extern bool ix86_using_red_zone (void);
-extern rtx ix86_gen_scratch_sse_rtx (machine_mode);
-
extern unsigned int ix86_regmode_natural_size (machine_mode);
extern bool ix86_check_builtin_isa_match (unsigned int fcode);
#ifdef RTX_CODE
}
}
-/* Implement the TARGET_GEN_MEMSET_SCRATCH_RTX hook. Return a scratch
- register in MODE for vector load and store. */
-
-rtx
-ix86_gen_scratch_sse_rtx (machine_mode mode)
-{
- return gen_reg_rtx (mode);
-}
-
/* Address space support.
This is not "far pointers" in the 16-bit sense, but an easy way
#undef TARGET_LIBC_HAS_FAST_FUNCTION
#define TARGET_LIBC_HAS_FAST_FUNCTION ix86_libc_has_fast_function
-#undef TARGET_GEN_MEMSET_SCRATCH_RTX
-#define TARGET_GEN_MEMSET_SCRATCH_RTX ix86_gen_scratch_sse_rtx
-
#if CHECKING_P
#undef TARGET_RUN_TARGET_SELFTESTS
#define TARGET_RUN_TARGET_SELFTESTS selftest::ix86_run_selftests
@var{bit_code} is @code{AND} or @code{IOR}, which is the op on the compares.
@end deftypefn
-@deftypefn {Target Hook} rtx TARGET_GEN_MEMSET_SCRATCH_RTX (machine_mode @var{mode})
-This hook should return an rtx for a scratch register in @var{mode} to
-be used when expanding memset calls. The backend can use a hard scratch
-register to avoid stack realignment when expanding memset. The default
-is @code{gen_reg_rtx}.
-@end deftypefn
-
@deftypefn {Target Hook} unsigned TARGET_LOOP_UNROLL_ADJUST (unsigned @var{nunroll}, class loop *@var{loop})
This target hook returns a new value for the number of times @var{loop}
should be unrolled. The parameter @var{nunroll} is the number of times
@hook TARGET_GEN_CCMP_NEXT
-@hook TARGET_GEN_MEMSET_SCRATCH_RTX
-
@hook TARGET_LOOP_UNROLL_ADJUST
@defmac POWI_MAX_MULTS
rtx, (rtx_insn **prep_seq, rtx_insn **gen_seq, rtx prev, int cmp_code, tree op0, tree op1, int bit_code),
NULL)
-DEFHOOK
-(gen_memset_scratch_rtx,
- "This hook should return an rtx for a scratch register in @var{mode} to\n\
-be used when expanding memset calls. The backend can use a hard scratch\n\
-register to avoid stack realignment when expanding memset. The default\n\
-is @code{gen_reg_rtx}.",
- rtx, (machine_mode mode),
- gen_reg_rtx)
-
/* Return a new value for loop unroll size. */
DEFHOOK
(loop_unroll_adjust,