From: Ken Thompson Date: Thu, 5 Jun 2008 23:55:06 +0000 (-0700) Subject: goos and goarch X-Git-Tag: weekly.2009-11-06~3763 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=28429aaaa6f0177a49e8d8c149be5dc36ae226fa;p=gostls13.git goos and goarch SVN=121346 --- diff --git a/src/runtime/rt0_amd64_darwin.s b/src/runtime/rt0_amd64_darwin.s new file mode 100644 index 0000000000..0d037fad29 --- /dev/null +++ b/src/runtime/rt0_amd64_darwin.s @@ -0,0 +1,86 @@ +// 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