Commit 94f11af1 by Uros Bizjak Committed by Uros Bizjak

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
parent 030b9d90
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> 2015-06-29 Sandra Loosemore <sandra@codesourcery.com>
* config/nios2/nios2.c (nios2_delegitimize_address): Make * config/nios2/nios2.c (nios2_delegitimize_address): Make
......
...@@ -10948,24 +10948,6 @@ ...@@ -10948,24 +10948,6 @@
;; Basic conditional jump instructions. ;; Basic conditional jump instructions.
;; We ignore the overflow flag for signed branch 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" (define_insn "*jcc_1"
[(set (pc) [(set (pc)
(if_then_else (match_operator 1 "ix86_comparison_operator" (if_then_else (match_operator 1 "ix86_comparison_operator"
...@@ -10973,34 +10955,17 @@ ...@@ -10973,34 +10955,17 @@
(label_ref (match_operand 0)) (label_ref (match_operand 0))
(pc)))] (pc)))]
"" ""
"%+j%C1\t%l0" "%!%+j%C1\t%l0"
[(set_attr "type" "ibr") [(set_attr "type" "ibr")
(set_attr "modrm" "0") (set_attr "modrm" "0")
(set (attr "length") (set (attr "length_nobnd")
(if_then_else (and (ge (minus (match_dup 0) (pc)) (if_then_else
(const_int -126)) (and (ge (minus (match_dup 0) (pc))
(lt (minus (match_dup 0) (pc)) (const_int -126))
(const_int 128))) (lt (minus (match_dup 0) (pc))
(const_int 2) (const_int 128)))
(const_int 6)))]) (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)))])
(define_insn "*jcc_2" (define_insn "*jcc_2"
[(set (pc) [(set (pc)
...@@ -11009,16 +10974,17 @@ ...@@ -11009,16 +10974,17 @@
(pc) (pc)
(label_ref (match_operand 0))))] (label_ref (match_operand 0))))]
"" ""
"%+j%c1\t%l0" "%!%+j%c1\t%l0"
[(set_attr "type" "ibr") [(set_attr "type" "ibr")
(set_attr "modrm" "0") (set_attr "modrm" "0")
(set (attr "length") (set (attr "length_nobnd")
(if_then_else (and (ge (minus (match_dup 0) (pc)) (if_then_else
(const_int -126)) (and (ge (minus (match_dup 0) (pc))
(lt (minus (match_dup 0) (pc)) (const_int -126))
(const_int 128))) (lt (minus (match_dup 0) (pc))
(const_int 2) (const_int 128)))
(const_int 6)))]) (const_int 2)
(const_int 6)))])
;; In general it is not safe to assume too much about CCmode registers, ;; 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 ;; so simplify-rtx stops when it sees a second one. Under certain
...@@ -11452,35 +11418,21 @@ ...@@ -11452,35 +11418,21 @@
;; Unconditional and other jump instructions ;; 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" (define_insn "jump"
[(set (pc) [(set (pc)
(label_ref (match_operand 0)))] (label_ref (match_operand 0)))]
"" ""
"jmp\t%l0" "%!jmp\t%l0"
[(set_attr "type" "ibr") [(set_attr "type" "ibr")
(set (attr "length") (set_attr "modrm" "0")
(if_then_else (and (ge (minus (match_dup 0) (pc)) (set (attr "length_nobnd")
(const_int -126)) (if_then_else
(lt (minus (match_dup 0) (pc)) (and (ge (minus (match_dup 0) (pc))
(const_int 128))) (const_int -126))
(const_int 2) (lt (minus (match_dup 0) (pc))
(const_int 5))) (const_int 128)))
(set_attr "modrm" "0")]) (const_int 2)
(const_int 5)))])
(define_expand "indirect_jump" (define_expand "indirect_jump"
[(set (pc) (match_operand 0 "indirect_branch_operand"))] [(set (pc) (match_operand 0 "indirect_branch_operand"))]
......
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