]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-120400 :Support Linux perf profile to see Python calls on RISC-V architecture...
authorixgbe00 <yangwang@iscas.ac.cn>
Wed, 12 Jun 2024 13:24:46 +0000 (21:24 +0800)
committerGitHub <noreply@github.com>
Wed, 12 Jun 2024 13:24:46 +0000 (14:24 +0100)
Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
Misc/NEWS.d/next/Core and Builtins/2024-06-05-06-26-04.gh-issue- [new file with mode: 0644]
Misc/NEWS.d/next/Core and Builtins/2024-06-12-12-29-45.gh-issue-120400.lZYHVS.rst [new file with mode: 0644]
Python/asm_trampoline.S
configure
configure.ac

diff --git a/Misc/NEWS.d/next/Core and Builtins/2024-06-05-06-26-04.gh-issue- b/Misc/NEWS.d/next/Core and Builtins/2024-06-05-06-26-04.gh-issue-
new file mode 100644 (file)
index 0000000..29f06d4
--- /dev/null
@@ -0,0 +1 @@
+Support Linux perf profiler to see Python calls on RISC-V architecture
diff --git a/Misc/NEWS.d/next/Core and Builtins/2024-06-12-12-29-45.gh-issue-120400.lZYHVS.rst b/Misc/NEWS.d/next/Core and Builtins/2024-06-12-12-29-45.gh-issue-120400.lZYHVS.rst
new file mode 100644 (file)
index 0000000..8c86d47
--- /dev/null
@@ -0,0 +1 @@
+Support Linux perf profiler to see Python calls on RISC-V architecture.
index 460707717df0032b2f2bdaa7c50a6cb464caa591..0a3265dfeee20445da5281b4e10007fb47ab0bff 100644 (file)
@@ -22,6 +22,14 @@ _Py_trampoline_func_start:
     blr     x3
     ldp     x29, x30, [sp], 16
     ret
+#endif
+#ifdef __riscv
+    addi    sp,sp,-16
+    sd      ra,8(sp)
+    jalr    a3
+    ld      ra,8(sp)
+    addi    sp,sp,16
+    jr      ra
 #endif
     .globl     _Py_trampoline_func_end
 _Py_trampoline_func_end:
index 8e605d31bb5eca05879c32e50cd4a1fd934689a5..4174633b51c30a5272305e420e66711bb9dd0aec 100755 (executable)
--- a/configure
+++ b/configure
@@ -13133,6 +13133,8 @@ case $PLATFORM_TRIPLET in #(
     perf_trampoline=yes ;; #(
   aarch64-linux-gnu) :
     perf_trampoline=yes ;; #(
+  riscv64-linux-gnu) :
+    perf_trampoline=yes ;; #(
   *) :
     perf_trampoline=no
  ;;
index 41023ab92bad81edd9e8aa576a88097438f9e8c8..d34ade389cf40cd9c643ade4ce7f4e62e7220eb2 100644 (file)
@@ -3641,6 +3641,7 @@ AC_MSG_CHECKING([perf trampoline])
 AS_CASE([$PLATFORM_TRIPLET],
   [x86_64-linux-gnu], [perf_trampoline=yes],
   [aarch64-linux-gnu], [perf_trampoline=yes],
+  [riscv64-linux-gnu], [perf_trampoline=yes],
   [perf_trampoline=no]
 )
 AC_MSG_RESULT([$perf_trampoline])