You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

asm_linux_ppc64x.s 909B

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. #include "textflag.h"
  6. //
  7. // System calls for ppc64, Linux
  8. //
  9. // Just jump to package syscall's implementation for all these functions.
  10. // The runtime may know about them.
  11. TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
  12. BL runtime·entersyscall(SB)
  13. MOVD a1+8(FP), R3
  14. MOVD a2+16(FP), R4
  15. MOVD a3+24(FP), R5
  16. MOVD R0, R6
  17. MOVD R0, R7
  18. MOVD R0, R8
  19. MOVD trap+0(FP), R9 // syscall entry
  20. SYSCALL R9
  21. MOVD R3, r1+32(FP)
  22. MOVD R4, r2+40(FP)
  23. BL runtime·exitsyscall(SB)
  24. RET
  25. TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
  26. MOVD a1+8(FP), R3
  27. MOVD a2+16(FP), R4
  28. MOVD a3+24(FP), R5
  29. MOVD R0, R6
  30. MOVD R0, R7
  31. MOVD R0, R8
  32. MOVD trap+0(FP), R9 // syscall entry
  33. SYSCALL R9
  34. MOVD R3, r1+32(FP)
  35. MOVD R4, r2+40(FP)
  36. RET