kern: return ExceptionType_UnalignedData on data abort caused by alignment fault

This commit is contained in:
Michael Scire 2024-03-28 02:52:32 -07:00 committed by SciresM
parent 6922eae3e7
commit 4fe139ea52

View file

@ -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;