diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2015-06-29 19:18:17 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2015-06-29 19:18:17 +0200 |
commit | 94f11af109ae0862ffd6eb16309ddea8b5c8e1a9 (patch) | |
tree | 93e7e89918ec257c0ae4c64101f002a66300cda4 /gcc/config | |
parent | 030b9d905936aba9ba5957a9576e7e34ebdee4e1 (diff) | |
download | gcc-94f11af109ae0862ffd6eb16309ddea8b5c8e1a9.zip gcc-94f11af109ae0862ffd6eb16309ddea8b5c8e1a9.tar.gz gcc-94f11af109ae0862ffd6eb16309ddea8b5c8e1a9.tar.bz2 |
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
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/i386/i386.md | 104 |
1 files changed, 28 insertions, 76 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 2593581..ff7baa4 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -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"))] |