2021-02-02 11:40:07 +08:00
|
|
|
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
|
2020-01-20 12:09:52 +08:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
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
|
2021-02-02 11:40:07 +08:00
|
|
|
index fb80c0184..48d3628e9 100644
|
2020-01-20 12:09:52 +08:00
|
|
|
--- a/hotspot/src/cpu/aarch64/vm/aarch64.ad
|
|
|
|
|
+++ b/hotspot/src/cpu/aarch64/vm/aarch64.ad
|
2021-02-02 11:40:07 +08:00
|
|
|
@@ -10917,7 +10917,7 @@ instruct ubfxwI(iRegINoSp dst, iRegIorL2I src, immI rshift, immI_bitmask mask)
|
2020-01-20 12:09:52 +08:00
|
|
|
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);
|
|
|
|
|
%}
|
2021-02-02 11:40:07 +08:00
|
|
|
@@ -10954,7 +10954,7 @@ instruct ubfxIConvI2L(iRegLNoSp dst, iRegIorL2I src, immI rshift, immI_bitmask m
|
2020-01-20 12:09:52 +08:00
|
|
|
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
|
|
|
|
|
|