From 4c1c8712f0e0a700fc7af5cf06f3425826ba9a2f Mon Sep 17 00:00:00 2001 From: mostobriv Date: Wed, 27 Aug 2025 13:42:40 +0700 Subject: Add Apple arm64 syscall calling convention to Apple's platforms --- arch/arm64/arch_arm64.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'arch/arm64/arch_arm64.cpp') 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 GetIntegerArgumentRegisters() override { - return vector {REG_X16, REG_X0, REG_X1, REG_X2, REG_X3, REG_X4, REG_X5}; + return vector {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); -- cgit v1.3.1