1 /* SPDX-License-Identifier: GPL-2.0 */
2 // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
18 * abiv1: r2, r3, r4, r5
19 * abiv2: r0, r1, r2, r3
21 unsigned long orig_a0;
31 unsigned long regs[10];
33 #if defined(__CSKYABIV2__)
35 unsigned long exregs[15];
39 unsigned long pad; /* reserved */
48 unsigned long reserved;
52 * Switch stack for switch_to after push pt_regs.
54 * ABI_CSKYV2: r4 ~ r11, r15 ~ r17, r26 ~ r30;
55 * ABI_CSKYV1: r8 ~ r14, r15;
58 #if defined(__CSKYABIV2__)
77 #if defined(__CSKYABIV2__)
90 #define PS_S 0x80000000 /* Supervisor Mode */
92 #define arch_has_single_step() (1)
93 #define current_pt_regs() \
94 ({ (struct pt_regs *)((char *)current_thread_info() + THREAD_SIZE) - 1; })
96 #define user_stack_pointer(regs) ((regs)->usp)
98 #define user_mode(regs) (!((regs)->sr & PS_S))
99 #define instruction_pointer(regs) ((regs)->pc)
100 #define profile_pc(regs) instruction_pointer(regs)
102 #endif /* __KERNEL__ */
103 #endif /* __ASSEMBLY__ */
104 #endif /* _CSKY_PTRACE_H */