summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
author Scott Wakeling <scott.wakeling@linaro.org> 2016-05-20 10:41:38 +0100
committer Scott Wakeling <scott.wakeling@linaro.org> 2016-05-20 10:41:38 +0100
commite5ed20bd8c8a287f816dc4a5e80a68f3c0b648cd (patch)
tree0322ade045ec14a051c65dd38adeb9f576108d3c /compiler
parentca87756577d97bc9c4258f13a06bb53be26507b1 (diff)
ARM64: Move BIC after branch in StringCompareTo intrinsic.
Change-Id: Ic785dd93daab73b4b37917097c8c8ea2de797ed2
Diffstat (limited to 'compiler')
-rw-r--r--compiler/optimizing/intrinsics_arm64.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/optimizing/intrinsics_arm64.cc b/compiler/optimizing/intrinsics_arm64.cc
index 6cd1726eb3..07d9d87035 100644
--- a/compiler/optimizing/intrinsics_arm64.cc
+++ b/compiler/optimizing/intrinsics_arm64.cc
@@ -1270,12 +1270,12 @@ void IntrinsicCodeGeneratorARM64::VisitStringCompareTo(HInvoke* invoke) {
__ Eor(temp1, temp0, temp4);
__ Rbit(temp1, temp1);
__ Clz(temp1, temp1);
- __ Bic(temp1, temp1, 0xf);
// If the number of 16-bit chars remaining <= the index where the difference occurs (0-3), then
// the difference occurs outside the remaining string data, so just return length diff (out).
__ Cmp(temp2, Operand(temp1, LSR, 4));
__ B(le, &end);
// Extract the characters and calculate the difference.
+ __ Bic(temp1, temp1, 0xf);
__ Lsr(temp0, temp0, temp1);
__ Lsr(temp4, temp4, temp1);
__ And(temp4, temp4, 0xffff);