aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2015-06-29 19:18:17 +0200
committerUros Bizjak <uros@gcc.gnu.org>2015-06-29 19:18:17 +0200
commit94f11af109ae0862ffd6eb16309ddea8b5c8e1a9 (patch)
tree93e7e89918ec257c0ae4c64101f002a66300cda4 /gcc
parent030b9d905936aba9ba5957a9576e7e34ebdee4e1 (diff)
downloadgcc-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')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/i386/i386.md104
2 files changed, 36 insertions, 76 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 66de8dd..a14bb04 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
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"))]