re PR target/64003 (valgrind complains about get_attr_length_nobnd in insn-attrtab.c from i386.md)

PR target/64003
	* config/i386/i386.md (*jcc_1_bnd): New.
	(*jcc_2_bnd): New.
	(jump_bnd): New.
	(*jcc_1): Remove bnd prefix.
	(*jcc_2): Likewise.
	(jump): Likewise.

From-SVN: r218426
This commit is contained in:
Ilya Enkovich 2014-12-05 16:00:52 +00:00 committed by Ilya Enkovich
parent 3edaf26de0
commit 65fdb418d1
2 changed files with 67 additions and 6 deletions

View File

@ -1,3 +1,13 @@
2014-12-05 Ilya Enkovich <ilya.enkovich@intel.com>
PR target/64003
* config/i386/i386.md (*jcc_1_bnd): New.
(*jcc_2_bnd): New.
(jump_bnd): New.
(*jcc_1): Remove bnd prefix.
(*jcc_2): Likewise.
(jump): Likewise.
2014-12-05 Renlin Li <renlin.li@arm.com>
* config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define

View File

@ -10958,6 +10958,24 @@
;; 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"
@ -10965,10 +10983,10 @@
(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_nobnd")
(set (attr "length")
(if_then_else (and (ge (minus (match_dup 0) (pc))
(const_int -126))
(lt (minus (match_dup 0) (pc))
@ -10976,6 +10994,24 @@
(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"
[(set (pc)
(if_then_else (match_operator 1 "ix86_comparison_operator"
@ -10983,10 +11019,10 @@
(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_nobnd")
(set (attr "length")
(if_then_else (and (ge (minus (match_dup 0) (pc))
(const_int -126))
(lt (minus (match_dup 0) (pc))
@ -11420,13 +11456,28 @@
;; 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_nobnd")
(set (attr "length")
(if_then_else (and (ge (minus (match_dup 0) (pc))
(const_int -126))
(lt (minus (match_dup 0) (pc))