hle: removed PARAM64 macro (this was incorrect), made several bug fixes accordingly for decoding U64 function parameters

master
bunnei 2014-05-28 21:20:00 +07:00
parent 46aef01d04
commit 9fd5d6c7d8
2 changed files with 2 additions and 3 deletions

@ -750,11 +750,11 @@ template<int func(void*, u32, u32, u32, u32, u32)> void WrapI_VUUUUU(){
}
template<int func(u32, s64)> void WrapI_US64() {
int retval = func(PARAM(0), PARAM64(1));
int retval = func(PARAM(0), ((PARAM(3) << 32) | PARAM(2)));
RETURN(retval);
}
template<int func(void*, void*, u32, u32, s64)> void WrapI_VVUUS64() {
int retval = func(Memory::GetPointer(PARAM(0)), Memory::GetPointer(PARAM(1)), PARAM(2), PARAM(3), PARAM(4));
int retval = func(Memory::GetPointer(PARAM(5)), Memory::GetPointer(PARAM(1)), PARAM(2), PARAM(3), ((PARAM(4) << 32) | PARAM(0)));
RETURN(retval);
}

@ -10,7 +10,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
#define PARAM(n) Core::g_app_core->GetReg(n)
#define PARAM64(n) (Core::g_app_core->GetReg(n) | ((u64)Core::g_app_core->GetReg(n + 1) << 32))
#define RETURN(n) Core::g_app_core->SetReg(0, n)
////////////////////////////////////////////////////////////////////////////////////////////////////