// SPDX-License-Identifier: GPL-2.0 #ifdef HAVE_PERF_REGS_SUPPORT #include "../perf_regs.h" #include "../../../arch/loongarch/include/uapi/asm/perf_regs.h" const char *__perf_reg_name_loongarch(int id) { switch (id) { case PERF_REG_LOONGARCH_PC: return "PC"; case PERF_REG_LOONGARCH_R1: return "%r1"; case PERF_REG_LOONGARCH_R2: return "%r2"; case PERF_REG_LOONGARCH_R3: return "%r3"; case PERF_REG_LOONGARCH_R4: return "%r4"; case PERF_REG_LOONGARCH_R5: return "%r5"; case PERF_REG_LOONGARCH_R6: return "%r6"; case PERF_REG_LOONGARCH_R7: return "%r7"; case PERF_REG_LOONGARCH_R8: return "%r8"; case PERF_REG_LOONGARCH_R9: return "%r9"; case PERF_REG_LOONGARCH_R10: return "%r10"; case PERF_REG_LOONGARCH_R11: return "%r11"; case PERF_REG_LOONGARCH_R12: return "%r12"; case PERF_REG_LOONGARCH_R13: return "%r13"; case PERF_REG_LOONGARCH_R14: return "%r14"; case PERF_REG_LOONGARCH_R15: return "%r15"; case PERF_REG_LOONGARCH_R16: return "%r16"; case PERF_REG_LOONGARCH_R17: return "%r17"; case PERF_REG_LOONGARCH_R18: return "%r18"; case PERF_REG_LOONGARCH_R19: return "%r19"; case PERF_REG_LOONGARCH_R20: return "%r20"; case PERF_REG_LOONGARCH_R21: return "%r21"; case PERF_REG_LOONGARCH_R22: return "%r22"; case PERF_REG_LOONGARCH_R23: return "%r23"; case PERF_REG_LOONGARCH_R24: return "%r24"; case PERF_REG_LOONGARCH_R25: return "%r25"; case PERF_REG_LOONGARCH_R26: return "%r26"; case PERF_REG_LOONGARCH_R27: return "%r27"; case PERF_REG_LOONGARCH_R28: return "%r28"; case PERF_REG_LOONGARCH_R29: return "%r29"; case PERF_REG_LOONGARCH_R30: return "%r30"; case PERF_REG_LOONGARCH_R31: return "%r31"; default: break; } return NULL; } uint64_t __perf_reg_ip_loongarch(void) { return PERF_REG_LOONGARCH_PC; } uint64_t __perf_reg_sp_loongarch(void) { return PERF_REG_LOONGARCH_R3; } #endif