i386: Use code_for_ instead of gen_ for parameterized names more.
Some builtins are better expanded to patterns with parametrized names via code_for_ than gen_ helpers. No functional changes. 2020-08-19 Uroš Bizjak <ubizjak@gmail.com> gcc/ChangeLog: * config/i386/i386-expand.c (ix86_expand_builtin) [case IX86_BUILTIN_ENQCMD, case IX86_BUILTIN_ENQCMDS]: Rewrite expansion to use code_for_enqcmd. [case IX86_BUILTIN_WRSSD, case IX86_BUILTIN_WRSSQ]: Rewrite expansion to use code_for_wrss. [case IX86_BUILTIN_WRUSSD, case IX86_BUILTIN_WRUSSD]: Rewrite expansion to use code_for_wrss.
This commit is contained in:
parent
459f6f68a7
commit
4432066509
@ -11433,24 +11433,24 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rtx pat;
|
if (target == 0
|
||||||
|
|| !register_operand (target, SImode))
|
||||||
|
target = gen_reg_rtx (SImode);
|
||||||
|
|
||||||
target = gen_reg_rtx (SImode);
|
|
||||||
emit_move_insn (target, const0_rtx);
|
emit_move_insn (target, const0_rtx);
|
||||||
target = gen_rtx_SUBREG (QImode, target, 0);
|
target = gen_rtx_SUBREG (QImode, target, 0);
|
||||||
|
|
||||||
if (fcode == IX86_BUILTIN_ENQCMD)
|
int unspecv = (fcode == IX86_BUILTIN_ENQCMD
|
||||||
pat = gen_enqcmd (UNSPECV_ENQCMD, Pmode, op0, op1);
|
? UNSPECV_ENQCMD
|
||||||
else
|
: UNSPECV_ENQCMDS);
|
||||||
pat = gen_enqcmd (UNSPECV_ENQCMDS, Pmode, op0, op1);
|
icode = code_for_enqcmd (unspecv, Pmode);
|
||||||
|
emit_insn (GEN_FCN (icode) (op0, op1));
|
||||||
emit_insn (pat);
|
|
||||||
|
|
||||||
emit_insn (gen_rtx_SET (gen_rtx_STRICT_LOW_PART (VOIDmode, target),
|
|
||||||
gen_rtx_fmt_ee (EQ, QImode,
|
|
||||||
SET_DEST (pat),
|
|
||||||
const0_rtx)));
|
|
||||||
|
|
||||||
|
emit_insn
|
||||||
|
(gen_rtx_SET (gen_rtx_STRICT_LOW_PART (VOIDmode, target),
|
||||||
|
gen_rtx_fmt_ee (EQ, QImode,
|
||||||
|
gen_rtx_REG (CCZmode, FLAGS_REG),
|
||||||
|
const0_rtx)));
|
||||||
return SUBREG_REG (target);
|
return SUBREG_REG (target);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -12839,10 +12839,12 @@ rdseed_step:
|
|||||||
}
|
}
|
||||||
op1 = gen_rtx_MEM (mode, op1);
|
op1 = gen_rtx_MEM (mode, op1);
|
||||||
|
|
||||||
emit_insn ((fcode == IX86_BUILTIN_WRSSD
|
icode = ((fcode == IX86_BUILTIN_WRSSD
|
||||||
|| fcode == IX86_BUILTIN_WRSSQ)
|
|| fcode == IX86_BUILTIN_WRSSQ)
|
||||||
? gen_wrss (mode, op0, op1)
|
? code_for_wrss (mode)
|
||||||
: gen_wruss (mode, op0, op1));
|
: code_for_wruss (mode));
|
||||||
|
emit_insn (GEN_FCN (icode) (op0, op1));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user