git: ffa5bf8b600a - main - Trap SVE instructions until we have SVE support
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
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 */