[AArch64][compiler-rt] Fix PAC instructions for older compilers
authorOliver Stannard <oliver.stannard@linaro.org>
Thu, 11 Mar 2021 09:16:30 +0000 (09:16 +0000)
committerOliver Stannard <oliver.stannard@linaro.org>
Thu, 11 Mar 2021 09:21:05 +0000 (09:21 +0000)
The paciasp and autiasp instructions are only accepted by recent
compilers, but have the same encoding as hint instructions, so we can
use the hint menmonic to support older compilers.

compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S

index 8a96e2d..72e4827 100644 (file)
@@ -10,7 +10,7 @@ ASM_HIDDEN(COMMON_INTERCEPTOR_SPILL_AREA)
 ASM_TYPE_FUNCTION(ASM_WRAPPER_NAME(vfork))
 ASM_WRAPPER_NAME(vfork):
         // Save x30 in the off-stack spill area.
-        paciasp
+        hint    #25 // paciasp
         stp     xzr, x30, [sp, #-16]!
         bl      COMMON_INTERCEPTOR_SPILL_AREA
         ldp     xzr, x30, [sp], 16
@@ -35,7 +35,7 @@ ASM_WRAPPER_NAME(vfork):
         bl     COMMON_INTERCEPTOR_SPILL_AREA
         ldr    x30, [x0]
         ldp    x0, xzr, [sp], 16
-        autiasp
+        hint   #29 // autiasp
 
         ret
 ASM_SIZE(vfork)