Module Name: src
Committed By: matt
Date: Tue Jul 27 01:13:41 UTC 2010
Modified Files:
src/gnu/dist/gcc4/gcc/config/vax: vax.md
Log Message:
Only allow jbls/jblc x(r) iff (x & 3) == 0
To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/gnu/dist/gcc4/gcc/config/vax/vax.md
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/gnu/dist/gcc4/gcc/config/vax/vax.md
diff -u src/gnu/dist/gcc4/gcc/config/vax/vax.md:1.12 src/gnu/dist/gcc4/gcc/config/vax/vax.md:1.13
--- src/gnu/dist/gcc4/gcc/config/vax/vax.md:1.12 Fri Apr 20 16:30:32 2007
+++ src/gnu/dist/gcc4/gcc/config/vax/vax.md Tue Jul 27 01:13:41 2010
@@ -1129,30 +1129,56 @@
(define_insn ""
[(set (pc)
(if_then_else
- (ne (zero_extract:SI (match_operand:QI 0 "memory_operand" "Q,g")
+ (ne (zero_extract:SI (match_operand:QI 0 "memory_operand" "Q")
(const_int 1)
- (match_operand:SI 1 "general_operand" "I,nrmT"))
+ (const_int 0))
+ (const_int 0))
+ (label_ref (match_operand 1 "" ""))
+ (pc)))]
+ "GET_CODE (XEXP (operands[0], 0)) != PLUS
+ || !REG_P (XEXP (XEXP (operands[0], 0), 0))
+ || !CONST_INT_P (XEXP (XEXP (operands[0], 0), 1))
+ || (INTVAL (XEXP (XEXP (operands[0], 0), 1)) & 3) == 0"
+ "jlbs %0,%l1")
+
+(define_insn ""
+ [(set (pc)
+ (if_then_else
+ (ne (zero_extract:SI (match_operand:QI 0 "memory_operand" "g")
+ (const_int 1)
+ (match_operand:SI 1 "general_operand" "nrmT"))
(const_int 0))
(label_ref (match_operand 2 "" ""))
(pc)))]
""
- "@
- jlbs %0,%l2
- jbs %1,%0,%l2")
+ "jbs %1,%0,%l2")
(define_insn ""
[(set (pc)
(if_then_else
- (eq (zero_extract:SI (match_operand:QI 0 "memory_operand" "Q,g")
+ (eq (zero_extract:SI (match_operand:QI 0 "memory_operand" "Q")
(const_int 1)
- (match_operand:SI 1 "general_operand" "I,nrmT"))
+ (const_int 0))
+ (const_int 0))
+ (label_ref (match_operand 1 "" ""))
+ (pc)))]
+ "GET_CODE (XEXP (operands[0], 0)) != PLUS
+ || !REG_P (XEXP (XEXP (operands[0], 0), 0))
+ || !CONST_INT_P (XEXP (XEXP (operands[0], 0), 1))
+ || (INTVAL (XEXP (XEXP (operands[0], 0), 1)) & 3) == 0"
+ "jlbc %0,%l1")
+
+(define_insn ""
+ [(set (pc)
+ (if_then_else
+ (eq (zero_extract:SI (match_operand:QI 0 "memory_operand" "g")
+ (const_int 1)
+ (match_operand:SI 1 "general_operand" "nrmT"))
(const_int 0))
(label_ref (match_operand 2 "" ""))
(pc)))]
""
- "@
- jlbc %0,%l2
- jbc %1,%0,%l2")
+ "jbc %1,%0,%l2")
(define_insn ""
[(set (pc)