--- /dev/null
+// Copyright 2009 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.
+
+
+TEXT rt0_amd64_darwin(SB),1,$-8
+ PUSHQ $0
+ MOVQ SP, BP
+ ANDQ $~15, SP
+ MOVQ 8(BP), DI
+ LEAQ 16(BP), SI
+ MOVL DI, DX
+ ADDL $1, DX
+ SHLL $3, DX
+ ADDQ SI, DX
+ MOVQ DX, CX
+ CMPQ (CX), $0
+ JEQ done
+
+loop:
+ ADDQ $8, CX
+ CMPQ (CX), $0
+ JNE loop
+
+done:
+ ADDQ $8, CX
+ CALL check(SB)
+ CALL main_main(SB)
+ CALL sys_exit(SB)
+ CALL notok(SB)
+ POPQ AX
+ RET
+
+TEXT FLUSH(SB),1,$-8
+ RET
+
+TEXT sys_exit(SB),1,$-8
+ MOVL 8(SP), DI // arg 1 exit status
+ MOVL $(0x2000000+1), AX
+ SYSCALL
+ JCC 2(PC)
+ CALL notok(SB)
+ RET
+
+TEXT sys_write(SB),1,$-8
+ MOVL 8(SP), DI // arg 1 fid
+ MOVQ 16(SP), SI // arg 2 buf
+ MOVL 24(SP), DX // arg 3 count
+ MOVL $(0x2000000+4), AX // syscall entry
+ SYSCALL
+ JCC 2(PC)
+ CALL notok(SB)
+ RET
+
+TEXT sys_breakpoint(SB),1,$-8
+ BYTE $0xcc
+ RET
+
+TEXT sys_mmap(SB),1,$-8
+ MOVQ 8(SP), DI // arg 1 addr
+ MOVL 16(SP), SI // arg 2 len
+ MOVL 20(SP), DX // arg 3 prot
+ MOVL 24(SP), R10 // arg 4 flags
+ MOVL 28(SP), R8 // arg 5 fid
+ MOVL 32(SP), R9 // arg 6 offset
+ MOVL $(0x2000000+197), AX // syscall entry
+ SYSCALL
+ JCC 2(PC)
+ CALL notok(SB)
+ RET
+
+TEXT notok(SB),1,$-8
+ MOVL $0xf1, BP
+ MOVQ BP, (BP)
+ RET
+
+TEXT sys_memclr(SB),1,$-8
+ MOVQ 8(SP), DI // arg 1 addr
+ MOVL 16(SP), CX // arg 2 count
+ ADDL $7, CX
+ SHRL $3, CX
+ MOVQ $0, AX
+ CLD
+ REP
+ STOSQ
+ RET