i386.md (*jcc_1): Use %!
* config/i386/i386.md (*jcc_1): Use %! in asm template. Set attribute "length_nobnd" instead of "length". (*jcc_2): Ditto. (jump): Ditto. (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns. From-SVN: r225138
This commit is contained in:
parent
030b9d9059
commit
94f11af109
2 changed files with 36 additions and 76 deletions
|
@ -1,3 +1,11 @@
|
|||
2015-06-29 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/i386/i386.md (*jcc_1): Use %! in asm template.
|
||||
Set attribute "length_nobnd" instead of "length".
|
||||
(*jcc_2): Ditto.
|
||||
(jump): Ditto.
|
||||
(*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
|
||||
|
||||
2015-06-29 Sandra Loosemore <sandra@codesourcery.com>
|
||||
|
||||
* config/nios2/nios2.c (nios2_delegitimize_address): Make
|
||||
|
|
|
@ -10948,24 +10948,6 @@
|
|||
;; Basic conditional jump instructions.
|
||||
;; We ignore the overflow flag for signed branch instructions.
|
||||
|
||||
(define_insn "*jcc_1_bnd"
|
||||
[(set (pc)
|
||||
(if_then_else (match_operator 1 "ix86_comparison_operator"
|
||||
[(reg FLAGS_REG) (const_int 0)])
|
||||
(label_ref (match_operand 0))
|
||||
(pc)))]
|
||||
"TARGET_MPX && ix86_bnd_prefixed_insn_p (insn)"
|
||||
"bnd %+j%C1\t%l0"
|
||||
[(set_attr "type" "ibr")
|
||||
(set_attr "modrm" "0")
|
||||
(set (attr "length")
|
||||
(if_then_else (and (ge (minus (match_dup 0) (pc))
|
||||
(const_int -126))
|
||||
(lt (minus (match_dup 0) (pc))
|
||||
(const_int 128)))
|
||||
(const_int 3)
|
||||
(const_int 7)))])
|
||||
|
||||
(define_insn "*jcc_1"
|
||||
[(set (pc)
|
||||
(if_then_else (match_operator 1 "ix86_comparison_operator"
|
||||
|
@ -10973,34 +10955,17 @@
|
|||
(label_ref (match_operand 0))
|
||||
(pc)))]
|
||||
""
|
||||
"%+j%C1\t%l0"
|
||||
"%!%+j%C1\t%l0"
|
||||
[(set_attr "type" "ibr")
|
||||
(set_attr "modrm" "0")
|
||||
(set (attr "length")
|
||||
(if_then_else (and (ge (minus (match_dup 0) (pc))
|
||||
(const_int -126))
|
||||
(lt (minus (match_dup 0) (pc))
|
||||
(const_int 128)))
|
||||
(const_int 2)
|
||||
(const_int 6)))])
|
||||
|
||||
(define_insn "*jcc_2_bnd"
|
||||
[(set (pc)
|
||||
(if_then_else (match_operator 1 "ix86_comparison_operator"
|
||||
[(reg FLAGS_REG) (const_int 0)])
|
||||
(pc)
|
||||
(label_ref (match_operand 0))))]
|
||||
"TARGET_MPX && ix86_bnd_prefixed_insn_p (insn)"
|
||||
"bnd %+j%c1\t%l0"
|
||||
[(set_attr "type" "ibr")
|
||||
(set_attr "modrm" "0")
|
||||
(set (attr "length")
|
||||
(if_then_else (and (ge (minus (match_dup 0) (pc))
|
||||
(const_int -126))
|
||||
(lt (minus (match_dup 0) (pc))
|
||||
(const_int 128)))
|
||||
(const_int 3)
|
||||
(const_int 7)))])
|
||||
(set (attr "length_nobnd")
|
||||
(if_then_else
|
||||
(and (ge (minus (match_dup 0) (pc))
|
||||
(const_int -126))
|
||||
(lt (minus (match_dup 0) (pc))
|
||||
(const_int 128)))
|
||||
(const_int 2)
|
||||
(const_int 6)))])
|
||||
|
||||
(define_insn "*jcc_2"
|
||||
[(set (pc)
|
||||
|
@ -11009,16 +10974,17 @@
|
|||
(pc)
|
||||
(label_ref (match_operand 0))))]
|
||||
""
|
||||
"%+j%c1\t%l0"
|
||||
"%!%+j%c1\t%l0"
|
||||
[(set_attr "type" "ibr")
|
||||
(set_attr "modrm" "0")
|
||||
(set (attr "length")
|
||||
(if_then_else (and (ge (minus (match_dup 0) (pc))
|
||||
(const_int -126))
|
||||
(lt (minus (match_dup 0) (pc))
|
||||
(const_int 128)))
|
||||
(const_int 2)
|
||||
(const_int 6)))])
|
||||
(set (attr "length_nobnd")
|
||||
(if_then_else
|
||||
(and (ge (minus (match_dup 0) (pc))
|
||||
(const_int -126))
|
||||
(lt (minus (match_dup 0) (pc))
|
||||
(const_int 128)))
|
||||
(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
|
||||
|
@ -11452,35 +11418,21 @@
|
|||
|
||||
;; Unconditional and other jump instructions
|
||||
|
||||
(define_insn "jump_bnd"
|
||||
[(set (pc)
|
||||
(label_ref (match_operand 0)))]
|
||||
"TARGET_MPX && ix86_bnd_prefixed_insn_p (insn)"
|
||||
"bnd jmp\t%l0"
|
||||
[(set_attr "type" "ibr")
|
||||
(set (attr "length")
|
||||
(if_then_else (and (ge (minus (match_dup 0) (pc))
|
||||
(const_int -126))
|
||||
(lt (minus (match_dup 0) (pc))
|
||||
(const_int 128)))
|
||||
(const_int 3)
|
||||
(const_int 6)))
|
||||
(set_attr "modrm" "0")])
|
||||
|
||||
(define_insn "jump"
|
||||
[(set (pc)
|
||||
(label_ref (match_operand 0)))]
|
||||
""
|
||||
"jmp\t%l0"
|
||||
"%!jmp\t%l0"
|
||||
[(set_attr "type" "ibr")
|
||||
(set (attr "length")
|
||||
(if_then_else (and (ge (minus (match_dup 0) (pc))
|
||||
(const_int -126))
|
||||
(lt (minus (match_dup 0) (pc))
|
||||
(const_int 128)))
|
||||
(const_int 2)
|
||||
(const_int 5)))
|
||||
(set_attr "modrm" "0")])
|
||||
(set_attr "modrm" "0")
|
||||
(set (attr "length_nobnd")
|
||||
(if_then_else
|
||||
(and (ge (minus (match_dup 0) (pc))
|
||||
(const_int -126))
|
||||
(lt (minus (match_dup 0) (pc))
|
||||
(const_int 128)))
|
||||
(const_int 2)
|
||||
(const_int 5)))])
|
||||
|
||||
(define_expand "indirect_jump"
|
||||
[(set (pc) (match_operand 0 "indirect_branch_operand"))]
|
||||
|
|
Loading…
Add table
Reference in a new issue