summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorSepalani <sepalani@hotmail.fr>2020-08-28 20:29:05 +0400
committerSepalani <sepalani@hotmail.fr>2020-08-28 20:29:05 +0400
commit4c75b96254b56e95ff95bf43a9612d4cd710c553 (patch)
treecc147e8f52e446fa9042a3a1008f8e8467e29d0a /Source/Core
parent17ad2ac7195eb5a1da78d84d581c992e1d82275b (diff)
HLE: Improve naming
Replace 'function' with 'hook' when appropriate
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/HLE/HLE.cpp26
-rw-r--r--Source/Core/Core/HLE/HLE.h30
-rw-r--r--Source/Core/Core/PowerPC/CachedInterpreter/CachedInterpreter.cpp4
-rw-r--r--Source/Core/Core/PowerPC/Interpreter/Interpreter.cpp4
-rw-r--r--Source/Core/Core/PowerPC/Jit64/Jit.cpp8
-rw-r--r--Source/Core/Core/PowerPC/Jit64/Jit.h2
6 files changed, 37 insertions, 37 deletions
diff --git a/Source/Core/Core/HLE/HLE.cpp b/Source/Core/Core/HLE/HLE.cpp
index 7242018a63..7b35637c7e 100644
--- a/Source/Core/Core/HLE/HLE.cpp
+++ b/Source/Core/Core/HLE/HLE.cpp
@@ -21,19 +21,9 @@
namespace HLE
{
-using HookFunction = void (*)();
-
-// Map addresses to the HLE hook function id
+// Map addresses to the HLE hook index
static std::map<u32, u32> s_hooked_addresses;
-struct Hook
-{
- char name[128];
- HookFunction function;
- HookType type;
- HookFlag flags;
-};
-
// clang-format off
constexpr std::array<Hook, 23> os_patches{{
// Placeholder, os_patches[0] is the "non-existent function" index
@@ -148,16 +138,16 @@ void Reload()
PatchFunctions();
}
-void Execute(u32 current_pc, u32 instruction)
+void Execute(u32 current_pc, u32 hook_index)
{
- const unsigned int function_index = instruction & 0xFFFFF;
- if (function_index > 0 && function_index < os_patches.size())
+ hook_index &= 0xFFFFF;
+ if (hook_index > 0 && hook_index < os_patches.size())
{
- os_patches[function_index].function();
+ os_patches[hook_index].function();
}
else
{
- PanicAlert("HLE system tried to call an undefined HLE function %i.", function_index);
+ PanicAlert("HLE system tried to call an undefined HLE function %i.", hook_index);
}
}
@@ -178,12 +168,12 @@ u32 GetHookByFunctionAddress(u32 address)
return (symbol && symbol->address == address) ? index : 0;
}
-HookType GetFunctionTypeByIndex(u32 index)
+HookType GetHookTypeByIndex(u32 index)
{
return os_patches[index].type;
}
-HookFlag GetFunctionFlagsByIndex(u32 index)
+HookFlag GetHookFlagsByIndex(u32 index)
{
return os_patches[index].flags;
}
diff --git a/Source/Core/Core/HLE/HLE.h b/Source/Core/Core/HLE/HLE.h
index 5be7b983ec..a59e4a7a2b 100644
--- a/Source/Core/Core/HLE/HLE.h
+++ b/Source/Core/Core/HLE/HLE.h
@@ -10,6 +10,8 @@
namespace HLE
{
+using HookFunction = void (*)();
+
enum class HookType
{
Start, // Hook the beginning of the function and execute the function afterwards
@@ -24,6 +26,14 @@ enum class HookFlag
Fixed, // An arbitrary hook mapped to a fixed address instead of a symbol
};
+struct Hook
+{
+ char name[128];
+ HookFunction function;
+ HookType type;
+ HookFlag flags;
+};
+
void PatchFixedFunctions();
void PatchFunctions();
void Clear();
@@ -31,14 +41,14 @@ void Reload();
void Patch(u32 pc, std::string_view func_name);
u32 UnPatch(std::string_view patch_name);
-void Execute(u32 _CurrentPC, u32 _Instruction);
+void Execute(u32 current_pc, u32 hook_index);
-// Returns the HLE function index of the address
+// Returns the HLE hook index of the address
u32 GetHookByAddress(u32 address);
-// Returns the HLE function index if the address matches the function start
+// Returns the HLE hook index if the address matches the function start
u32 GetHookByFunctionAddress(u32 address);
-HookType GetFunctionTypeByIndex(u32 index);
-HookFlag GetFunctionFlagsByIndex(u32 index);
+HookType GetHookTypeByIndex(u32 index);
+HookFlag GetHookFlagsByIndex(u32 index);
bool IsEnabled(HookFlag flag);
@@ -56,18 +66,18 @@ bool IsEnabled(HookFlag flag);
template <typename FunctionObject>
bool ReplaceFunctionIfPossible(u32 address, FunctionObject fn)
{
- const u32 function = GetHookByFunctionAddress(address);
- if (function == 0)
+ const u32 hook_index = GetHookByFunctionAddress(address);
+ if (hook_index == 0)
return false;
- const HookType type = GetFunctionTypeByIndex(function);
+ const HookType type = GetHookTypeByIndex(hook_index);
if (type != HookType::Start && type != HookType::Replace)
return false;
- const HookFlag flags = GetFunctionFlagsByIndex(function);
+ const HookFlag flags = GetHookFlagsByIndex(hook_index);
if (!IsEnabled(flags))
return false;
- return fn(function, type);
+ return fn(hook_index, type);
}
} // namespace HLE
diff --git a/Source/Core/Core/PowerPC/CachedInterpreter/CachedInterpreter.cpp b/Source/Core/Core/PowerPC/CachedInterpreter/CachedInterpreter.cpp
index e2e4dd5a75..5d5036755d 100644
--- a/Source/Core/Core/PowerPC/CachedInterpreter/CachedInterpreter.cpp
+++ b/Source/Core/Core/PowerPC/CachedInterpreter/CachedInterpreter.cpp
@@ -192,9 +192,9 @@ static bool CheckIdle(u32 idle_pc)
bool CachedInterpreter::HandleFunctionHooking(u32 address)
{
- return HLE::ReplaceFunctionIfPossible(address, [&](u32 function, HLE::HookType type) {
+ return HLE::ReplaceFunctionIfPossible(address, [&](u32 hook_index, HLE::HookType type) {
m_code.emplace_back(WritePC, address);
- m_code.emplace_back(Interpreter::HLEFunction, function);
+ m_code.emplace_back(Interpreter::HLEFunction, hook_index);
if (type != HLE::HookType::Replace)
return false;
diff --git a/Source/Core/Core/PowerPC/Interpreter/Interpreter.cpp b/Source/Core/Core/PowerPC/Interpreter/Interpreter.cpp
index 2ab5ce1027..adb7055ab4 100644
--- a/Source/Core/Core/PowerPC/Interpreter/Interpreter.cpp
+++ b/Source/Core/Core/PowerPC/Interpreter/Interpreter.cpp
@@ -141,8 +141,8 @@ static void Trace(UGeckoInstruction& inst)
bool Interpreter::HandleFunctionHooking(u32 address)
{
- return HLE::ReplaceFunctionIfPossible(address, [](u32 function, HLE::HookType type) {
- HLEFunction(function);
+ return HLE::ReplaceFunctionIfPossible(address, [](u32 hook_index, HLE::HookType type) {
+ HLEFunction(hook_index);
return type != HLE::HookType::Start;
});
}
diff --git a/Source/Core/Core/PowerPC/Jit64/Jit.cpp b/Source/Core/Core/PowerPC/Jit64/Jit.cpp
index 827c56dea5..36cbb946b0 100644
--- a/Source/Core/Core/PowerPC/Jit64/Jit.cpp
+++ b/Source/Core/Core/PowerPC/Jit64/Jit.cpp
@@ -433,12 +433,12 @@ void Jit64::FallBackToInterpreter(UGeckoInstruction inst)
}
}
-void Jit64::HLEFunction(UGeckoInstruction _inst)
+void Jit64::HLEFunction(u32 hook_index)
{
gpr.Flush();
fpr.Flush();
ABI_PushRegistersAndAdjustStack({}, 0);
- ABI_CallFunctionCC(HLE::Execute, js.compilerPC, _inst.hex);
+ ABI_CallFunctionCC(HLE::Execute, js.compilerPC, hook_index);
ABI_PopRegistersAndAdjustStack({}, 0);
}
@@ -1165,8 +1165,8 @@ void Jit64::IntializeSpeculativeConstants()
bool Jit64::HandleFunctionHooking(u32 address)
{
- return HLE::ReplaceFunctionIfPossible(address, [&](u32 function, HLE::HookType type) {
- HLEFunction(function);
+ return HLE::ReplaceFunctionIfPossible(address, [&](u32 hook_index, HLE::HookType type) {
+ HLEFunction(hook_index);
if (type != HLE::HookType::Replace)
return false;
diff --git a/Source/Core/Core/PowerPC/Jit64/Jit.h b/Source/Core/Core/PowerPC/Jit64/Jit.h
index 33263547da..35d3df8947 100644
--- a/Source/Core/Core/PowerPC/Jit64/Jit.h
+++ b/Source/Core/Core/PowerPC/Jit64/Jit.h
@@ -129,7 +129,7 @@ public:
using Instruction = void (Jit64::*)(UGeckoInstruction instCode);
void FallBackToInterpreter(UGeckoInstruction _inst);
void DoNothing(UGeckoInstruction _inst);
- void HLEFunction(UGeckoInstruction _inst);
+ void HLEFunction(u32 hook_index);
void DynaRunTable4(UGeckoInstruction inst);
void DynaRunTable19(UGeckoInstruction inst);