aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcHandler.cs
diff options
context:
space:
mode:
authorThog <me@thog.eu>2020-01-13 03:04:28 +0100
committerjduncanator <1518948+jduncanator@users.noreply.github.com>2020-01-13 13:04:28 +1100
commit892df335e6f633a5bcc2ce265749e15365ea2549 (patch)
tree701f9033d7a56a4fa75b1ac5e2900cb26f9de487 /Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcHandler.cs
parent5facc0c07f8a3f6fd0f39229044fe120501162a7 (diff)
Rework SVC handling (#883)
* Rework SVC handling Prepare for 32 bits support. * QueryMemory64 x1 is an output * Pregenerate all SVC handler Also clean up + 32 bits code path * Address gdk's comments * Simplify local setter loop * Address jd's comments
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcHandler.cs')
-rw-r--r--Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcHandler.cs6
1 files changed, 3 insertions, 3 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcHandler.cs b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcHandler.cs
index 0bf5e5fa..d5698e2b 100644
--- a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcHandler.cs
+++ b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcHandler.cs
@@ -20,15 +20,15 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
public void SvcCall(object sender, InstExceptionEventArgs e)
{
- Action<SvcHandler, ExecutionContext> svcFunc = SvcTable.GetSvcFunc(e.Id);
+ ExecutionContext context = (ExecutionContext)sender;
+
+ Action<SvcHandler, ExecutionContext> svcFunc = context.IsAarch32 ? SvcTable.SvcTable32[e.Id] : SvcTable.SvcTable64[e.Id];
if (svcFunc == null)
{
throw new NotImplementedException($"SVC 0x{e.Id:X4} is not implemented.");
}
- ExecutionContext context = (ExecutionContext)sender;
-
svcFunc(this, context);
PostSvcHandler();