diff --git a/src/xenia/cpu/backend/x64/x64_emitter.cc b/src/xenia/cpu/backend/x64/x64_emitter.cc index a57cada36..6dc7fa2f6 100644 --- a/src/xenia/cpu/backend/x64/x64_emitter.cc +++ b/src/xenia/cpu/backend/x64/x64_emitter.cc @@ -497,8 +497,13 @@ void X64Emitter::CallExtern(const hir::Instr* instr, const Function* function) { auto thunk = backend()->guest_to_host_thunk(); mov(rax, reinterpret_cast(thunk)); mov(rcx, reinterpret_cast(builtin_function->handler())); +#if XE_PLATFORM_LINUX + mov(rbx, reinterpret_cast(builtin_function->arg0())); + mov(rdx, reinterpret_cast(builtin_function->arg1())); +#else mov(rdx, reinterpret_cast(builtin_function->arg0())); mov(r8, reinterpret_cast(builtin_function->arg1())); +#endif call(rax); // rax = host return }