Update Marl to 13e0eb522

Changes:
    13e0eb5222 Untag memory used for stack

Commands:
    ./third_party/update-marl.sh

Bug: b/140546382
Change-Id: I8ec0845f57336cef5ba3b01f4f4f33d4944b01d4
diff --git a/third_party/marl/src/osfiber_aarch64.c b/third_party/marl/src/osfiber_aarch64.c
index cc61ae7..536fab9 100644
--- a/third_party/marl/src/osfiber_aarch64.c
+++ b/third_party/marl/src/osfiber_aarch64.c
@@ -14,6 +14,8 @@
 
 #if defined(__aarch64__)
 
+#include <stddef.h>
+
 #include "osfiber_asm_aarch64.h"
 
 #include "marl/export.h"
@@ -23,12 +25,23 @@
   target(arg);
 }
 
+// This is needed for HWSAan runtimes that don't have this commit:
+// https://reviews.llvm.org/D149228.
+__attribute__((weak)) void __hwasan_tag_memory(const volatile void *p,
+    unsigned char tag, size_t size);
+__attribute((weak)) void *__hwasan_tag_pointer(const volatile void *p,
+    unsigned char tag);
+
 MARL_EXPORT
 void marl_fiber_set_target(struct marl_fiber_context* ctx,
                            void* stack,
                            uint32_t stack_size,
                            void (*target)(void*),
                            void* arg) {
+  if (__hwasan_tag_memory && __hwasan_tag_pointer) {
+    stack = __hwasan_tag_pointer(stack, 0);
+    __hwasan_tag_memory(stack, 0, stack_size);
+  }
   uintptr_t* stack_top = (uintptr_t*)((uint8_t*)(stack) + stack_size);
   ctx->LR = (uintptr_t)&marl_fiber_trampoline;
   ctx->r0 = (uintptr_t)target;