[OpenMP][AArch64] Fix frame pointer save in microtask (#165313)
When OMPT is enabled, the stack pointer was not saved to frame pointer
register immediately after storing the frame pointer to the stack.
Therefore the frame pointers did not constitute a proper chain.
Fixes [#163352](https://github.com/llvm/llvm-project/issues/163352)
GitOrigin-RevId: 77c1db47efb3cbc37b59b4be8eaa9ebaecedf360
diff --git a/runtime/src/z_Linux_asm.S b/runtime/src/z_Linux_asm.S
index 684c7e2..12fea67 100644
--- a/runtime/src/z_Linux_asm.S
+++ b/runtime/src/z_Linux_asm.S
@@ -1358,10 +1358,10 @@
PROC __kmp_invoke_microtask
PACBTI_C
- stp x29, x30, [sp, #-16]!
# if OMPT_SUPPORT
stp x19, x20, [sp, #-16]!
# endif
+ stp x29, x30, [sp, #-16]!
mov x29, sp
orr w9, wzr, #1
@@ -1415,11 +1415,11 @@
blr x8
orr w0, wzr, #1
mov sp, x29
+ ldp x29, x30, [sp], #16
# if OMPT_SUPPORT
str xzr, [x19]
ldp x19, x20, [sp], #16
# endif
- ldp x29, x30, [sp], #16
PACBTI_RET
ret