Skip to content

Commit fd7c3c3

Browse files
PeikanTsaiRussell King (Oracle)
authored andcommitted
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>
1 parent ffc2532 commit fd7c3c3

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

arch/arm/vfp/vfpmodule.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,24 @@ static struct undef_hook neon_support_hook[] = {{
800800
.cpsr_mask = PSR_T_BIT,
801801
.cpsr_val = PSR_T_BIT,
802802
.fn = vfp_support_entry,
803+
}, {
804+
.instr_mask = 0xff000800,
805+
.instr_val = 0xfc000800,
806+
.cpsr_mask = 0,
807+
.cpsr_val = 0,
808+
.fn = vfp_support_entry,
809+
}, {
810+
.instr_mask = 0xff000800,
811+
.instr_val = 0xfd000800,
812+
.cpsr_mask = 0,
813+
.cpsr_val = 0,
814+
.fn = vfp_support_entry,
815+
}, {
816+
.instr_mask = 0xff000800,
817+
.instr_val = 0xfe000800,
818+
.cpsr_mask = 0,
819+
.cpsr_val = 0,
820+
.fn = vfp_support_entry,
803821
}};
804822

805823
static struct undef_hook vfp_support_hook = {

0 commit comments

Comments
 (0)