diff options
Diffstat (limited to 'tools/perf/arch/arm/include')
| -rw-r--r-- | tools/perf/arch/arm/include/perf_regs.h | 59 | 
1 files changed, 59 insertions, 0 deletions
diff --git a/tools/perf/arch/arm/include/perf_regs.h b/tools/perf/arch/arm/include/perf_regs.h new file mode 100644 index 00000000000..f619c9c5a4b --- /dev/null +++ b/tools/perf/arch/arm/include/perf_regs.h @@ -0,0 +1,59 @@ +#ifndef ARCH_PERF_REGS_H +#define ARCH_PERF_REGS_H + +#include <stdlib.h> +#include <linux/types.h> +#include <asm/perf_regs.h> + +void perf_regs_load(u64 *regs); + +#define PERF_REGS_MASK	((1ULL << PERF_REG_ARM_MAX) - 1) +#define PERF_REGS_MAX	PERF_REG_ARM_MAX +#define PERF_SAMPLE_REGS_ABI	PERF_SAMPLE_REGS_ABI_32 + +#define PERF_REG_IP	PERF_REG_ARM_PC +#define PERF_REG_SP	PERF_REG_ARM_SP + +static inline const char *perf_reg_name(int id) +{ +	switch (id) { +	case PERF_REG_ARM_R0: +		return "r0"; +	case PERF_REG_ARM_R1: +		return "r1"; +	case PERF_REG_ARM_R2: +		return "r2"; +	case PERF_REG_ARM_R3: +		return "r3"; +	case PERF_REG_ARM_R4: +		return "r4"; +	case PERF_REG_ARM_R5: +		return "r5"; +	case PERF_REG_ARM_R6: +		return "r6"; +	case PERF_REG_ARM_R7: +		return "r7"; +	case PERF_REG_ARM_R8: +		return "r8"; +	case PERF_REG_ARM_R9: +		return "r9"; +	case PERF_REG_ARM_R10: +		return "r10"; +	case PERF_REG_ARM_FP: +		return "fp"; +	case PERF_REG_ARM_IP: +		return "ip"; +	case PERF_REG_ARM_SP: +		return "sp"; +	case PERF_REG_ARM_LR: +		return "lr"; +	case PERF_REG_ARM_PC: +		return "pc"; +	default: +		return NULL; +	} + +	return NULL; +} + +#endif /* ARCH_PERF_REGS_H */  | 
