aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-02-14 01:15:15 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2001-02-14 00:15:15 +0000
commitca9a9b12e9a59cf5b0652d4987a93239a14ab28d (patch)
tree9345c1a1cb4118ee1263aea3796392c8a52d5987 /gcc
parent94807d3318a6a63a3a0efe3419e6a402e77087bb (diff)
downloadgcc-ca9a9b12e9a59cf5b0652d4987a93239a14ab28d.zip
gcc-ca9a9b12e9a59cf5b0652d4987a93239a14ab28d.tar.gz
gcc-ca9a9b12e9a59cf5b0652d4987a93239a14ab28d.tar.bz2
i386.md (fixsfsi2, fixdfdi2): Fix previous patch again.
* i386.md (fixsfsi2, fixdfdi2): Fix previous patch again. (sqrtsf2): Use TARGET_SSE instead of TARGET_SSE2) (sqrtsf2 patterns): Use 'x' instead of 'Y'. (sqrtextendsfdf2): Disable for SSE2. From-SVN: r39652
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/config/i386/i386.md18
2 files changed, 23 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1068c75..006f4d2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,17 @@
+Wed Feb 14 01:13:59 CET 2001 Jan Hubicka <jh@suse.cz>
+
+ * i386.md (fixsfsi2, fixdfdi2): Fix previous patch again.
+ (sqrtsf2): Use TARGET_SSE instead of TARGET_SSE2)
+ (sqrtsf2 patterns): Use 'x' instead of 'Y'.
+ (sqrtextendsfdf2): Disable for SSE2.
+
+Wed Feb 14 00:19:28 CET 2001 Jan Hubicka <jh@suse.cz>
+
+ * i386.md (fixsfsi2, fixdfdi2): Fix previous patch again.
+ (sqrtsf2): Use TARGET_SSE instead of TARGET_SSE2)
+ (sqrtsf2 patterns): Use 'x' instead of 'Y'.
+ (sqrtextendsfdf2): Disable for SSE2.
+
Wed Feb 14 00:11:20 CET 2001 Jan Hubicka <jh@suse.cz>
* i386.md (movsfcc_1): Support integer cmove instruction.
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 8ebed23..acd709c 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -4097,7 +4097,7 @@
{
if (TARGET_SSE2)
{
- rtx out = force_reg (SImode, operands[0]);
+ rtx out = REG_P (operands[0]) ? operands[0] : gen_reg_rtx (SImode);
emit_insn (gen_fix_truncdfsi_sse (out, operands[1]));
if (out != operands[0])
emit_move_insn (operands[0], out);
@@ -4121,7 +4121,7 @@
{
if (TARGET_SSE2)
{
- rtx out = force_reg (SImode, operands[0]);
+ rtx out = REG_P (operands[0]) ? operands[0] : gen_reg_rtx (SImode);
emit_insn (gen_fix_truncdfsi_sse (out, operands[1]));
if (out != operands[0])
emit_move_insn (operands[0], out);
@@ -10860,7 +10860,7 @@
operands[4] = ix86_force_to_memory (GET_MODE (operands[2]), operands[2]);
operands[4] = gen_rtx_FLOAT (GET_MODE (operands[0]), operands[4]);
emit_insn (gen_rtx_SET (VOIDmode, operands[0],
- gen_rtx_fmt_ee (GET_CODE (operands[3]),
+ gen_rtx_fmt_ee (GET_CODE (operands[5]),
GET_MODE (operands[3]),
operands[1],
operands[4])));
@@ -10873,7 +10873,7 @@
(define_expand "sqrtsf2"
[(set (match_operand:SF 0 "register_operand" "")
(sqrt:SF (match_operand:SF 1 "nonimmediate_operand" "")))]
- "(! TARGET_NO_FANCY_MATH_387 && TARGET_80387) || TARGET_SSE2"
+ "(! TARGET_NO_FANCY_MATH_387 && TARGET_80387) || TARGET_SSE"
"
{
if (!TARGET_SSE)
@@ -10881,8 +10881,8 @@
}")
(define_insn "sqrtsf2_1"
- [(set (match_operand:SF 0 "register_operand" "=f#Y,Y#f")
- (sqrt:SF (match_operand:SF 1 "nonimmediate_operand" "0#Y,Ym#f")))]
+ [(set (match_operand:SF 0 "register_operand" "=f#x,x#f")
+ (sqrt:SF (match_operand:SF 1 "nonimmediate_operand" "0#x,xm#f")))]
"! TARGET_NO_FANCY_MATH_387 && TARGET_80387
&& (TARGET_SSE && TARGET_MIX_SSE_I387)"
"@
@@ -10893,8 +10893,8 @@
(set_attr "athlon_decode" "direct,*")])
(define_insn "sqrtsf2_1_sse_only"
- [(set (match_operand:SF 0 "register_operand" "=Y")
- (sqrt:SF (match_operand:SF 1 "nonimmediate_operand" "Ym")))]
+ [(set (match_operand:SF 0 "register_operand" "=x")
+ (sqrt:SF (match_operand:SF 1 "nonimmediate_operand" "xm")))]
"TARGET_SSE && (!TARGET_80387 || !TARGET_MIX_SSE_I387)"
"sqrtss\\t{%1, %0|%0, %1}"
[(set_attr "type" "sse")
@@ -10956,7 +10956,7 @@
[(set (match_operand:DF 0 "register_operand" "=f")
(sqrt:DF (float_extend:DF
(match_operand:SF 1 "register_operand" "0"))))]
- "! TARGET_NO_FANCY_MATH_387 && TARGET_80387"
+ "! TARGET_NO_FANCY_MATH_387 && TARGET_80387 && !TARGET_SSE2"
"fsqrt"
[(set_attr "type" "fpspc")
(set_attr "mode" "DF")