aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJohn Wehle <john@feith.com>1999-04-02 11:01:25 +0000
committerJeff Law <law@gcc.gnu.org>1999-04-02 04:01:25 -0700
commit9f567f56b1e4d0e4de0b7b0f7d8c579fa5f8378b (patch)
tree7b693aee28126a6946b63008e941ac21df055fc9 /gcc
parentc095d84a8d7d07fa12425901cacc7e0ec031d913 (diff)
downloadgcc-9f567f56b1e4d0e4de0b7b0f7d8c579fa5f8378b.zip
gcc-9f567f56b1e4d0e4de0b7b0f7d8c579fa5f8378b.tar.gz
gcc-9f567f56b1e4d0e4de0b7b0f7d8c579fa5f8378b.tar.bz2
i386.md (movsf+1, [...]): Update constraints so that SECONDARY_MEMORY_RELOAD is used.
* i386.md (movsf+1, movdf+1, movxf+1): Update constraints so that SECONDARY_MEMORY_RELOAD is used. Remove dead code. From-SVN: r26121
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/i386.md54
2 files changed, 11 insertions, 48 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2ac165b..f973ef2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Fri Apr 2 11:53:37 1999 John Wehle (john@feith.com)
+
+ * i386.md (movsf+1, movdf+1, movxf+1): Update constraints
+ so that SECONDARY_MEMORY_RELOAD is used. Remove dead code.
+
1999-04-02 Bruce Korb <ddsinc09@ix.netcom.com>
* fixinc/mkfixinc.sh: added support for x86-interix
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index d2137fe..6aaa5289 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -1401,8 +1401,8 @@
;; For the purposes of regclass, prefer FLOAT_REGS.
(define_insn ""
- [(set (match_operand:SF 0 "nonimmediate_operand" "=*rfm,*rf,f,!*rm")
- (match_operand:SF 1 "general_operand" "*rf,*rfm,fG,fF"))]
+ [(set (match_operand:SF 0 "nonimmediate_operand" "=f,m,!*r,!m")
+ (match_operand:SF 1 "general_operand" "fmG,f,*rmF,*rF"))]
"(!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM)"
"*
{
@@ -1418,20 +1418,6 @@
return AS1 (fld,%y0);
}
- /* Handle a transfer between the 387 and a 386 register */
-
- if (STACK_TOP_P (operands[0]) && NON_STACK_REG_P (operands[1]))
- {
- output_op_from_reg (operands[1], AS1 (fld%z0,%y1));
- RET;
- }
-
- if (STACK_TOP_P (operands[1]) && NON_STACK_REG_P (operands[0]))
- {
- output_to_reg (operands[0], stack_top_dies, 0);
- RET;
- }
-
/* Handle other kinds of writes from the 387 */
if (STACK_TOP_P (operands[1]))
@@ -1538,8 +1524,8 @@
;; For the purposes of regclass, prefer FLOAT_REGS.
(define_insn ""
- [(set (match_operand:DF 0 "nonimmediate_operand" "=f,fm,!*rf,!*rm")
- (match_operand:DF 1 "general_operand" "fmG,f,*rfm,*rfF"))]
+ [(set (match_operand:DF 0 "nonimmediate_operand" "=f,m,!*r,!o")
+ (match_operand:DF 1 "general_operand" "fmG,f,*roF,*rF"))]
"(!TARGET_MOVE || GET_CODE (operands[0]) != MEM)
|| (GET_CODE (operands[1]) != MEM)"
"*
@@ -1556,20 +1542,6 @@
return AS1 (fld,%y0);
}
- /* Handle a transfer between the 387 and a 386 register */
-
- if (STACK_TOP_P (operands[0]) && NON_STACK_REG_P (operands[1]))
- {
- output_op_from_reg (operands[1], AS1 (fld%z0,%y1));
- RET;
- }
-
- if (STACK_TOP_P (operands[1]) && NON_STACK_REG_P (operands[0]))
- {
- output_to_reg (operands[0], stack_top_dies, 0);
- RET;
- }
-
/* Handle other kinds of writes from the 387 */
if (STACK_TOP_P (operands[1]))
@@ -1675,8 +1647,8 @@
(define_insn ""
- [(set (match_operand:XF 0 "nonimmediate_operand" "=f,fm,!*rf,!*rm")
- (match_operand:XF 1 "general_operand" "fmG,f,*rfm,*rfF"))]
+ [(set (match_operand:XF 0 "nonimmediate_operand" "=f,m,!*r,!o")
+ (match_operand:XF 1 "general_operand" "fmG,f,*roF,*rF"))]
"(!TARGET_MOVE || GET_CODE (operands[0]) != MEM)
|| (GET_CODE (operands[1]) != MEM)"
"*
@@ -1693,20 +1665,6 @@
return AS1 (fld,%y0);
}
- /* Handle a transfer between the 387 and a 386 register */
-
- if (STACK_TOP_P (operands[0]) && NON_STACK_REG_P (operands[1]))
- {
- output_op_from_reg (operands[1], AS1 (fld%z0,%y1));
- RET;
- }
-
- if (STACK_TOP_P (operands[1]) && NON_STACK_REG_P (operands[0]))
- {
- output_to_reg (operands[0], stack_top_dies, 0);
- RET;
- }
-
/* Handle other kinds of writes from the 387 */
if (STACK_TOP_P (operands[1]))