current_stack_pointer.h 650 B

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