changeset 6450:f3f52408a4d2

8148328, PR3100: aarch64: redundant lsr instructions in stub code. Summary: avoid redundant lsr instructions in jbyte_arraycopy and jbyte_disjoint_arraycopy. Reviewed-by: aph Contributed-by: felix.yang@linaro.org
author fyang
date Wed, 27 Jan 2016 12:20:53 +0800
parents e174f34bc41c
children b4a17ff67e26
files src/cpu/aarch64/vm/stubGenerator_aarch64.cpp
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp	Wed Feb 03 11:34:12 2016 +0000
+++ b/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp	Wed Jan 27 12:20:53 2016 +0800
@@ -1008,7 +1008,8 @@
       }
       // rscratch2 is the byte adjustment needed to align s.
       __ cbz(rscratch2, aligned);
-      __ lsr(rscratch2, rscratch2, exact_log2(granularity));
+      int shift = exact_log2(granularity);
+      if (shift)  __ lsr(rscratch2, rscratch2, shift);
       __ sub(count, count, rscratch2);
 
 #if 0