diff options
author | gdkchan <gab.dark.100@gmail.com> | 2019-01-24 23:59:53 -0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-24 23:59:53 -0200 |
commit | 36b9ab0e48b6893c057a954e1ef3181b452add1c (patch) | |
tree | 16a4ae56019b55d0cb61f1aa105481933ada733e /Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs | |
parent | 72157e03eb09d4fb5d6d004efc2d13d3194e8c90 (diff) |
Add ARM32 support on the translator (#561)
* Remove ARM32 interpreter and add ARM32 support on the translator
* Nits.
* Rename Cond -> Condition
* Align code again
* Rename Data to Alu
* Enable ARM32 support and handle undefined instructions
* Use the IsThumb method to check if its a thumb opcode
* Remove another 32-bits check
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs')
-rw-r--r-- | Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs b/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs index 855f3a18..fd473014 100644 --- a/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs +++ b/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs @@ -3,6 +3,7 @@ using ChocolArm64.Events; using ChocolArm64.Memory; using Ryujinx.Common; using Ryujinx.Common.Logging; +using Ryujinx.HLE.Exceptions; using Ryujinx.HLE.HOS.Kernel.Common; using Ryujinx.HLE.HOS.Kernel.Memory; using Ryujinx.HLE.HOS.Kernel.SupervisorCall; @@ -797,6 +798,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process { context.ThreadState.Interrupt += InterruptHandler; context.ThreadState.SvcCall += _svcHandler.SvcCall; + context.ThreadState.Undefined += UndefinedInstructionHandler; } private void InterruptHandler(object sender, EventArgs e) @@ -1021,5 +1023,10 @@ namespace Ryujinx.HLE.HOS.Kernel.Process { Logger.PrintInfo(LogClass.Cpu, $"Executing at 0x{e.Position:X16}."); } + + private void UndefinedInstructionHandler(object sender, InstUndefinedEventArgs e) + { + throw new UndefinedInstructionException(e.Position, e.RawOpCode); + } } }
\ No newline at end of file |