mirror of
https://git.743378673.xyz/MeloNX/MeloNX.git
synced 2025-06-30 20:36:25 +02:00
Rewrite NceAsmTable using dynamic generation instead to be more robust, fix bugs
This commit is contained in:
parent
c694d5774d
commit
8e23eb88bb
19 changed files with 2335 additions and 955 deletions
|
@ -70,7 +70,7 @@ namespace Ryujinx.Cpu.Signal
|
|||
config = new SignalHandlerConfig();
|
||||
}
|
||||
|
||||
public static void InitializeSignalHandler(ulong pageSize, Func<IntPtr, IntPtr, IntPtr> customSignalHandlerFactory = null, int userSignal = -1)
|
||||
public static void InitializeSignalHandler(ulong pageSize, Func<IntPtr, IntPtr, IntPtr> customSignalHandlerFactory = null)
|
||||
{
|
||||
if (_initialized)
|
||||
{
|
||||
|
@ -107,14 +107,14 @@ namespace Ryujinx.Cpu.Signal
|
|||
|
||||
if (Ryujinx.Common.SystemInfo.SystemInfo.IsAndroid())
|
||||
{
|
||||
var old = AndroidSignalHandlerRegistration.RegisterExceptionHandler(_signalHandlerPtr, userSignal);
|
||||
var old = AndroidSignalHandlerRegistration.RegisterExceptionHandler(_signalHandlerPtr);
|
||||
|
||||
config.UnixOldSigaction = (nuint)(ulong)old.sa_handler;
|
||||
config.UnixOldSigaction3Arg = old.sa_flags & 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
var old = UnixSignalHandlerRegistration.RegisterExceptionHandler(_signalHandlerPtr, userSignal);
|
||||
var old = UnixSignalHandlerRegistration.RegisterExceptionHandler(_signalHandlerPtr);
|
||||
|
||||
config.UnixOldSigaction = (nuint)(ulong)old.sa_handler;
|
||||
config.UnixOldSigaction3Arg = old.sa_flags & 4;
|
||||
|
@ -139,6 +139,21 @@ namespace Ryujinx.Cpu.Signal
|
|||
}
|
||||
}
|
||||
|
||||
public static void InstallUnixAlternateStackForCurrentThread(IntPtr stackPtr, ulong stackSize)
|
||||
{
|
||||
UnixSignalHandlerRegistration.RegisterAlternateStack(stackPtr, stackSize);
|
||||
}
|
||||
|
||||
public static void UninstallUnixAlternateStackForCurrentThread()
|
||||
{
|
||||
UnixSignalHandlerRegistration.UnregisterAlternateStack();
|
||||
}
|
||||
|
||||
public static void InstallUnixSignalHandler(int sigNum, IntPtr action)
|
||||
{
|
||||
UnixSignalHandlerRegistration.RegisterExceptionHandler(sigNum, action);
|
||||
}
|
||||
|
||||
private static IntPtr MapCode(ReadOnlySpan<byte> code)
|
||||
{
|
||||
Debug.Assert(_codeBlock == null);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue