diff options
| author | Rob Pike <r@golang.org> | 2008-06-26 14:09:26 -0700 |
|---|---|---|
| committer | Rob Pike <r@golang.org> | 2008-06-26 14:09:26 -0700 |
| commit | 3e4e83ab1ee4b860a0ed08ccbe81c059982e89e1 (patch) | |
| tree | e446a18d52b4311b7fabada1de0e78b8e72fd773 /src/runtime/rt0_amd64_linux.s | |
| parent | 7e21ec300722023af9afb1a243e5bb6a04407dca (diff) | |
| download | go-3e4e83ab1ee4b860a0ed08ccbe81c059982e89e1.tar.xz | |
add sys.readfile()
add args to linux runtime
SVN=124961
Diffstat (limited to 'src/runtime/rt0_amd64_linux.s')
| -rw-r--r-- | src/runtime/rt0_amd64_linux.s | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/src/runtime/rt0_amd64_linux.s b/src/runtime/rt0_amd64_linux.s index 30f72728ad..d89dc927ef 100644 --- a/src/runtime/rt0_amd64_linux.s +++ b/src/runtime/rt0_amd64_linux.s @@ -7,8 +7,8 @@ TEXT _rt0_amd64_linux(SB),1,$-8 PUSHQ $0 MOVQ SP, BP ANDQ $~15, SP - MOVQ 8(BP), DI - LEAQ 16(BP), SI + MOVQ 8(BP), DI // argc + LEAQ 16(BP), SI // argv MOVL DI, DX ADDL $1, DX SHLL $3, DX @@ -24,6 +24,11 @@ loop: done: ADDQ $8, CX + SUBQ $16, SP + MOVL DI, 0(SP) + MOVQ SI, 8(SP) + CALL args(SB) + ADDQ $16, SP CALL check(SB) CALL main·main(SB) CALL sys·exit(SB) @@ -52,6 +57,34 @@ TEXT sys·write(SB),1,$-8 CALL notok(SB) RET +TEXT open(SB),1,$-8 + MOVQ 8(SP), DI + MOVL 16(SP), SI + MOVL $2, AX // syscall entry + SYSCALL + RET + +TEXT close(SB),1,$-8 + MOVL 8(SP), DI + MOVL $3, AX // syscall entry + SYSCALL + RET + +TEXT fstat(SB),1,$-8 + MOVL 8(SP), DI + MOVQ 16(SP), SI + MOVL $5, AX // syscall entry + SYSCALL + RET + +TEXT read(SB),1,$-8 + MOVL 8(SP), DI + MOVQ 16(SP), SI + MOVL 24(SP), DX + MOVL $0, AX // syscall entry + SYSCALL + RET + TEXT sys·rt_sigaction(SB),1,$-8 MOVL 8(SP), DI MOVQ 16(SP), SI @@ -94,7 +127,7 @@ TEXT sys·mmap(SB),1,$-8 MOVL $9, AX // syscall entry SYSCALL CMPQ AX, $0xfffffffffffff001 - JNE 2(PC) + JLS 2(PC) CALL notok(SB) RET |
