i386.md (length_immediate): Do not refer to insn address.
* i386.md (length_immediate): Do not refer to insn address. (jcc*, jmp patterns): Compute length explicitly. From-SVN: r59279
This commit is contained in:
parent
da98b11a83
commit
efcc70370b
2 changed files with 25 additions and 21 deletions
|
@ -1,4 +1,9 @@
|
|||
2002-11-19 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||
Tue Nov 19 23:50:56 CET 2002 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* i386.md (length_immediate): Do not refer to insn address.
|
||||
(jcc*, jmp patterns): Compute length explicitly.
|
||||
|
||||
2002-11-19 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||
|
||||
PR c/8588
|
||||
* optabs.c (expand_binop): Convert CONST_INTs in shift
|
||||
|
|
|
@ -187,13 +187,10 @@
|
|||
(if_then_else (match_operand 1 "constant_call_address_operand" "")
|
||||
(const_int 4)
|
||||
(const_int 0))
|
||||
;; We don't know the size before shorten_branches. Expect
|
||||
;; the instruction to fit for better scheduling.
|
||||
(eq_attr "type" "ibr")
|
||||
(if_then_else (and (ge (minus (match_dup 0) (pc))
|
||||
(const_int -128))
|
||||
(lt (minus (match_dup 0) (pc))
|
||||
(const_int 124)))
|
||||
(const_int 1)
|
||||
(const_int 4))
|
||||
(const_int 1)
|
||||
]
|
||||
(symbol_ref "/* Update immediate_length and other attributes! */
|
||||
abort(),1")))
|
||||
|
@ -12840,13 +12837,13 @@
|
|||
"%+j%C1\t%l0"
|
||||
[(set_attr "type" "ibr")
|
||||
(set_attr "modrm" "0")
|
||||
(set (attr "prefix_0f")
|
||||
(set (attr "length")
|
||||
(if_then_else (and (ge (minus (match_dup 0) (pc))
|
||||
(const_int -128))
|
||||
(lt (minus (match_dup 0) (pc))
|
||||
(const_int 124)))
|
||||
(const_int 0)
|
||||
(const_int 1)))])
|
||||
(const_int 2)
|
||||
(const_int 6)))])
|
||||
|
||||
(define_insn "*jcc_2"
|
||||
[(set (pc)
|
||||
|
@ -12858,13 +12855,13 @@
|
|||
"%+j%c1\t%l0"
|
||||
[(set_attr "type" "ibr")
|
||||
(set_attr "modrm" "0")
|
||||
(set (attr "prefix_0f")
|
||||
(set (attr "length")
|
||||
(if_then_else (and (ge (minus (match_dup 0) (pc))
|
||||
(const_int -128))
|
||||
(lt (minus (match_dup 0) (pc))
|
||||
(const_int 124)))
|
||||
(const_int 0)
|
||||
(const_int 1)))])
|
||||
(const_int 2)
|
||||
(const_int 6)))])
|
||||
|
||||
;; In general it is not safe to assume too much about CCmode registers,
|
||||
;; so simplify-rtx stops when it sees a second one. Under certain
|
||||
|
@ -13125,6 +13122,13 @@
|
|||
""
|
||||
"jmp\t%l0"
|
||||
[(set_attr "type" "ibr")
|
||||
(set (attr "length")
|
||||
(if_then_else (and (ge (minus (match_dup 0) (pc))
|
||||
(const_int -128))
|
||||
(lt (minus (match_dup 0) (pc))
|
||||
(const_int 124)))
|
||||
(const_int 2)
|
||||
(const_int 5)))
|
||||
(set_attr "modrm" "0")])
|
||||
|
||||
(define_expand "indirect_jump"
|
||||
|
@ -13251,14 +13255,9 @@
|
|||
(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))
|
||||
(const_int -128))
|
||||
(lt (minus (match_dup 0) (pc))
|
||||
(const_int 124))))
|
||||
(const_string "ibr")
|
||||
(const_string "multi")))])
|
||||
;; We don't know the type before shorten branches. Optimistically expect
|
||||
;; the loop instruction to match.
|
||||
(set (attr "type") (const_string "ibr"))])
|
||||
|
||||
(define_split
|
||||
[(set (pc)
|
||||
|
|
Loading…
Add table
Reference in a new issue