From 5cf2b7350e0677116a7c4e94f14dcba302b420eb Mon Sep 17 00:00:00 2001 From: Hugo Melder Date: Thu, 4 Jan 2024 09:38:17 +0100 Subject: [PATCH] AArch64 objc_msgSend: Fix argument corruption due to invalid stack pointer offset (#266) * Fix argument corruption due to invalid sp offset * Bump runtime version --- Test/CMakeLists.txt | 4 ++-- objc_msgSend.aarch64.S | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Test/CMakeLists.txt b/Test/CMakeLists.txt index 3570ef0..73e72b8 100644 --- a/Test/CMakeLists.txt +++ b/Test/CMakeLists.txt @@ -134,9 +134,9 @@ function(addtest_flags TEST_NAME FLAGS TEST_SOURCE) endfunction(addtest_flags) function(addtest_variants TEST TEST_SOURCE LEGACY) - addtest_flags(${TEST} "-O0 -fobjc-runtime=gnustep-2.0 -UNDEBUG -DGS_RUNTIME_V2" "${TEST_SOURCE}") + addtest_flags(${TEST} "-O0 -fobjc-runtime=gnustep-2.2 -UNDEBUG -DGS_RUNTIME_V2" "${TEST_SOURCE}") target_sources(${TEST} PRIVATE $) - addtest_flags("${TEST}_optimised" "-O3 -fobjc-runtime=gnustep-2.0 -UNDEBUG -DGS_RUNTIME_V2" "${TEST_SOURCE}") + addtest_flags("${TEST}_optimised" "-O3 -fobjc-runtime=gnustep-2.2 -UNDEBUG -DGS_RUNTIME_V2" "${TEST_SOURCE}") target_sources("${TEST}_optimised" PRIVATE $) # -fobjc-arc is not supported on platforms using the legacy runtime diff --git a/objc_msgSend.aarch64.S b/objc_msgSend.aarch64.S index 25cbfd6..e9e30ba 100644 --- a/objc_msgSend.aarch64.S +++ b/objc_msgSend.aarch64.S @@ -169,7 +169,7 @@ CDECL(objc_msgSend_stret): EH_NOP ldp x2, x3, [sp, #32] EH_NOP - ldp x4, x5, [sp, #64] + ldp x4, x5, [sp, #48] EH_NOP ldp x6, x7, [sp, #64] EH_NOP