Skip to content
Snippets Groups Projects
Commit 02dbf737 authored by rth's avatar rth
Browse files

* config/i386/i386.md (fp constant pool splitter): Reorg suppression

        for sse and 387; add suppression for mmx.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75349 138bc75d-0d04-0410-961f-82ee72b054a4
parent e6f8ea50
No related branches found
No related tags found
No related merge requests found
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> 2004-01-02 Andrew Pinski <pinskia@physics.uc.edu>
* loop.c (loop_optimize): Free all loops_info's mems. * loop.c (loop_optimize): Free all loops_info's mems.
......
;; GCC machine description for IA-32 and x86-64. ;; GCC machine description for IA-32 and x86-64.
;; Copyright (C) 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000, ;; Copyright (C) 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
;; 2001, 2002, 2003 ;; 2001, 2002, 2003, 2004
;; Free Software Foundation, Inc. ;; Free Software Foundation, Inc.
;; Mostly by William Schelter. ;; Mostly by William Schelter.
;; x86_64 support added by Jan Hubicka ;; x86_64 support added by Jan Hubicka
...@@ -2880,18 +2880,30 @@ ...@@ -2880,18 +2880,30 @@
&& (GET_MODE (operands[0]) == XFmode && (GET_MODE (operands[0]) == XFmode
|| GET_MODE (operands[0]) == SFmode || GET_MODE (operands[0]) == DFmode) || GET_MODE (operands[0]) == SFmode || GET_MODE (operands[0]) == DFmode)
&& GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF
&& CONSTANT_POOL_ADDRESS_P (XEXP (operands[1], 0)) && CONSTANT_POOL_ADDRESS_P (XEXP (operands[1], 0))"
&& (!(SSE_REG_P (operands[0]) || [(set (match_dup 0) (match_dup 1))]
(GET_CODE (operands[0]) == SUBREG {
&& SSE_REG_P (SUBREG_REG (operands[0])))) rtx c = get_pool_constant (XEXP (operands[1], 0));
|| standard_sse_constant_p (get_pool_constant (XEXP (operands[1], 0)))) rtx r = operands[0];
&& (!(FP_REG_P (operands[0]) ||
(GET_CODE (operands[0]) == SUBREG if (GET_CODE (r) == SUBREG)
&& FP_REG_P (SUBREG_REG (operands[0])))) r = SUBREG_REG (r);
|| standard_80387_constant_p (get_pool_constant (XEXP (operands[1], 0))))"
[(set (match_dup 0) if (SSE_REG_P (r))
(match_dup 1))] {
"operands[1] = get_pool_constant (XEXP (operands[1], 0));") 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" (define_insn "swapxf"
[(set (match_operand:XF 0 "register_operand" "+f") [(set (match_operand:XF 0 "register_operand" "+f")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment