asm_linux_arm.s raw

   1  // Copyright 2022 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  
   5  #include "textflag.h"
   6  
   7  // func Syscall6(num, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, errno uintptr)
   8  TEXT ·Syscall6(SB),NOSPLIT,$0-40
   9  	MOVW	num+0(FP), R7	// syscall entry
  10  	MOVW	a1+4(FP), R0
  11  	MOVW	a2+8(FP), R1
  12  	MOVW	a3+12(FP), R2
  13  	MOVW	a4+16(FP), R3
  14  	MOVW	a5+20(FP), R4
  15  	MOVW	a6+24(FP), R5
  16  	SWI	$0
  17  	MOVW	$0xfffff001, R6
  18  	CMP	R6, R0
  19  	BLS	ok
  20  	MOVW	$-1, R1
  21  	MOVW	R1, r1+28(FP)
  22  	MOVW	$0, R2
  23  	MOVW	R2, r2+32(FP)
  24  	RSB	$0, R0, R0
  25  	MOVW	R0, errno+36(FP)
  26  	RET
  27  ok:
  28  	MOVW	R0, r1+28(FP)
  29  	MOVW	R1, r2+32(FP)
  30  	MOVW	$0, R0
  31  	MOVW	R0, errno+36(FP)
  32  	RET
  33