perf_regs.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #ifndef ARCH_PERF_REGS_H
  2. #define ARCH_PERF_REGS_H
  3. #include <stdlib.h>
  4. #include "../../util/types.h"
  5. #include <asm/perf_regs.h>
  6. #ifndef ARCH_X86_64
  7. #define PERF_REGS_MASK ((1ULL << PERF_REG_X86_32_MAX) - 1)
  8. #else
  9. #define REG_NOSUPPORT ((1ULL << PERF_REG_X86_DS) | \
  10. (1ULL << PERF_REG_X86_ES) | \
  11. (1ULL << PERF_REG_X86_FS) | \
  12. (1ULL << PERF_REG_X86_GS))
  13. #define PERF_REGS_MASK (((1ULL << PERF_REG_X86_64_MAX) - 1) & ~REG_NOSUPPORT)
  14. #endif
  15. #define PERF_REG_IP PERF_REG_X86_IP
  16. #define PERF_REG_SP PERF_REG_X86_SP
  17. static inline const char *perf_reg_name(int id)
  18. {
  19. switch (id) {
  20. case PERF_REG_X86_AX:
  21. return "AX";
  22. case PERF_REG_X86_BX:
  23. return "BX";
  24. case PERF_REG_X86_CX:
  25. return "CX";
  26. case PERF_REG_X86_DX:
  27. return "DX";
  28. case PERF_REG_X86_SI:
  29. return "SI";
  30. case PERF_REG_X86_DI:
  31. return "DI";
  32. case PERF_REG_X86_BP:
  33. return "BP";
  34. case PERF_REG_X86_SP:
  35. return "SP";
  36. case PERF_REG_X86_IP:
  37. return "IP";
  38. case PERF_REG_X86_FLAGS:
  39. return "FLAGS";
  40. case PERF_REG_X86_CS:
  41. return "CS";
  42. case PERF_REG_X86_SS:
  43. return "SS";
  44. case PERF_REG_X86_DS:
  45. return "DS";
  46. case PERF_REG_X86_ES:
  47. return "ES";
  48. case PERF_REG_X86_FS:
  49. return "FS";
  50. case PERF_REG_X86_GS:
  51. return "GS";
  52. #ifdef ARCH_X86_64
  53. case PERF_REG_X86_R8:
  54. return "R8";
  55. case PERF_REG_X86_R9:
  56. return "R9";
  57. case PERF_REG_X86_R10:
  58. return "R10";
  59. case PERF_REG_X86_R11:
  60. return "R11";
  61. case PERF_REG_X86_R12:
  62. return "R12";
  63. case PERF_REG_X86_R13:
  64. return "R13";
  65. case PERF_REG_X86_R14:
  66. return "R14";
  67. case PERF_REG_X86_R15:
  68. return "R15";
  69. #endif /* ARCH_X86_64 */
  70. default:
  71. return NULL;
  72. }
  73. return NULL;
  74. }
  75. #endif /* ARCH_PERF_REGS_H */