summaryrefslogtreecommitdiff
path: root/simpleperf/perf_regs.h
diff options
context:
space:
mode:
Diffstat (limited to 'simpleperf/perf_regs.h')
-rw-r--r--simpleperf/perf_regs.h18
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_