Merge pull request #223 from FEX-Emu/skmp/unhandled-syscall-show-number

x64/syscalls: Change HandleSyscall/Unimplemented Syscall to include syscall number
This commit is contained in:
Ryan Houdek authored and GitHub committed 2020-05-31 14:39:47 -07:00
commit efa26b3bf4
1 file changed
+5 -3
+5 -3
View File
@@ -20,8 +20,8 @@
#include "LogManager.h"
namespace {
uint64_t Unimplemented(FEXCore::Core::InternalThreadState *Thread) {
ERROR_AND_DIE("Unhandled system call");
uint64_t Unimplemented(FEXCore::Core::InternalThreadState *Thread, uint64_t SyscallNumber) {
ERROR_AND_DIE("Unhandled system call: %d", SyscallNumber);
return -1;
}
@@ -750,7 +750,7 @@ void x64SyscallHandler::RegisterSyscallHandlers() {
// Clear all definitions
for (auto &Def : Definitions) {
Def.NumArgs = 0;
Def.NumArgs = 255;
Def.Ptr = cvt(&Unimplemented);
}
@@ -947,6 +947,8 @@ uint64_t x64SyscallHandler::HandleSyscall(FEXCore::Core::InternalThreadState *Th
case 4: return std::invoke(Def.Ptr4, Thread, Args->Argument[1], Args->Argument[2], Args->Argument[3], Args->Argument[4]);
case 5: return std::invoke(Def.Ptr5, Thread, Args->Argument[1], Args->Argument[2], Args->Argument[3], Args->Argument[4], Args->Argument[5]);
case 6: return std::invoke(Def.Ptr6, Thread, Args->Argument[1], Args->Argument[2], Args->Argument[3], Args->Argument[4], Args->Argument[5], Args->Argument[6]);
// for missing syscalls
case 255: return std::invoke(Def.Ptr1, Thread, Args->Argument[0]);
default: break;
}