mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-22 03:40:26 +08:00
For FMA4, force all operands into registers.
2009-12-02 Richard Henderson <rth@redhat.com> * config/i386/i386.c (ix86_fixup_binary_operands): For FMA4, force all operands into registers. From-SVN: r154969
This commit is contained in:
parent
80c0adc635
commit
aa356b75ed
@ -1,3 +1,8 @@
|
||||
2009-12-02 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* config/i386/i386.c (ix86_fixup_binary_operands): For FMA4, force
|
||||
all operands into registers.
|
||||
|
||||
2009-12-02 Sebastian Pop <sebastian.pop@amd.com>
|
||||
|
||||
* config/i386/i386.c (ix86_expand_fma4_multiple_memory): Remove unused
|
||||
|
@ -13384,6 +13384,16 @@ ix86_fixup_binary_operands (enum rtx_code code, enum machine_mode mode,
|
||||
if (MEM_P (src1) && !rtx_equal_p (dst, src1))
|
||||
src1 = force_reg (mode, src1);
|
||||
|
||||
/* In order for the multiply-add patterns to get matched, we need
|
||||
to aid combine by forcing all operands into registers to start. */
|
||||
if (optimize && TARGET_FMA4)
|
||||
{
|
||||
if (MEM_P (src2))
|
||||
src2 = force_reg (GET_MODE (src2), src2);
|
||||
else if (MEM_P (src1))
|
||||
src1 = force_reg (GET_MODE (src1), src1);
|
||||
}
|
||||
|
||||
operands[1] = src1;
|
||||
operands[2] = src2;
|
||||
return dst;
|
||||
|
Loading…
x
Reference in New Issue
Block a user