asm_linux_ppc64x.s 962 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Copyright 2014 The Go Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. //go:build linux && (ppc64 || ppc64le) && gc
  5. // +build linux
  6. // +build ppc64 ppc64le
  7. // +build gc
  8. #include "textflag.h"
  9. //
  10. // System calls for ppc64, Linux
  11. //
  12. // Just jump to package syscall's implementation for all these functions.
  13. // The runtime may know about them.
  14. TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
  15. BL runtime·entersyscall(SB)
  16. MOVD a1+8(FP), R3
  17. MOVD a2+16(FP), R4
  18. MOVD a3+24(FP), R5
  19. MOVD R0, R6
  20. MOVD R0, R7
  21. MOVD R0, R8
  22. MOVD trap+0(FP), R9 // syscall entry
  23. SYSCALL R9
  24. MOVD R3, r1+32(FP)
  25. MOVD R4, r2+40(FP)
  26. BL runtime·exitsyscall(SB)
  27. RET
  28. TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
  29. MOVD a1+8(FP), R3
  30. MOVD a2+16(FP), R4
  31. MOVD a3+24(FP), R5
  32. MOVD R0, R6
  33. MOVD R0, R7
  34. MOVD R0, R8
  35. MOVD trap+0(FP), R9 // syscall entry
  36. SYSCALL R9
  37. MOVD R3, r1+32(FP)
  38. MOVD R4, r2+40(FP)
  39. RET