diff --git a/sys/arm64/arm64/trap.c b/sys/arm64/arm64/trap.c index 5bf6c3d1a81d..21843694f48c 100644 --- a/sys/arm64/arm64/trap.c +++ b/sys/arm64/arm64/trap.c @@ -593,6 +593,11 @@ do_el0_sync(struct thread *td, struct trapframe *frame) panic("VFP exception in userland"); #endif break; + case EXCP_SVE: + call_trapsignal(td, SIGILL, ILL_ILLTRP, (void *)frame->tf_elr, + exception); + userret(td, frame); + break; case EXCP_SVC32: case EXCP_SVC64: svc_handler(td, frame); diff --git a/sys/arm64/include/armreg.h b/sys/arm64/include/armreg.h index d7e026bfccbb..c795db995ecf 100644 --- a/sys/arm64/include/armreg.h +++ b/sys/arm64/include/armreg.h @@ -387,6 +387,7 @@ #define EXCP_SVC64 0x15 /* SVC trap for AArch64 */ #define EXCP_HVC 0x16 /* HVC trap */ #define EXCP_MSR 0x18 /* MSR/MRS trap */ +#define EXCP_SVE 0x19 /* SVE trap */ #define EXCP_FPAC 0x1c /* Faulting PAC trap */ #define EXCP_INSN_ABORT_L 0x20 /* Instruction abort, from lower EL */ #define EXCP_INSN_ABORT 0x21 /* Instruction abort, from same EL */