mirror of
https://github.com/rwinkhart/sys.git
synced 2026-08-30 13:56:45 -04:00
Darwin/amd64 now builds. No others tested yet. mkall.sh also runs correctly. The updates, which are substantial, are not yet applied to avoid unnecessary churn. Restore mkerrors.sh, which is needed in the unix directory. LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/122410044
44 lines
937 B
ArmAsm
44 lines
937 B
ArmAsm
// Copyright 2014 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.
|
|
|
|
#include "textflag.h"
|
|
#include "../runtime/syscall_nacl.h" // TODO: how to refer to this?
|
|
|
|
//
|
|
// System call support for ARM, Native Client
|
|
//
|
|
|
|
#define NACL_SYSCALL(code) \
|
|
MOVW $(0x10000 + ((code)<<5)), R8; BL (R8)
|
|
|
|
#define NACL_SYSJMP(code) \
|
|
MOVW $(0x10000 + ((code)<<5)), R8; B (R8)
|
|
|
|
TEXT unix·Syscall(SB),NOSPLIT,$0-28
|
|
BL runtime·entersyscall(SB)
|
|
MOVW trap+0(FP), R8
|
|
MOVW a1+4(FP), R0
|
|
MOVW a2+8(FP), R1
|
|
MOVW a3+12(FP), R2
|
|
// more args would use R3, and then stack.
|
|
MOVW $0x10000, R7
|
|
ADD R8<<5, R7
|
|
BL (R7)
|
|
CMP $0, R0
|
|
BGE ok
|
|
MOVW $-1, R1
|
|
MOVW R1, r1+16(FP)
|
|
MOVW R1, r2+20(FP)
|
|
RSB $0, R0
|
|
MOVW R0, err+24(FP)
|
|
BL runtime·exitsyscall(SB)
|
|
RET
|
|
ok:
|
|
MOVW R0, r1+16(FP)
|
|
MOVW R1, r2+20(FP)
|
|
MOVW $0, R2
|
|
MOVW R2, err+24(FP)
|
|
BL runtime·exitsyscall(SB)
|
|
RET
|