LEFT | RIGHT |
(no file at all) | |
1 // Copyright 2009 The Go Authors. All rights reserved. | 1 // Copyright 2009 The Go Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style | 2 // Use of this source code is governed by a BSD-style |
3 // license that can be found in the LICENSE file. | 3 // license that can be found in the LICENSE file. |
4 // | 4 // |
5 // System calls and other sys.stuff for 386, FreeBSD | 5 // System calls and other sys.stuff for 386, FreeBSD |
6 // /usr/src/sys/kern/syscalls.master for syscall numbers. | 6 // /usr/src/sys/kern/syscalls.master for syscall numbers. |
7 // | 7 // |
8 | 8 |
9 #include "zasm_GOOS_GOARCH.h" | 9 #include "zasm_GOOS_GOARCH.h" |
10 ········ | 10 ········ |
(...skipping 27 matching lines...) Expand all Loading... |
38 ········ | 38 ········ |
39 MOVL AX, m(CX) | 39 MOVL AX, m(CX) |
40 CALL runtime·stackcheck(SB) // smashes AX | 40 CALL runtime·stackcheck(SB) // smashes AX |
41 CALL runtime·mstart(SB) | 41 CALL runtime·mstart(SB) |
42 MOVL 0, AX // crash (not reached) | 42 MOVL 0, AX // crash (not reached) |
43 | 43 |
44 // Exit the entire program (like C exit) | 44 // Exit the entire program (like C exit) |
45 TEXT runtime·exit(SB),7,$-4 | 45 TEXT runtime·exit(SB),7,$-4 |
46 MOVL $1, AX | 46 MOVL $1, AX |
47 INT $0x80 | 47 INT $0x80 |
48 » CALL» runtime·notok(SB) | 48 » MOVL» $0xf1, 0xf1 // crash |
49 RET | 49 RET |
50 | 50 |
51 TEXT runtime·exit1(SB),7,$-4 | 51 TEXT runtime·exit1(SB),7,$-4 |
52 MOVL $431, AX | 52 MOVL $431, AX |
53 INT $0x80 | 53 INT $0x80 |
54 JAE 2(PC) | 54 JAE 2(PC) |
55 » CALL» runtime·notok(SB) | 55 » MOVL» $0xf1, 0xf1 // crash |
56 RET | 56 RET |
57 | 57 |
58 TEXT runtime·write(SB),7,$-4 | 58 TEXT runtime·write(SB),7,$-4 |
59 MOVL $4, AX | 59 MOVL $4, AX |
60 INT $0x80 | 60 INT $0x80 |
61 RET | 61 RET |
62 | 62 |
63 TEXT runtime·getrlimit(SB),7,$-4 | 63 TEXT runtime·getrlimit(SB),7,$-4 |
64 MOVL $194, AX | 64 MOVL $194, AX |
65 INT $0x80 | 65 INT $0x80 |
66 RET | 66 RET |
67 | 67 |
68 TEXT runtime·raisesigpipe(SB),7,$12 | 68 TEXT runtime·raisesigpipe(SB),7,$12 |
69 // thr_self(&8(SP)) | 69 // thr_self(&8(SP)) |
70 LEAL 8(SP), AX | 70 LEAL 8(SP), AX |
71 MOVL AX, 0(SP) | 71 MOVL AX, 0(SP) |
72 MOVL $432, AX | 72 MOVL $432, AX |
73 INT $0x80 | 73 INT $0x80 |
74 // thr_kill(self, SIGPIPE) | 74 // thr_kill(self, SIGPIPE) |
75 MOVL 8(SP), AX | 75 MOVL 8(SP), AX |
76 MOVL AX, 0(SP) | 76 MOVL AX, 0(SP) |
77 MOVL $13, 4(SP) | 77 MOVL $13, 4(SP) |
78 MOVL $433, AX | 78 MOVL $433, AX |
79 INT $0x80 | 79 INT $0x80 |
80 RET | 80 RET |
81 | 81 |
82 TEXT runtime·notok(SB),7,$0 | |
83 MOVL $0xf1, 0xf1 | |
84 RET | |
85 | |
86 TEXT runtime·mmap(SB),7,$32 | 82 TEXT runtime·mmap(SB),7,$32 |
87 LEAL arg0+0(FP), SI | 83 LEAL arg0+0(FP), SI |
88 LEAL 4(SP), DI | 84 LEAL 4(SP), DI |
89 CLD | 85 CLD |
90 MOVSL | 86 MOVSL |
91 MOVSL | 87 MOVSL |
92 MOVSL | 88 MOVSL |
93 MOVSL | 89 MOVSL |
94 MOVSL | 90 MOVSL |
95 MOVSL | 91 MOVSL |
96 MOVL $0, AX // top 64 bits of file offset | 92 MOVL $0, AX // top 64 bits of file offset |
97 STOSL | 93 STOSL |
98 MOVL $477, AX | 94 MOVL $477, AX |
99 INT $0x80 | 95 INT $0x80 |
100 RET | 96 RET |
101 | 97 |
102 TEXT runtime·munmap(SB),7,$-4 | 98 TEXT runtime·munmap(SB),7,$-4 |
103 MOVL $73, AX | 99 MOVL $73, AX |
104 INT $0x80 | 100 INT $0x80 |
105 JAE 2(PC) | 101 JAE 2(PC) |
106 » CALL» runtime·notok(SB) | 102 » MOVL» $0xf1, 0xf1 // crash |
107 RET | 103 RET |
108 | 104 |
109 TEXT runtime·setitimer(SB), 7, $-4 | 105 TEXT runtime·setitimer(SB), 7, $-4 |
110 MOVL $83, AX | 106 MOVL $83, AX |
111 INT $0x80 | 107 INT $0x80 |
112 RET | 108 RET |
113 | 109 |
114 // func now() (sec int64, nsec int32) | 110 // func now() (sec int64, nsec int32) |
115 TEXT time·now(SB), 7, $32 | 111 TEXT time·now(SB), 7, $32 |
116 MOVL $116, AX | 112 MOVL $116, AX |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 MOVL ret+0(FP), DI | 146 MOVL ret+0(FP), DI |
151 MOVL AX, 0(DI) | 147 MOVL AX, 0(DI) |
152 MOVL DX, 4(DI) | 148 MOVL DX, 4(DI) |
153 RET | 149 RET |
154 | 150 |
155 | 151 |
156 TEXT runtime·sigaction(SB),7,$-4 | 152 TEXT runtime·sigaction(SB),7,$-4 |
157 MOVL $416, AX | 153 MOVL $416, AX |
158 INT $0x80 | 154 INT $0x80 |
159 JAE 2(PC) | 155 JAE 2(PC) |
160 » CALL» runtime·notok(SB) | 156 » MOVL» $0xf1, 0xf1 // crash |
161 RET | 157 RET |
162 | 158 |
163 TEXT runtime·sigtramp(SB),7,$44 | 159 TEXT runtime·sigtramp(SB),7,$44 |
164 get_tls(CX) | 160 get_tls(CX) |
165 | 161 |
166 // save g | 162 // save g |
167 MOVL g(CX), DI | 163 MOVL g(CX), DI |
168 MOVL DI, 20(SP) | 164 MOVL DI, 20(SP) |
169 ········ | 165 ········ |
170 // g = m->gsignal | 166 // g = m->gsignal |
(...skipping 16 matching lines...) Expand all Loading... |
187 get_tls(CX) | 183 get_tls(CX) |
188 MOVL 20(SP), BX | 184 MOVL 20(SP), BX |
189 MOVL BX, g(CX) | 185 MOVL BX, g(CX) |
190 ········ | 186 ········ |
191 // call sigreturn | 187 // call sigreturn |
192 MOVL context+8(FP), AX | 188 MOVL context+8(FP), AX |
193 MOVL $0, 0(SP) // syscall gap | 189 MOVL $0, 0(SP) // syscall gap |
194 MOVL AX, 4(SP) | 190 MOVL AX, 4(SP) |
195 MOVL $417, AX // sigreturn(ucontext) | 191 MOVL $417, AX // sigreturn(ucontext) |
196 INT $0x80 | 192 INT $0x80 |
197 » CALL» runtime·notok(SB) | 193 » MOVL» $0xf1, 0xf1 // crash |
198 RET | 194 RET |
199 | 195 |
200 TEXT runtime·sigaltstack(SB),7,$0 | 196 TEXT runtime·sigaltstack(SB),7,$0 |
201 MOVL $53, AX | 197 MOVL $53, AX |
202 INT $0x80 | 198 INT $0x80 |
203 JAE 2(PC) | 199 JAE 2(PC) |
204 » CALL» runtime·notok(SB) | 200 » MOVL» $0xf1, 0xf1 // crash |
205 RET | 201 RET |
206 | 202 |
207 TEXT runtime·usleep(SB),7,$20 | 203 TEXT runtime·usleep(SB),7,$20 |
208 MOVL $0, DX | 204 MOVL $0, DX |
209 MOVL usec+0(FP), AX | 205 MOVL usec+0(FP), AX |
210 MOVL $1000000, CX | 206 MOVL $1000000, CX |
211 DIVL CX | 207 DIVL CX |
212 MOVL AX, 12(SP) // tv_sec | 208 MOVL AX, 12(SP) // tv_sec |
213 MOVL $1000, AX | 209 MOVL $1000, AX |
214 MULL DX | 210 MULL DX |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
310 TEXT runtime·sigprocmask(SB),7,$16 | 306 TEXT runtime·sigprocmask(SB),7,$16 |
311 MOVL $0, 0(SP) // syscall gap | 307 MOVL $0, 0(SP) // syscall gap |
312 MOVL $3, 4(SP) // arg 1 - how (SIG_SETMASK) | 308 MOVL $3, 4(SP) // arg 1 - how (SIG_SETMASK) |
313 MOVL args+0(FP), AX | 309 MOVL args+0(FP), AX |
314 MOVL AX, 8(SP) // arg 2 - set | 310 MOVL AX, 8(SP) // arg 2 - set |
315 MOVL args+4(FP), AX | 311 MOVL args+4(FP), AX |
316 MOVL AX, 12(SP) // arg 3 - oset | 312 MOVL AX, 12(SP) // arg 3 - oset |
317 MOVL $340, AX // sys_sigprocmask | 313 MOVL $340, AX // sys_sigprocmask |
318 INT $0x80 | 314 INT $0x80 |
319 JAE 2(PC) | 315 JAE 2(PC) |
320 » CALL» runtime·notok(SB) | 316 » MOVL» $0xf1, 0xf1 // crash |
321 RET | 317 RET |
322 | 318 |
323 GLOBL runtime·tlsoffset(SB),$4 | 319 GLOBL runtime·tlsoffset(SB),$4 |
LEFT | RIGHT |