aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@multimania.com>2002-07-03 17:02:39 +0000
committerJeff Law <law@redhat.com>2002-07-03 17:02:39 +0000
commitfe4ad8054ed5cec334caeeb3c57f8511863917e5 (patch)
tree93669ba9cc1176a03c4d483c9bc4bc2ad79d2433
parentd016040de1b30c41d177b38260ce79ca85d6abd9 (diff)
* i386.md (length_immediate attribute): Fix typo.
(length_address attribute): Likewise. (modrm attribute): Set it to 0 for immediate call instructions. (jcc_1 pattern): Set modrm attribute to 0. (jcc_2 pattern ): Likewise. (jump pattern): Likewise. (doloop_end_internal pattern): Explicitly set length. (leave pattern): Fix typo. (leave_rex64 pattern): Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@55215 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog13
-rw-r--r--gcc/config/i386/i386.md25
2 files changed, 33 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 704ed18abd7..4000c79de8a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,16 @@
+2002-07-03 Eric Botcazou <ebotcazou@multimania.com>
+ Jeff Law <law@redhat.com>
+
+ * i386.md (length_immediate attribute): Fix typo.
+ (length_address attribute): Likewise.
+ (modrm attribute): Set it to 0 for immediate call instructions.
+ (jcc_1 pattern): Set modrm attribute to 0.
+ (jcc_2 pattern ): Likewise.
+ (jump pattern): Likewise.
+ (doloop_end_internal pattern): Explicitly set length.
+ (leave pattern): Fix typo.
+ (leave_rex64 pattern): Likewise.
+
2002-07-03 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.md (fix_truncdfsi2_internal): Ignore DImode
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index c2ef8965439..419d45c7672 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -166,7 +166,7 @@
;; The (bounding maximum) length of an instruction immediate.
(define_attr "length_immediate" ""
- (cond [(eq_attr "type" "incdec,setcc,icmov,ibr,str,cld,lea,other,multi,idiv")
+ (cond [(eq_attr "type" "incdec,setcc,icmov,str,cld,lea,other,multi,idiv")
(const_int 0)
(eq_attr "unit" "i387,sse,mmx")
(const_int 0)
@@ -199,7 +199,7 @@
(cond [(eq_attr "type" "str,cld,other,multi,fxch")
(const_int 0)
(and (eq_attr "type" "call")
- (match_operand 1 "constant_call_address_operand" ""))
+ (match_operand 0 "constant_call_address_operand" ""))
(const_int 0)
(and (eq_attr "type" "callv")
(match_operand 1 "constant_call_address_operand" ""))
@@ -251,6 +251,12 @@
(and (match_operand 0 "register_operand" "")
(match_operand 1 "immediate_operand" "")))
(const_int 0)
+ (and (eq_attr "type" "call")
+ (match_operand 0 "constant_call_address_operand" ""))
+ (const_int 0)
+ (and (eq_attr "type" "callv")
+ (match_operand 1 "constant_call_address_operand" ""))
+ (const_int 0)
]
(const_int 1)))
@@ -12804,6 +12810,7 @@
""
"%+j%C1\t%l0"
[(set_attr "type" "ibr")
+ (set_attr "modrm" "0")
(set (attr "prefix_0f")
(if_then_else (and (ge (minus (match_dup 0) (pc))
(const_int -128))
@@ -12821,6 +12828,7 @@
""
"%+j%c1\t%l0"
[(set_attr "type" "ibr")
+ (set_attr "modrm" "0")
(set (attr "prefix_0f")
(if_then_else (and (ge (minus (match_dup 0) (pc))
(const_int -128))
@@ -13087,7 +13095,8 @@
(label_ref (match_operand 0 "" "")))]
""
"jmp\t%l0"
- [(set_attr "type" "ibr")])
+ [(set_attr "type" "ibr")
+ (set_attr "modrm" "0")])
(define_expand "indirect_jump"
[(set (pc) (match_operand 0 "nonimmediate_operand" "rm"))]
@@ -13205,6 +13214,14 @@
return "dec{l}\t%1\;%+jne\t%l0";
}
[(set_attr "ppro_uops" "many")
+ (set (attr "length")
+ (if_then_else (and (eq_attr "alternative" "0")
+ (and (ge (minus (match_dup 0) (pc))
+ (const_int -128))
+ (lt (minus (match_dup 0) (pc))
+ (const_int 124))))
+ (const_int 2)
+ (const_int 16)))
(set (attr "type")
(if_then_else (and (eq_attr "alternative" "0")
(and (ge (minus (match_dup 0) (pc))
@@ -13620,7 +13637,6 @@
[(set_attr "length_immediate" "0")
(set_attr "length" "1")
(set_attr "modrm" "0")
- (set_attr "modrm" "0")
(set_attr "athlon_decode" "vector")
(set_attr "ppro_uops" "few")])
@@ -13633,7 +13649,6 @@
[(set_attr "length_immediate" "0")
(set_attr "length" "1")
(set_attr "modrm" "0")
- (set_attr "modrm" "0")
(set_attr "athlon_decode" "vector")
(set_attr "ppro_uops" "few")])