aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/i386/i386.md16
-rw-r--r--gcc/rtl.def18
3 files changed, 25 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f8c954d..8ccc1bf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+Sun May 7 00:54:57 EDT 2000 John Wehle (john@feith.com)
+
+ * rtl.def (COND_EXEC): Clarify.
+
+ * i386.md (extendsidi2): Clobber (reg:CC 17) in the
+ same fashion as zero_extendsidi2.
+
2000-05-06 Richard Henderson <rth@cygnus.com>
* config/ia64/ia64.c (predicate_operator): New.
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 9e558f2..5696c26 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -2642,8 +2642,8 @@
(define_insn "extendsidi2"
[(set (match_operand:DI 0 "nonimmediate_operand" "=*A,r,?r,?*o")
(sign_extend:DI (match_operand:SI 1 "register_operand" "0,0,r,r")))
- (clobber (match_scratch:SI 2 "=X,X,X,&r"))
- (clobber (reg:CC 17))]
+ (clobber (reg:CC 17))
+ (clobber (match_scratch:SI 2 "=X,X,X,&r"))]
""
"#")
@@ -2651,8 +2651,8 @@
(define_split
[(set (match_operand:DI 0 "memory_operand" "")
(sign_extend:DI (match_operand:SI 1 "register_operand" "")))
- (clobber (match_operand:SI 2 "register_operand" ""))
- (clobber (reg:CC 17))]
+ (clobber (reg:CC 17))
+ (clobber (match_operand:SI 2 "register_operand" ""))]
"(reload_completed
&& dead_or_set_p (insn, operands[1])
&& !reg_mentioned_p (operands[1], operands[0]))"
@@ -2666,8 +2666,8 @@
(define_split
[(set (match_operand:DI 0 "memory_operand" "")
(sign_extend:DI (match_operand:SI 1 "register_operand" "")))
- (clobber (match_operand:SI 2 "register_operand" ""))
- (clobber (reg:CC 17))]
+ (clobber (reg:CC 17))
+ (clobber (match_operand:SI 2 "register_operand" ""))]
"reload_completed"
[(const_int 0)]
"
@@ -2697,8 +2697,8 @@
(define_split
[(set (match_operand:DI 0 "register_operand" "")
(sign_extend:DI (match_operand:SI 1 "register_operand" "")))
- (clobber (match_scratch:SI 2 ""))
- (clobber (reg:CC 17))]
+ (clobber (reg:CC 17))
+ (clobber (match_scratch:SI 2 ""))]
"reload_completed"
[(const_int 0)]
"
diff --git a/gcc/rtl.def b/gcc/rtl.def
index d9a35f5..cbfd892 100644
--- a/gcc/rtl.def
+++ b/gcc/rtl.def
@@ -434,7 +434,16 @@ DEF_RTL_EXPR(NOTE, "note", "iuu0n", 'x')
Top level constituents of INSN, JUMP_INSN and CALL_INSN.
---------------------------------------------------------------------- */
-/* Several operations to be done in parallel. */
+/* Conditionally execute code.
+ Operand 0 is the condition that if true, the code is executed.
+ Operand 1 is the code to be executed (typically a SET).
+
+ Semantics are that there are no side effects if the condition
+ is false. This pattern is created automatically by the if_convert
+ pass run after reload or by target-specific splitters. */
+DEF_RTL_EXPR(COND_EXEC, "cond_exec", "ee", 'x')
+
+/* Several operations to be done in parallel (perhaps under COND_EXEC). */
DEF_RTL_EXPR(PARALLEL, "parallel", "E", 'x')
/* A string that is passed through to the assembler as input.
@@ -936,13 +945,6 @@ DEF_RTL_EXPR(CALL_PLACEHOLDER, "call_placeholder", "uuuu", 'x')
of canonical RTL. It is, however, easier to manipulate this way. */
DEF_RTL_EXPR(PHI, "phi", "E", 'x')
-/* Conditionally execute code.
- Operand 0 is the condition that if true, the code is executed.
- Operand 1 is the code to be executed (typically a SET).
-
- Semantics are that there are no side effects if the condition
- is false. */
-DEF_RTL_EXPR(COND_EXEC, "cond_exec", "ee", 'x')
/*
Local variables: