[compiler-rt] 59e1c6c - Revert "[compiler-rt] Implement `DumpAllRegisters` for arm-linux and aarch64-linux (#99613)"
Mitch Phillips via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 24 07:46:57 PDT 2024
Author: Mitch Phillips
Date: 2024-07-24T16:46:34+02:00
New Revision: 59e1c6cd63eb9287df6516f9a5ae564075e9c218
URL: https://github.com/llvm/llvm-project/commit/59e1c6cd63eb9287df6516f9a5ae564075e9c218
DIFF: https://github.com/llvm/llvm-project/commit/59e1c6cd63eb9287df6516f9a5ae564075e9c218.diff
LOG: Revert "[compiler-rt] Implement `DumpAllRegisters` for arm-linux and aarch64-linux (#99613)"
This reverts commit ef1c70d26b7e84a6f47c0c6a868b769935b2b008.
Unfortunately broke the sanitizer buildbot(s), and the fix-forward
didn't work. More details in
https://github.com/llvm/llvm-project/pull/99613
Added:
Modified:
compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
Removed:
compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_aarch64.cpp
compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_arm.cpp
################################################################################
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
index bc2cb247f2a8a..483a1042a6238 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
@@ -2172,118 +2172,15 @@ static const char *RegNumToRegName(int reg) {
return "ebp";
case REG_ESP:
return "esp";
-# elif defined(__arm__)
-# define REG_STR(reg) #reg
-# define MAKE_CASE(N) \
- case REG_R##N: \
- return REG_STR(r##N)
- MAKE_CASE(0);
- MAKE_CASE(1);
- MAKE_CASE(2);
- MAKE_CASE(3);
- MAKE_CASE(4);
- MAKE_CASE(5);
- MAKE_CASE(6);
- MAKE_CASE(7);
- MAKE_CASE(8);
- MAKE_CASE(9);
- MAKE_CASE(10);
- MAKE_CASE(11);
- MAKE_CASE(12);
- case REG_R13:
- return "sp";
- case REG_R14:
- return "lr";
- case REG_R15:
- return "pc";
-# elif defined(__aarch64__)
-# define REG_STR(reg) #reg
-# define MAKE_CASE(N) \
- case N: \
- return REG_STR(x##N)
- MAKE_CASE(0);
- MAKE_CASE(1);
- MAKE_CASE(2);
- MAKE_CASE(3);
- MAKE_CASE(4);
- MAKE_CASE(5);
- MAKE_CASE(6);
- MAKE_CASE(7);
- MAKE_CASE(8);
- MAKE_CASE(9);
- MAKE_CASE(10);
- MAKE_CASE(11);
- MAKE_CASE(12);
- MAKE_CASE(13);
- MAKE_CASE(14);
- MAKE_CASE(15);
- MAKE_CASE(16);
- MAKE_CASE(17);
- MAKE_CASE(18);
- MAKE_CASE(19);
- MAKE_CASE(20);
- MAKE_CASE(21);
- MAKE_CASE(22);
- MAKE_CASE(23);
- MAKE_CASE(24);
- MAKE_CASE(25);
- MAKE_CASE(26);
- MAKE_CASE(27);
- MAKE_CASE(28);
- case 29:
- return "fp";
- case 30:
- return "lr";
- case 31:
- return "sp";
# endif
+# endif
default:
return NULL;
}
return NULL;
}
-# if SANITIZER_LINUX && (defined(__arm__) || defined(__aarch64__))
-static uptr GetArmRegister(ucontext_t *ctx, int RegNum) {
- switch (RegNum) {
-# if defined(__arm__)
-# define MAKE_CASE(N) \
- case REG_R##N: \
- return ctx->uc_mcontext.arm_r##N
- MAKE_CASE(0);
- MAKE_CASE(1);
- MAKE_CASE(2);
- MAKE_CASE(3);
- MAKE_CASE(4);
- MAKE_CASE(5);
- MAKE_CASE(6);
- MAKE_CASE(7);
- MAKE_CASE(8);
- MAKE_CASE(9);
- MAKE_CASE(10);
- case REG_R11:
- return ctx->uc_mcontext.arm_fp;
- case REG_R12:
- return ctx->uc_mcontext.arm_ip;
- case REG_R13:
- return ctx->uc_mcontext.arm_sp;
- case REG_R14:
- return ctx->uc_mcontext.arm_lr;
- case REG_R15:
- return ctx->uc_mcontext.arm_pc;
-# elif defined(__aarch64__)
- case 0 ... 30:
- return ctx->uc_mcontext.regs[RegNum];
- case 31:
- return ctx->uc_mcontext.sp;
-# endif
- default:
- return 0;
- }
- return 0;
-}
-# endif // SANITIZER_LINUX && (defined(__arm__) || defined(__aarch64__))
-
+# if SANITIZER_LINUX
UNUSED
static void DumpSingleReg(ucontext_t *ctx, int RegNum) {
const char *RegName = RegNumToRegName(RegNum);
@@ -2292,12 +2189,6 @@ static void DumpSingleReg(ucontext_t *ctx, int RegNum) {
RegName, ctx->uc_mcontext.gregs[RegNum]);
# elif defined(__i386__)
Printf("%s = 0x%08x ", RegName, ctx->uc_mcontext.gregs[RegNum]);
-# elif defined(__arm__)
- Printf("%s%s = 0x%08zx ", internal_strlen(RegName) == 2 ? " " : "", RegName,
- GetArmRegister(ctx, RegNum));
-# elif defined(__aarch64__)
- Printf("%s%s = 0x%016zx ", internal_strlen(RegName) == 2 ? " " : "", RegName,
- GetArmRegister(ctx, RegNum));
# else
(void)RegName;
# endif
@@ -2345,35 +2236,6 @@ void SignalContext::DumpAllRegisters(void *context) {
DumpSingleReg(ucontext, REG_EBP);
DumpSingleReg(ucontext, REG_ESP);
Printf("\n");
-# elif defined(__arm__)
- Report("Register values:\n");
- DumpSingleReg(ucontext, REG_R0);
- DumpSingleReg(ucontext, REG_R1);
- DumpSingleReg(ucontext, REG_R2);
- DumpSingleReg(ucontext, REG_R3);
- Printf("\n");
- DumpSingleReg(ucontext, REG_R4);
- DumpSingleReg(ucontext, REG_R5);
- DumpSingleReg(ucontext, REG_R6);
- DumpSingleReg(ucontext, REG_R7);
- Printf("\n");
- DumpSingleReg(ucontext, REG_R8);
- DumpSingleReg(ucontext, REG_R9);
- DumpSingleReg(ucontext, REG_R10);
- DumpSingleReg(ucontext, REG_R11);
- Printf("\n");
- DumpSingleReg(ucontext, REG_R12);
- DumpSingleReg(ucontext, REG_R13);
- DumpSingleReg(ucontext, REG_R14);
- DumpSingleReg(ucontext, REG_R15);
- Printf("\n");
-# elif defined(__aarch64__)
- Report("Register values:\n");
- for (int i = 0; i <= 31; ++i) {
- DumpSingleReg(ucontext, i);
- if (i % 4 == 3)
- Printf("\n");
- }
# else
(void)ucontext;
# endif
diff --git a/compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_aarch64.cpp b/compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_aarch64.cpp
deleted file mode 100644
index e01b826c86b8a..0000000000000
--- a/compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_aarch64.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-// Check that sanitizer prints registers dump_registers on dump_registers=1
-// RUN: %clangxx %s -o %t
-// RUN: %env_tool_opts=dump_registers=0 not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-NODUMP
-// RUN: not %run %t 2>&1 | FileCheck %s --strict-whitespace --check-prefix=CHECK-DUMP
-//
-// REQUIRES: aarch64-target-arch
-
-#include <signal.h>
-
-int main() {
- raise(SIGSEGV);
- // CHECK-DUMP: Register values
- // CHECK-DUMP-NEXT: x0 = {{0x[0-9a-f]+}} x1 = {{0x[0-9a-f]+}} x2 = {{0x[0-9a-f]+}} x3 = {{0x[0-9a-f]+}}
- // CHECK-DUMP-NEXT: x4 = {{0x[0-9a-f]+}} x5 = {{0x[0-9a-f]+}} x6 = {{0x[0-9a-f]+}} x7 = {{0x[0-9a-f]+}}
- // CHECK-DUMP-NEXT: x8 = {{0x[0-9a-f]+}} x9 = {{0x[0-9a-f]+}} x10 = {{0x[0-9a-f]+}} x11 = {{0x[0-9a-f]+}}
- // CHECK-DUMP-NEXT:x12 = {{0x[0-9a-f]+}} x13 = {{0x[0-9a-f]+}} x14 = {{0x[0-9a-f]+}} x15 = {{0x[0-9a-f]+}}
- // CHECK-DUMP-NEXT:x16 = {{0x[0-9a-f]+}} x17 = {{0x[0-9a-f]+}} x18 = {{0x[0-9a-f]+}} x19 = {{0x[0-9a-f]+}}
- // CHECK-DUMP-NEXT:x20 = {{0x[0-9a-f]+}} x21 = {{0x[0-9a-f]+}} x22 = {{0x[0-9a-f]+}} x23 = {{0x[0-9a-f]+}}
- // CHECK-DUMP-NEXT:x24 = {{0x[0-9a-f]+}} x25 = {{0x[0-9a-f]+}} x26 = {{0x[0-9a-f]+}} x27 = {{0x[0-9a-f]+}}
- // CHECK-DUMP-NEXT:x28 = {{0x[0-9a-f]+}} fp = {{0x[0-9a-f]+}} lr = {{0x[0-9a-f]+}} sp = {{0x[0-9a-f]+}}
- // CHECK-NODUMP-NOT: Register values
- return 0;
-}
diff --git a/compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_arm.cpp b/compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_arm.cpp
deleted file mode 100644
index e17dbf196227b..0000000000000
--- a/compiler-rt/test/sanitizer_common/TestCases/Linux/dump_registers_arm.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// Check that sanitizer prints registers dump_registers on dump_registers=1
-// RUN: %clangxx %s -o %t
-// RUN: %env_tool_opts=dump_registers=0 not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-NODUMP
-// RUN: not %run %t 2>&1 | FileCheck %s --strict-whitespace --check-prefix=CHECK-DUMP
-//
-// REQUIRES: arm-target-arch
-
-#include <signal.h>
-
-int main() {
- raise(SIGSEGV);
- // CHECK-DUMP: Register values
- // CHECK-DUMP-NEXT: r0 = {{0x[0-9a-f]+}} r1 = {{0x[0-9a-f]+}} r2 = {{0x[0-9a-f]+}} r3 = {{0x[0-9a-f]+}}
- // CHECK-DUMP-NEXT: r4 = {{0x[0-9a-f]+}} r5 = {{0x[0-9a-f]+}} r6 = {{0x[0-9a-f]+}} r7 = {{0x[0-9a-f]+}}
- // CHECK-DUMP-NEXT: r8 = {{0x[0-9a-f]+}} r9 = {{0x[0-9a-f]+}} r10 = {{0x[0-9a-f]+}} r11 = {{0x[0-9a-f]+}}
- // CHECK-DUMP-NEXT:r12 = {{0x[0-9a-f]+}} sp = {{0x[0-9a-f]+}} lr = {{0x[0-9a-f]+}} pc = {{0x[0-9a-f]+}}
- // CHECK-NODUMP-NOT: Register values
- return 0;
-}
More information about the llvm-commits
mailing list