From 56af1a5b3a8dc267f31a1e3ea7766b0ec2f6664b Mon Sep 17 00:00:00 2001 Date: Fri, 22 Jan 2021 11:15:05 +0800 Subject: 8221658: aarch64: add necessary predicate for ubfx patterns --- hotspot/src/cpu/aarch64/vm/aarch64.ad | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hotspot/src/cpu/aarch64/vm/aarch64.ad b/hotspot/src/cpu/aarch64/vm/aarch64.ad index fb80c0184..48d3628e9 100644 --- a/hotspot/src/cpu/aarch64/vm/aarch64.ad +++ b/hotspot/src/cpu/aarch64/vm/aarch64.ad @@ -10917,7 +10917,7 @@ instruct ubfxwI(iRegINoSp dst, iRegIorL2I src, immI rshift, immI_bitmask mask) long mask = $mask$$constant; int width = exact_log2(mask+1); __ ubfxw(as_Register($dst$$reg), - as_Register($src$$reg), rshift, width); + as_Register($src$$reg), $rshift$$constant & 31, width); %} ins_pipe(ialu_reg_shift); %} @@ -10954,7 +10954,7 @@ instruct ubfxIConvI2L(iRegLNoSp dst, iRegIorL2I src, immI rshift, immI_bitmask m long mask = $mask$$constant; int width = exact_log2(mask+1); __ ubfx(as_Register($dst$$reg), - as_Register($src$$reg), rshift, width); + as_Register($src$$reg), $rshift$$constant & 63, width); %} ins_pipe(ialu_reg_shift); %} -- 2.19.0