1
0
Fork 0
mirror of https://github.com/Atmosphere-NX/Atmosphere.git synced 2024-12-18 08:22:04 +00:00

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; type = ams::svc::ExceptionType_InstructionAbort;
break; break;
case EsrEc_DataAbortEl0: 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: default:
type = ams::svc::ExceptionType_DataAbort; type = ams::svc::ExceptionType_DataAbort;
break; break;