diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/arm64/arch_arm64.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/arm64/arch_arm64.cpp b/arch/arm64/arch_arm64.cpp index 7ca02a7e..5faf37e5 100644 --- a/arch/arm64/arch_arm64.cpp +++ b/arch/arm64/arch_arm64.cpp @@ -2692,15 +2692,15 @@ class WindowsArm64SystemCallConvention : public CallingConvention virtual bool IsEligibleForHeuristics() override { return false; } }; -class MacosArm64SystemCallConvention : public CallingConvention +class AppleArm64SystemCallConvention : public CallingConvention { public: - MacosArm64SystemCallConvention(Architecture* arch) : CallingConvention(arch, "macos-syscall") {} + AppleArm64SystemCallConvention(Architecture* arch) : CallingConvention(arch, "apple-syscall") {} virtual vector<uint32_t> GetIntegerArgumentRegisters() override { - return vector<uint32_t> {REG_X16, REG_X0, REG_X1, REG_X2, REG_X3, REG_X4, REG_X5}; + return vector<uint32_t> {REG_X16, REG_X0, REG_X1, REG_X2, REG_X3, REG_X4, REG_X5, REG_X6, REG_X7, REG_X8}; } @@ -3500,6 +3500,9 @@ extern "C" conv = new WindowsArm64SystemCallConvention(arm64); arm64->RegisterCallingConvention(conv); + conv = new AppleArm64SystemCallConvention(arm64); + arm64->RegisterCallingConvention(conv); + conv = new AppleArm64CallingConvention(arm64); arm64->RegisterCallingConvention(conv); |
