summaryrefslogtreecommitdiff
path: root/gcc/config/i386/i386.md
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2014-11-10 23:29:59 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2014-11-10 23:29:59 +0000
commit097a1c0bcf82a656ccc50121c800cb1b9ce16d5f (patch)
tree54e59b494ea3f189280a62389db0ee8dca762d42 /gcc/config/i386/i386.md
parent9974fcd7bc05d1fa05695e4750a28a056aecfa44 (diff)
downloadgcc-097a1c0bcf82a656ccc50121c800cb1b9ce16d5f.tar.gz
2014-11-11 Uros Bizjak <ubizjak@gmail.com>
Revert: 2014-10-31 Uros Bizjak <ubizjak@gmail.com> PR target/63620 * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare. * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export. * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't be reloaded through memory. (*pushxf): Ditto. (*pushdf): Ditto. testsuite/ChangeLog: 2014-11-11 Uros Bizjak <ubizjak@gmail.com> Ilya Enkovich <ilya.enkovich@intel.com> PR target/63620 * gcc.target/i386/pr63620.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217325 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/i386.md')
-rw-r--r--gcc/config/i386/i386.md22
1 files changed, 3 insertions, 19 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index f2b878817cf..0df66ea6c0a 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -2779,15 +2779,10 @@
;; Floating point push instructions.
-;; %%% Remove CONST_DOUBLE workaround after PR63620 is fixed!
(define_insn "*pushtf"
[(set (match_operand:TF 0 "push_operand" "=<,<")
(match_operand:TF 1 "general_no_elim_operand" "x,*roF"))]
- "(TARGET_64BIT || TARGET_SSE)
- && (!ix86_use_pseudo_pic_reg ()
- || !can_create_pseudo_p ()
- || GET_CODE (operands[1]) != CONST_DOUBLE
- || standard_sse_constant_p (operands[1]))"
+ "TARGET_64BIT || TARGET_SSE"
{
/* This insn should be already split before reg-stack. */
gcc_unreachable ();
@@ -2809,14 +2804,10 @@
operands[0] = replace_equiv_address (operands[0], stack_pointer_rtx);
})
-;; %%% Remove CONST_DOUBLE workaround after PR63620 is fixed!
(define_insn "*pushxf"
[(set (match_operand:XF 0 "push_operand" "=<,<")
(match_operand:XF 1 "general_no_elim_operand" "f,Yx*roF"))]
- "!ix86_use_pseudo_pic_reg ()
- || !can_create_pseudo_p ()
- || GET_CODE (operands[1]) != CONST_DOUBLE
- || standard_80387_constant_p (operands[1]) > 0"
+ ""
{
/* This insn should be already split before reg-stack. */
gcc_unreachable ();
@@ -2844,17 +2835,10 @@
operands[0] = replace_equiv_address (operands[0], stack_pointer_rtx);
})
-;; %%% Remove CONST_DOUBLE workaround after PR63620 is fixed!
(define_insn "*pushdf"
[(set (match_operand:DF 0 "push_operand" "=<,<,<,<")
(match_operand:DF 1 "general_no_elim_operand" "f,Yd*roF,rmF,x"))]
- "!ix86_use_pseudo_pic_reg ()
- || !can_create_pseudo_p ()
- || GET_CODE (operands[1]) != CONST_DOUBLE
- || (!(TARGET_SSE2 && TARGET_SSE_MATH)
- && standard_80387_constant_p (operands[1]) > 0)
- || (TARGET_SSE2 && TARGET_SSE_MATH
- && standard_sse_constant_p (operands[1]))"
+ ""
{
/* This insn should be already split before reg-stack. */
gcc_unreachable ();