namespace Ryujinx.Cpu.AppleHv.Arm
{
    enum ExceptionClass
    {
        Unknown = 0b000000,
        TrappedWfeWfiWfetWfit = 0b000001,
        TrappedMcrMrcCp15 = 0b000011,
        TrappedMcrrMrrcCp15 = 0b000100,
        TrappedMcrMrcCp14 = 0b000101,
        TrappedLdcStc = 0b000110,
        TrappedSveFpSimd = 0b000111,
        TrappedVmrs = 0b001000,
        TrappedPAuth = 0b001001,
        TrappedLd64bSt64bSt64bvSt64bv0 = 0b001010,
        TrappedMrrcCp14 = 0b001100,
        IllegalExecutionState = 0b001110,
        SvcAarch32 = 0b010001,
        HvcAarch32 = 0b010010,
        SmcAarch32 = 0b010011,
        SvcAarch64 = 0b010101,
        HvcAarch64 = 0b010110,
        SmcAarch64 = 0b010111,
        TrappedMsrMrsSystem = 0b011000,
        TrappedSve = 0b011001,
        TrappedEretEretaaEretab = 0b011010,
        PointerAuthenticationFailure = 0b011100,
        ImplementationDefinedEl3 = 0b011111,
        InstructionAbortLowerEl = 0b100000,
        InstructionAbortSameEl = 0b100001,
        PcAlignmentFault = 0b100010,
        DataAbortLowerEl = 0b100100,
        DataAbortSameEl = 0b100101,
        SpAlignmentFault = 0b100110,
        TrappedFpExceptionAarch32 = 0b101000,
        TrappedFpExceptionAarch64 = 0b101100,
        SErrorInterrupt = 0b101111,
        BreakpointLowerEl = 0b110000,
        BreakpointSameEl = 0b110001,
        SoftwareStepLowerEl = 0b110010,
        SoftwareStepSameEl = 0b110011,
        WatchpointLowerEl = 0b110100,
        WatchpointSameEl = 0b110101,
        BkptAarch32 = 0b111000,
        VectorCatchAarch32 = 0b111010,
        BrkAarch64 = 0b111100,
    }
}
