diff options
author | Mark-PK Tsai <mark-pk.tsai@mediatek.com> | 2023-10-19 11:35:22 +0300 |
---|---|---|
committer | Russell King (Oracle) <rmk+kernel@armlinux.org.uk> | 2023-12-05 14:40:27 +0300 |
commit | fd7c3c3767c38dbbf2f5c993c6fd42a71846e7e0 (patch) | |
tree | 43f2f6573b7f1799937e31f5cf4b67703423d2d4 | |
parent | ffc253263a1375a65fa6c9f62a893e9767fbebfa (diff) | |
download | linux-fd7c3c3767c38dbbf2f5c993c6fd42a71846e7e0.tar.xz |
ARM: 9327/1: vfp: Add missing VFP instructions to neon_support_hook
Add the missing "Unconditional Advanced SIMD and floating-point
instructions" in [1] to the VFP undef hook.
This commit addresses the issue reported in [2], where
executing the vudot instruction on a platform with FEAT_DotProd
support resulted in an undefined instruction error.
Link: https://developer.arm.com/documentation/ddi0597/2023-06/?lang=en [1]
Link: https://lore.kernel.org/lkml/20230920083907.30479-1-mark-pk.tsai@mediatek.com/ [2]
Signed-off-by: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
Tested-by: Xuewen Yan <xuewen.yan@unisoc.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
-rw-r--r-- | arch/arm/vfp/vfpmodule.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c index 7e8773a2d99d..b68efe643a12 100644 --- a/arch/arm/vfp/vfpmodule.c +++ b/arch/arm/vfp/vfpmodule.c @@ -800,6 +800,24 @@ static struct undef_hook neon_support_hook[] = {{ .cpsr_mask = PSR_T_BIT, .cpsr_val = PSR_T_BIT, .fn = vfp_support_entry, +}, { + .instr_mask = 0xff000800, + .instr_val = 0xfc000800, + .cpsr_mask = 0, + .cpsr_val = 0, + .fn = vfp_support_entry, +}, { + .instr_mask = 0xff000800, + .instr_val = 0xfd000800, + .cpsr_mask = 0, + .cpsr_val = 0, + .fn = vfp_support_entry, +}, { + .instr_mask = 0xff000800, + .instr_val = 0xfe000800, + .cpsr_mask = 0, + .cpsr_val = 0, + .fn = vfp_support_entry, }}; static struct undef_hook vfp_support_hook = { |