[clang] [compiler-rt] [llvm] [XRay][RISCV] RISCV support for XRay (PR #117368)
Craig Topper via cfe-commits
cfe-commits at lists.llvm.org
Wed Dec 4 11:36:27 PST 2024
================
@@ -0,0 +1,96 @@
+//===-- xray_trampoline_riscv_common.s --------------------------*- ASM -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// This file is a part of XRay, a dynamic runtime instrumentation system.
+//
+// This implements the trampolines code shared between riscv32 and riscv64.
+//
+//===----------------------------------------------------------------------===//
+
+#include "../builtins/assembly.h"
+
+ .text
+ .p2align 2
+ .global ASM_SYMBOL(__xray_FunctionEntry)
+ ASM_TYPE_FUNCTION(__xray_FunctionEntry)
+ASM_SYMBOL(__xray_FunctionEntry):
+ CFI_STARTPROC
+ SAVE_ARG_REGISTERS
+
+ // Load the handler function pointer into a2
+ la a2, ASM_SYMBOL(_ZN6__xray19XRayPatchedFunctionE)
+ LOAD_XLEN a2, 0(a2)
+
+ // Handler address will be null if it is not set
+ beq a2, x0, 1f
+
+ // If we reach here, we are tracing an event
+ // a0 already contains function id
+ // a1 = 0 means we are tracing an entry event
+ mv a1, x0
----------------
topperc wrote:
Use `li a1, 0`
https://github.com/llvm/llvm-project/pull/117368
More information about the cfe-commits
mailing list