1 /* SPDX-License-Identifier: GPL-2.0 */ 2 3 #if __alpha__ 4 register unsigned long sp asm("$30"); 5 #elif __arm__ || __aarch64__ || __csky__ || __m68k__ || __mips__ || __riscv 6 register unsigned long sp asm("sp"); 7 #elif __i386__ 8 register unsigned long sp asm("esp"); 9 #elif __loongarch64 10 register unsigned long sp asm("$sp"); 11 #elif __powerpc__ 12 register unsigned long sp asm("r1"); 13 #elif __s390x__ 14 register unsigned long sp asm("%15"); 15 #elif __sh__ 16 register unsigned long sp asm("r15"); 17 #elif __x86_64__ 18 register unsigned long sp asm("rsp"); 19 #elif __XTENSA__ 20 register unsigned long sp asm("a1"); 21 #else 22 #error "implement current_stack_pointer equivalent" 23 #endif 24