aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/config/aarch64/aarch64.md
diff options
context:
space:
mode:
authorRong Xu <xur@google.com>2014-09-05 20:22:13 -0700
committerRong Xu <xur@google.com>2014-09-05 20:22:13 -0700
commit142855c94b3bc9e140a1b55c1a424259285d751c (patch)
tree8b4f309643aab7f51e85b9cc66b05f209426c5d3 /gcc-4.9/gcc/config/aarch64/aarch64.md
parent4254ad78d813b8c4cfc6c07218aee6b1be554f23 (diff)
downloadtoolchain_gcc-142855c94b3bc9e140a1b55c1a424259285d751c.tar.gz
toolchain_gcc-142855c94b3bc9e140a1b55c1a424259285d751c.tar.bz2
toolchain_gcc-142855c94b3bc9e140a1b55c1a424259285d751c.zip
[gcc-4.9] Backport fix for PR62040 and PR62262
Backport two patches from upstream gcc 4.9 branch that fix PR62040 and PR62262 Change-Id: If4f557a650e00261b9bc83e008eb63b13ca798cb
Diffstat (limited to 'gcc-4.9/gcc/config/aarch64/aarch64.md')
-rw-r--r--gcc-4.9/gcc/config/aarch64/aarch64.md3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc-4.9/gcc/config/aarch64/aarch64.md b/gcc-4.9/gcc/config/aarch64/aarch64.md
index df81045e9..319f80591 100644
--- a/gcc-4.9/gcc/config/aarch64/aarch64.md
+++ b/gcc-4.9/gcc/config/aarch64/aarch64.md
@@ -3157,7 +3157,8 @@
(and:GPI (ashift:GPI (match_operand:GPI 1 "register_operand" "r")
(match_operand 2 "const_int_operand" "n"))
(match_operand 3 "const_int_operand" "n")))]
- "exact_log2 ((INTVAL (operands[3]) >> INTVAL (operands[2])) + 1) >= 0
+ "(INTVAL (operands[2]) < (<GPI:sizen>))
+ && exact_log2 ((INTVAL (operands[3]) >> INTVAL (operands[2])) + 1) >= 0
&& (INTVAL (operands[3]) & ((1 << INTVAL (operands[2])) - 1)) == 0"
"ubfiz\\t%<w>0, %<w>1, %2, %P3"
[(set_attr "type" "bfm")]