[compiler-rt] [hwasan] Fixing relocation R_AARCH64_CONDBR19 out of range (PR #67354)

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 25 10:42:15 PDT 2023


https://github.com/vitalybuka created https://github.com/llvm/llvm-project/pull/67354

__hwasan_tag_mismatch is here for compartibility with vert old builds,
so additional jump is not a concern.


>From ba031199739d218742a2b496c4c937d310b4284b Mon Sep 17 00:00:00 2001
From: Vitaly Buka <vitalybuka at google.com>
Date: Sun, 24 Sep 2023 23:48:26 -0700
Subject: [PATCH] [hwasan] Fixing relocation R_AARCH64_CONDBR19 out of range

__hwasan_tag_mismatch is here for compartibility with vert old builds,
so additional jump is not a concern.
---
 compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S b/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S
index bcb0df42019029d..a472f5772b83ce6 100644
--- a/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S
+++ b/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S
@@ -89,22 +89,26 @@ __hwasan_tag_mismatch:
   ubfx x16, x0, #4, #52
   ldrb w16, [x9, x16]
   cmp w16, #0xf
-  b.hi __hwasan_tag_mismatch_v2
+  b.hi mismatch
   cmp w16, w17
-  b.lo __hwasan_tag_mismatch_v2
+  b.lo mismatch
 
   // Load the real tag from the last byte of the granule and compare against
   // the pointer tag.
   orr x16, x0, #0xf
   ldrb w16, [x16]
   cmp x16, x0, lsr #56
-  b.ne __hwasan_tag_mismatch_v2
+  b.ne mismatch
 
   // Restore x0, x1 and sp to their values from before the __hwasan_tag_mismatch
   // call and resume execution.
   ldp x0, x1, [sp], #256
   ret
 
+mismatch:
+  b __hwasan_tag_mismatch_v2
+
+
 .global __hwasan_tag_mismatch_v2
 .type __hwasan_tag_mismatch_v2, %function
 __hwasan_tag_mismatch_v2:



More information about the llvm-commits mailing list