perf_regs.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef ARCH_PERF_REGS_H
  3. #define ARCH_PERF_REGS_H
  4. #include <stdlib.h>
  5. #include <linux/types.h>
  6. #include <asm/perf_regs.h>
  7. void perf_regs_load(u64 *regs);
  8. #define PERF_REGS_MASK ((1ULL << PERF_REG_POWERPC_MAX) - 1)
  9. #define PERF_REGS_MAX PERF_REG_POWERPC_MAX
  10. #ifdef __powerpc64__
  11. #define PERF_SAMPLE_REGS_ABI PERF_SAMPLE_REGS_ABI_64
  12. #else
  13. #define PERF_SAMPLE_REGS_ABI PERF_SAMPLE_REGS_ABI_32
  14. #endif
  15. #define PERF_REG_IP PERF_REG_POWERPC_NIP
  16. #define PERF_REG_SP PERF_REG_POWERPC_R1
  17. static const char *reg_names[] = {
  18. [PERF_REG_POWERPC_R0] = "r0",
  19. [PERF_REG_POWERPC_R1] = "r1",
  20. [PERF_REG_POWERPC_R2] = "r2",
  21. [PERF_REG_POWERPC_R3] = "r3",
  22. [PERF_REG_POWERPC_R4] = "r4",
  23. [PERF_REG_POWERPC_R5] = "r5",
  24. [PERF_REG_POWERPC_R6] = "r6",
  25. [PERF_REG_POWERPC_R7] = "r7",
  26. [PERF_REG_POWERPC_R8] = "r8",
  27. [PERF_REG_POWERPC_R9] = "r9",
  28. [PERF_REG_POWERPC_R10] = "r10",
  29. [PERF_REG_POWERPC_R11] = "r11",
  30. [PERF_REG_POWERPC_R12] = "r12",
  31. [PERF_REG_POWERPC_R13] = "r13",
  32. [PERF_REG_POWERPC_R14] = "r14",
  33. [PERF_REG_POWERPC_R15] = "r15",
  34. [PERF_REG_POWERPC_R16] = "r16",
  35. [PERF_REG_POWERPC_R17] = "r17",
  36. [PERF_REG_POWERPC_R18] = "r18",
  37. [PERF_REG_POWERPC_R19] = "r19",
  38. [PERF_REG_POWERPC_R20] = "r20",
  39. [PERF_REG_POWERPC_R21] = "r21",
  40. [PERF_REG_POWERPC_R22] = "r22",
  41. [PERF_REG_POWERPC_R23] = "r23",
  42. [PERF_REG_POWERPC_R24] = "r24",
  43. [PERF_REG_POWERPC_R25] = "r25",
  44. [PERF_REG_POWERPC_R26] = "r26",
  45. [PERF_REG_POWERPC_R27] = "r27",
  46. [PERF_REG_POWERPC_R28] = "r28",
  47. [PERF_REG_POWERPC_R29] = "r29",
  48. [PERF_REG_POWERPC_R30] = "r30",
  49. [PERF_REG_POWERPC_R31] = "r31",
  50. [PERF_REG_POWERPC_NIP] = "nip",
  51. [PERF_REG_POWERPC_MSR] = "msr",
  52. [PERF_REG_POWERPC_ORIG_R3] = "orig_r3",
  53. [PERF_REG_POWERPC_CTR] = "ctr",
  54. [PERF_REG_POWERPC_LINK] = "link",
  55. [PERF_REG_POWERPC_XER] = "xer",
  56. [PERF_REG_POWERPC_CCR] = "ccr",
  57. [PERF_REG_POWERPC_SOFTE] = "softe",
  58. [PERF_REG_POWERPC_TRAP] = "trap",
  59. [PERF_REG_POWERPC_DAR] = "dar",
  60. [PERF_REG_POWERPC_DSISR] = "dsisr"
  61. };
  62. static inline const char *perf_reg_name(int id)
  63. {
  64. return reg_names[id];
  65. }
  66. #endif /* ARCH_PERF_REGS_H */