Files
sys/unix/asm_linux_arm64.s
Junya Hayashi a3f2cbd54c unix: fix typo in unix/asm_linux_arm64.s made in 28a7276
28a7276 causes following error with GOARCH=arm64 environment.

  # golang.org/x/sys/unix
  asm: InitTextSym double init for "".Syscall
  asm: symbol "".Syscall listed multiple times
  asm: invalid encoding for argument 00004 (/home/junya/go/src/golang.org/x/sys/unix/asm_linux_arm64.s:21)        CALL    runtime.entersyscall(SB)
  asm: invalid encoding for argument 00048 (/home/junya/go/src/golang.org/x/sys/unix/asm_linux_arm64.s:32)        CALL    runtime.exitsyscall(SB)
  asm: makeFuncDebugEntry double process "".Syscall
  asm: assembly failed

Change-Id: Ic7895fecc5f4b1fd6ebef63603c5f720227f5130
Reviewed-on: https://go-review.googlesource.com/86135
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-01-04 16:29:08 +00:00

53 lines
1.1 KiB
ArmAsm

// Copyright 2015 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build linux
// +build arm64
// +build !gccgo
#include "textflag.h"
// Just jump to package syscall's implementation for all these functions.
// The runtime may know about them.
TEXT ·Syscall(SB),NOSPLIT,$0-56
B syscall·Syscall(SB)
TEXT ·Syscall6(SB),NOSPLIT,$0-80
B syscall·Syscall6(SB)
TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
BL runtime·entersyscall(SB)
MOVD a1+8(FP), R0
MOVD a2+16(FP), R1
MOVD a3+24(FP), R2
MOVD $0, R3
MOVD $0, R4
MOVD $0, R5
MOVD trap+0(FP), R8 // syscall entry
SVC
MOVD R0, r1+32(FP) // r1
MOVD R1, r2+40(FP) // r2
BL runtime·exitsyscall(SB)
RET
TEXT ·RawSyscall(SB),NOSPLIT,$0-56
B syscall·RawSyscall(SB)
TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
B syscall·RawSyscall6(SB)
TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
MOVD a1+8(FP), R0
MOVD a2+16(FP), R1
MOVD a3+24(FP), R2
MOVD $0, R3
MOVD $0, R4
MOVD $0, R5
MOVD trap+0(FP), R8 // syscall entry
SVC
MOVD R0, r1+32(FP)
MOVD R1, r2+40(FP)
RET