diff options
Diffstat (limited to 'simpleperf/perf_regs.h')
-rw-r--r-- | simpleperf/perf_regs.h | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/simpleperf/perf_regs.h b/simpleperf/perf_regs.h index 17e28a65..86a12d0c 100644 --- a/simpleperf/perf_regs.h +++ b/simpleperf/perf_regs.h @@ -18,13 +18,13 @@ #define SIMPLE_PERF_PERF_REGS_H_ #if defined(USE_BIONIC_UAPI_HEADERS) -#include <uapi/asm-arm/asm/perf_regs.h> #include <uapi/asm-x86/asm/perf_regs.h> +#include <uapi/asm-arm/asm/perf_regs.h> #define perf_event_arm_regs perf_event_arm64_regs #include <uapi/asm-arm64/asm/perf_regs.h> #else -#include <asm-arm/asm/perf_regs.h> #include <asm-x86/asm/perf_regs.h> +#include <asm-arm/asm/perf_regs.h> #define perf_event_arm_regs perf_event_arm64_regs #include <asm-arm64/asm/perf_regs.h> #endif @@ -35,8 +35,6 @@ #include "perf_event.h" -namespace simpleperf { - enum ArchType { ARCH_X86_32, ARCH_X86_64, @@ -69,15 +67,23 @@ class ScopedCurrentArch { public: explicit ScopedCurrentArch(ArchType arch) : saved_arch(current_arch) { current_arch = arch; + current_arch32 = GetArchForAbi(arch, PERF_SAMPLE_REGS_ABI_32); } ~ScopedCurrentArch() { current_arch = saved_arch; + current_arch32 = GetArchForAbi(saved_arch, PERF_SAMPLE_REGS_ABI_32); + } + static ArchType GetCurrentArch() { + return current_arch; + } + static ArchType GetCurrentArch32() { + return current_arch32; } - static ArchType GetCurrentArch() { return current_arch; } private: ArchType saved_arch; static ArchType current_arch; + static ArchType current_arch32; }; struct RegSet { @@ -94,6 +100,4 @@ struct RegSet { bool GetIpRegValue(uint64_t* value) const; }; -} // namespace simpleperf - #endif // SIMPLE_PERF_PERF_REGS_H_ |