i386.md (fp constant pool splitter): Reorg suppression for sse and 387; add suppression for mmx.
* config/i386/i386.md (fp constant pool splitter): Reorg suppression for sse and 387; add suppression for mmx. From-SVN: r75349
This commit is contained in:
parent
af4490a4c8
commit
b87cfcfbe3
2 changed files with 30 additions and 13 deletions
|
@ -1,3 +1,8 @@
|
|||
2004-01-02 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* config/i386/i386.md (fp constant pool splitter): Reorg suppression
|
||||
for sse and 387; add suppression for mmx.
|
||||
|
||||
2004-01-02 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
* loop.c (loop_optimize): Free all loops_info's mems.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;; GCC machine description for IA-32 and x86-64.
|
||||
;; Copyright (C) 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
||||
;; 2001, 2002, 2003
|
||||
;; 2001, 2002, 2003, 2004
|
||||
;; Free Software Foundation, Inc.
|
||||
;; Mostly by William Schelter.
|
||||
;; x86_64 support added by Jan Hubicka
|
||||
|
@ -2880,18 +2880,30 @@
|
|||
&& (GET_MODE (operands[0]) == XFmode
|
||||
|| GET_MODE (operands[0]) == SFmode || GET_MODE (operands[0]) == DFmode)
|
||||
&& GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF
|
||||
&& CONSTANT_POOL_ADDRESS_P (XEXP (operands[1], 0))
|
||||
&& (!(SSE_REG_P (operands[0]) ||
|
||||
(GET_CODE (operands[0]) == SUBREG
|
||||
&& SSE_REG_P (SUBREG_REG (operands[0]))))
|
||||
|| standard_sse_constant_p (get_pool_constant (XEXP (operands[1], 0))))
|
||||
&& (!(FP_REG_P (operands[0]) ||
|
||||
(GET_CODE (operands[0]) == SUBREG
|
||||
&& FP_REG_P (SUBREG_REG (operands[0]))))
|
||||
|| standard_80387_constant_p (get_pool_constant (XEXP (operands[1], 0))))"
|
||||
[(set (match_dup 0)
|
||||
(match_dup 1))]
|
||||
"operands[1] = get_pool_constant (XEXP (operands[1], 0));")
|
||||
&& CONSTANT_POOL_ADDRESS_P (XEXP (operands[1], 0))"
|
||||
[(set (match_dup 0) (match_dup 1))]
|
||||
{
|
||||
rtx c = get_pool_constant (XEXP (operands[1], 0));
|
||||
rtx r = operands[0];
|
||||
|
||||
if (GET_CODE (r) == SUBREG)
|
||||
r = SUBREG_REG (r);
|
||||
|
||||
if (SSE_REG_P (r))
|
||||
{
|
||||
if (!standard_sse_constant_p (c))
|
||||
FAIL;
|
||||
}
|
||||
else if (FP_REG_P (r))
|
||||
{
|
||||
if (!standard_80387_constant_p (c))
|
||||
FAIL;
|
||||
}
|
||||
else if (MMX_REG_P (r))
|
||||
FAIL;
|
||||
|
||||
operands[1] = c;
|
||||
})
|
||||
|
||||
(define_insn "swapxf"
|
||||
[(set (match_operand:XF 0 "register_operand" "+f")
|
||||
|
|
Loading…
Add table
Reference in a new issue