Commit 02e56202 by Jim Wilson Committed by Jim Wilson

Disable remaining conditional move patterns.

	* i386.md (movsicc, movhicc, movsicc_1, movhicc_1, movsfcc_1,
	movdfcc_1): Disable.

From-SVN: r19621
parent e445171e
Thu May 7 19:26:34 1998 Jim Wilson <wilson@cygnus.com>
* i386.md (movsicc, movhicc, movsicc_1, movhicc_1, movsfcc_1,
movdfcc_1): Disable.
Thu May 7 15:39:14 1998 Jim Wilson <wilson@cygnus.com> Thu May 7 15:39:14 1998 Jim Wilson <wilson@cygnus.com>
* configure.in (enable_threads): Rename to enable_threads_flag before * configure.in (enable_threads): Rename to enable_threads_flag before
......
...@@ -7225,6 +7225,12 @@ byte_xor_operation: ...@@ -7225,6 +7225,12 @@ byte_xor_operation:
/* Conditional move define_insns. */ /* Conditional move define_insns. */
;; These are all disabled, because they are buggy. They are all susceptible
;; to problems with input reloads clobbering the condition code registers.
;; It appears the only safe way to write a integer/FP conditional move pattern
;; is to write one which emits both the compare and the cmov, and which can be
;; split only after reload.
(define_expand "movsicc" (define_expand "movsicc"
[(match_dup 4) [(match_dup 4)
(parallel [(set (match_operand 0 "register_operand" "") (parallel [(set (match_operand 0 "register_operand" "")
...@@ -7232,7 +7238,7 @@ byte_xor_operation: ...@@ -7232,7 +7238,7 @@ byte_xor_operation:
(match_operand:SI 2 "general_operand" "") (match_operand:SI 2 "general_operand" "")
(match_operand:SI 3 "general_operand" ""))) (match_operand:SI 3 "general_operand" "")))
(clobber (match_scratch:SI 4 "=&r"))])] (clobber (match_scratch:SI 4 "=&r"))])]
"TARGET_CMOVE" "0 && TARGET_CMOVE"
" "
{ {
operands[4] = i386_compare_gen (i386_compare_op0, i386_compare_op1); operands[4] = i386_compare_gen (i386_compare_op0, i386_compare_op1);
...@@ -7245,7 +7251,7 @@ byte_xor_operation: ...@@ -7245,7 +7251,7 @@ byte_xor_operation:
(match_operand:HI 2 "general_operand" "") (match_operand:HI 2 "general_operand" "")
(match_operand:HI 3 "general_operand" ""))) (match_operand:HI 3 "general_operand" "")))
(clobber (match_scratch:SI 4 "=&r"))])] (clobber (match_scratch:SI 4 "=&r"))])]
"TARGET_CMOVE" "0 && TARGET_CMOVE"
" "
{ {
operands[4] = i386_compare_gen (i386_compare_op0, i386_compare_op1); operands[4] = i386_compare_gen (i386_compare_op0, i386_compare_op1);
...@@ -7258,7 +7264,7 @@ byte_xor_operation: ...@@ -7258,7 +7264,7 @@ byte_xor_operation:
(match_operand:SI 2 "general_operand" "rm,0,rm,g") (match_operand:SI 2 "general_operand" "rm,0,rm,g")
(match_operand:SI 3 "general_operand" "0,rm,rm,g"))) (match_operand:SI 3 "general_operand" "0,rm,rm,g")))
(clobber (match_scratch:SI 4 "X,X,X,=&r"))] (clobber (match_scratch:SI 4 "X,X,X,=&r"))]
"TARGET_CMOVE" "0 && TARGET_CMOVE"
"* "*
{ {
if (which_alternative == 0) if (which_alternative == 0)
...@@ -7319,7 +7325,7 @@ byte_xor_operation: ...@@ -7319,7 +7325,7 @@ byte_xor_operation:
(match_operand:HI 2 "general_operand" "rm,0,rm,g") (match_operand:HI 2 "general_operand" "rm,0,rm,g")
(match_operand:HI 3 "general_operand" "0,rm,rm,g"))) (match_operand:HI 3 "general_operand" "0,rm,rm,g")))
(clobber (match_scratch:SI 4 "X,X,X,=&r"))] (clobber (match_scratch:SI 4 "X,X,X,=&r"))]
"TARGET_CMOVE" "0 && TARGET_CMOVE"
"* "*
{ {
if (which_alternative == 0) if (which_alternative == 0)
...@@ -7418,7 +7424,7 @@ byte_xor_operation: ...@@ -7418,7 +7424,7 @@ byte_xor_operation:
[(cc0) (const_int 0)]) [(cc0) (const_int 0)])
(match_operand:SF 2 "register_operand" "0,f,f") (match_operand:SF 2 "register_operand" "0,f,f")
(match_operand:SF 3 "register_operand" "f,0,f")))] (match_operand:SF 3 "register_operand" "f,0,f")))]
"TARGET_CMOVE" "0 && TARGET_CMOVE"
"* "*
{ {
switch (which_alternative) switch (which_alternative)
...@@ -7449,7 +7455,7 @@ byte_xor_operation: ...@@ -7449,7 +7455,7 @@ byte_xor_operation:
[(cc0) (const_int 0)]) [(cc0) (const_int 0)])
(match_operand:DF 2 "register_operand" "0,f,f") (match_operand:DF 2 "register_operand" "0,f,f")
(match_operand:DF 3 "register_operand" "f,0,f")))] (match_operand:DF 3 "register_operand" "f,0,f")))]
"TARGET_CMOVE" "0 && TARGET_CMOVE"
"* "*
{ {
switch (which_alternative) switch (which_alternative)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment