kern: return ExceptionType_UnalignedData on data abort caused by alignment fault

This commit is contained in:
Michael Scire authored and SciresM committed 2024-03-29 02:41:14 -07:00
1 parent 6922eae3e7
commit 4fe139ea52
1 file changed
+7
@@ -223,6 +223,13 @@ namespace ams::kern::arch::arm64 {
type = ams::svc::ExceptionType_InstructionAbort;
break;
case EsrEc_DataAbortEl0:
/* If esr.IFSC is "Alignment Fault", return UnalignedData instead of DataAbort. */
if ((esr & 0x3F) == 0b100001) {
type = ams::svc::ExceptionType_UnalignedData;
} else {
type = ams::svc::ExceptionType_DataAbort;
}
break;
default:
type = ams::svc::ExceptionType_DataAbort;
break;