diff options
Diffstat (limited to 'tools/perf/arch/x86/include/perf_regs.h')
| -rw-r--r-- | tools/perf/arch/x86/include/perf_regs.h | 80 | 
1 files changed, 80 insertions, 0 deletions
diff --git a/tools/perf/arch/x86/include/perf_regs.h b/tools/perf/arch/x86/include/perf_regs.h new file mode 100644 index 00000000000..46fc9f15c6b --- /dev/null +++ b/tools/perf/arch/x86/include/perf_regs.h @@ -0,0 +1,80 @@ +#ifndef ARCH_PERF_REGS_H +#define ARCH_PERF_REGS_H + +#include <stdlib.h> +#include "../../util/types.h" +#include "../../../../../arch/x86/include/asm/perf_regs.h" + +#ifndef ARCH_X86_64 +#define PERF_REGS_MASK ((1ULL << PERF_REG_X86_32_MAX) - 1) +#else +#define REG_NOSUPPORT ((1ULL << PERF_REG_X86_DS) | \ +		       (1ULL << PERF_REG_X86_ES) | \ +		       (1ULL << PERF_REG_X86_FS) | \ +		       (1ULL << PERF_REG_X86_GS)) +#define PERF_REGS_MASK (((1ULL << PERF_REG_X86_64_MAX) - 1) & ~REG_NOSUPPORT) +#endif +#define PERF_REG_IP PERF_REG_X86_IP +#define PERF_REG_SP PERF_REG_X86_SP + +static inline const char *perf_reg_name(int id) +{ +	switch (id) { +	case PERF_REG_X86_AX: +		return "AX"; +	case PERF_REG_X86_BX: +		return "BX"; +	case PERF_REG_X86_CX: +		return "CX"; +	case PERF_REG_X86_DX: +		return "DX"; +	case PERF_REG_X86_SI: +		return "SI"; +	case PERF_REG_X86_DI: +		return "DI"; +	case PERF_REG_X86_BP: +		return "BP"; +	case PERF_REG_X86_SP: +		return "SP"; +	case PERF_REG_X86_IP: +		return "IP"; +	case PERF_REG_X86_FLAGS: +		return "FLAGS"; +	case PERF_REG_X86_CS: +		return "CS"; +	case PERF_REG_X86_SS: +		return "SS"; +	case PERF_REG_X86_DS: +		return "DS"; +	case PERF_REG_X86_ES: +		return "ES"; +	case PERF_REG_X86_FS: +		return "FS"; +	case PERF_REG_X86_GS: +		return "GS"; +#ifdef ARCH_X86_64 +	case PERF_REG_X86_R8: +		return "R8"; +	case PERF_REG_X86_R9: +		return "R9"; +	case PERF_REG_X86_R10: +		return "R10"; +	case PERF_REG_X86_R11: +		return "R11"; +	case PERF_REG_X86_R12: +		return "R12"; +	case PERF_REG_X86_R13: +		return "R13"; +	case PERF_REG_X86_R14: +		return "R14"; +	case PERF_REG_X86_R15: +		return "R15"; +#endif /* ARCH_X86_64 */ +	default: +		return NULL; +	} + +	return NULL; +} + +#endif /* ARCH_PERF_REGS_H */  |