Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #include <linux/linkage.h>
0003 
0004 /* Offset is based on macros from arch/powerpc/include/uapi/asm/ptrace.h. */
0005 #define R0   0
0006 #define R1   1 * 8
0007 #define R2   2 * 8
0008 #define R3   3 * 8
0009 #define R4   4 * 8
0010 #define R5   5 * 8
0011 #define R6   6 * 8
0012 #define R7   7 * 8
0013 #define R8   8 * 8
0014 #define R9   9 * 8
0015 #define R10 10 * 8
0016 #define R11 11 * 8
0017 #define R12 12 * 8
0018 #define R13 13 * 8
0019 #define R14 14 * 8
0020 #define R15 15 * 8
0021 #define R16 16 * 8
0022 #define R17 17 * 8
0023 #define R18 18 * 8
0024 #define R19 19 * 8
0025 #define R20 20 * 8
0026 #define R21 21 * 8
0027 #define R22 22 * 8
0028 #define R23 23 * 8
0029 #define R24 24 * 8
0030 #define R25 25 * 8
0031 #define R26 26 * 8
0032 #define R27 27 * 8
0033 #define R28 28 * 8
0034 #define R29 29 * 8
0035 #define R30 30 * 8
0036 #define R31 31 * 8
0037 #define NIP 32 * 8
0038 #define CTR 35 * 8
0039 #define LINK    36 * 8
0040 #define XER 37 * 8
0041 
0042 .globl perf_regs_load
0043 perf_regs_load:
0044     std 0, R0(3)
0045     std 1, R1(3)
0046     std 2, R2(3)
0047     std 3, R3(3)
0048     std 4, R4(3)
0049     std 5, R5(3)
0050     std 6, R6(3)
0051     std 7, R7(3)
0052     std 8, R8(3)
0053     std 9, R9(3)
0054     std 10, R10(3)
0055     std 11, R11(3)
0056     std 12, R12(3)
0057     std 13, R13(3)
0058     std 14, R14(3)
0059     std 15, R15(3)
0060     std 16, R16(3)
0061     std 17, R17(3)
0062     std 18, R18(3)
0063     std 19, R19(3)
0064     std 20, R20(3)
0065     std 21, R21(3)
0066     std 22, R22(3)
0067     std 23, R23(3)
0068     std 24, R24(3)
0069     std 25, R25(3)
0070     std 26, R26(3)
0071     std 27, R27(3)
0072     std 28, R28(3)
0073     std 29, R29(3)
0074     std 30, R30(3)
0075     std 31, R31(3)
0076 
0077     /* store NIP */
0078     mflr 4
0079     std 4, NIP(3)
0080 
0081     /* Store LR */
0082     std 4, LINK(3)
0083 
0084     /* Store XER */
0085     mfxer 4
0086     std 4, XER(3)
0087 
0088     /* Store CTR */
0089     mfctr 4
0090     std 4, CTR(3)
0091 
0092     /* Restore original value of r4 */
0093     ld 4, R4(3)
0094 
0095     blr