git: ffa5bf8b600a - main - Trap SVE instructions until we have SVE support

From: Andrew Turner <andrew_at_FreeBSD.org>
Date: Fri, 24 Jun 2022 13:59:48 UTC
The branch main has been updated by andrew:

URL: https://cgit.FreeBSD.org/src/commit/?id=ffa5bf8b600a77838be8fbf383382a2e7bafedc6

commit ffa5bf8b600a77838be8fbf383382a2e7bafedc6
Author:     Andrew Turner <andrew@FreeBSD.org>
AuthorDate: 2022-06-24 11:50:28 +0000
Commit:     Andrew Turner <andrew@FreeBSD.org>
CommitDate: 2022-06-24 13:51:18 +0000

    Trap SVE instructions until we have SVE support
    
    When running on hardware that supports SVE send the correct signal when
    an SVE instruction is run.
    
    Sponsored by:   The FreeBSD Foundation
---
 sys/arm64/arm64/trap.c     | 5 +++++
 sys/arm64/include/armreg.h | 1 +
 2 files changed, 6 insertions(+)

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 */