LEFT | RIGHT |
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 // | 5 // |
6 // System calls and other sys.stuff for AMD64, Linux | 6 // System calls and other sys.stuff for AMD64, Linux |
7 // | 7 // |
8 | 8 |
9 #include "zasm_GOOS_GOARCH.h" | 9 #include "zasm_GOOS_GOARCH.h" |
10 | 10 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 RET | 43 RET |
44 | 44 |
45 TEXT runtime·read(SB),7,$0-24 | 45 TEXT runtime·read(SB),7,$0-24 |
46 MOVL 8(SP), DI | 46 MOVL 8(SP), DI |
47 MOVQ 16(SP), SI | 47 MOVQ 16(SP), SI |
48 MOVL 24(SP), DX | 48 MOVL 24(SP), DX |
49 MOVL $0, AX // syscall entry | 49 MOVL $0, AX // syscall entry |
50 SYSCALL | 50 SYSCALL |
51 RET | 51 RET |
52 | 52 |
| 53 TEXT runtime·epollcreate(SB),7,$0-8 |
| 54 MOVL 8(SP), DI |
| 55 MOVL $213, AX // syscall entry |
| 56 SYSCALL |
| 57 CMPQ AX, $0xfffffffffffff001 |
| 58 JLS epollcreateok |
| 59 NEGQ AX |
| 60 RET |
| 61 epollcreateok: |
| 62 MOVQ 16(SP), DI |
| 63 MOVL AX, (DI) |
| 64 MOVL $0, AX |
| 65 RET |
| 66 |
53 TEXT runtime·epollcreate1(SB),7,$0-8 | 67 TEXT runtime·epollcreate1(SB),7,$0-8 |
54 MOVL 8(SP), DI | 68 MOVL 8(SP), DI |
55 MOVL $291, AX // syscall entry | 69 MOVL $291, AX // syscall entry |
56 SYSCALL | 70 SYSCALL |
| 71 CMPQ AX, $0xfffffffffffff001 |
| 72 JLS epollcreate1ok |
| 73 NEGQ AX |
| 74 RET |
| 75 epollcreate1ok: |
| 76 MOVQ 16(SP), DI |
| 77 MOVL AX, (DI) |
| 78 MOVL $0, AX |
57 RET | 79 RET |
58 | 80 |
59 TEXT runtime·epollctl(SB),7,$0-32 | 81 TEXT runtime·epollctl(SB),7,$0-32 |
60 MOVL 8(SP), DI | 82 MOVL 8(SP), DI |
61 » MOVL» 16(SP), SI | 83 » MOVL» 12(SP), SI |
| 84 » MOVL» 16(SP), DX |
| 85 » MOVQ» 24(SP), R10 |
| 86 » MOVL» $233, AX» » » // syscall entry |
| 87 » SYSCALL |
| 88 » RET |
| 89 |
| 90 TEXT runtime·epollwait(SB),7,$0-32 |
| 91 » MOVL» 8(SP), DI |
| 92 » MOVQ» 16(SP), SI |
62 MOVL 24(SP), DX | 93 MOVL 24(SP), DX |
63 » MOVQ» 32(SP), R10 | 94 » MOVL» 28(SP), R10 |
64 » MOVL» $233, AX» » » // syscall entry | 95 » MOVL» $232, AX» » » // syscall entry |
65 SYSCALL | 96 SYSCALL |
66 RET | 97 RET |
67 | 98 |
68 TEXT runtime·getrlimit(SB),7,$0-24 | 99 TEXT runtime·getrlimit(SB),7,$0-24 |
69 MOVL 8(SP), DI | 100 MOVL 8(SP), DI |
70 MOVQ 16(SP), SI | 101 MOVQ 16(SP), SI |
71 MOVL $97, AX // syscall entry | 102 MOVL $97, AX // syscall entry |
72 SYSCALL | 103 SYSCALL |
73 RET | 104 RET |
74 | 105 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 TEXT runtime·mincore(SB),7,$0-24 | 141 TEXT runtime·mincore(SB),7,$0-24 |
111 MOVQ 8(SP), DI | 142 MOVQ 8(SP), DI |
112 MOVQ 16(SP), SI | 143 MOVQ 16(SP), SI |
113 MOVQ 24(SP), DX | 144 MOVQ 24(SP), DX |
114 MOVL $27, AX // syscall entry | 145 MOVL $27, AX // syscall entry |
115 SYSCALL | 146 SYSCALL |
116 RET | 147 RET |
117 | 148 |
118 // func now() (sec int64, nsec int32) | 149 // func now() (sec int64, nsec int32) |
119 TEXT time·now(SB), 7, $32 | 150 TEXT time·now(SB), 7, $32 |
| 151 MOVQ runtime·__vdso_clock_gettime_sym(SB), AX |
| 152 CMPQ AX, $0 |
| 153 JEQ fallback_gtod |
| 154 MOVL $0, DI // CLOCK_REALTIME |
| 155 LEAQ 8(SP), SI |
| 156 CALL AX |
| 157 MOVQ 8(SP), AX // sec |
| 158 MOVQ 16(SP), DX // nsec |
| 159 MOVQ AX, sec+0(FP) |
| 160 MOVL DX, nsec+8(FP) |
| 161 RET |
| 162 fallback_gtod: |
120 LEAQ 8(SP), DI | 163 LEAQ 8(SP), DI |
121 MOVQ $0, SI | 164 MOVQ $0, SI |
122 » MOVQ» $0xffffffffff600000, AX | 165 » MOVQ» runtime·__vdso_gettimeofday_sym(SB), AX |
123 CALL AX | 166 CALL AX |
124 MOVQ 8(SP), AX // sec | 167 MOVQ 8(SP), AX // sec |
125 MOVL 16(SP), DX // usec | 168 MOVL 16(SP), DX // usec |
126 | 169 » IMULQ» $1000, DX |
127 » // sec is in AX, usec in DX | |
128 MOVQ AX, sec+0(FP) | 170 MOVQ AX, sec+0(FP) |
129 IMULQ $1000, DX | |
130 MOVL DX, nsec+8(FP) | 171 MOVL DX, nsec+8(FP) |
131 RET | 172 RET |
132 | 173 |
133 TEXT runtime·nanotime(SB), 7, $32 | 174 TEXT runtime·nanotime(SB), 7, $32 |
134 » LEAQ» 8(SP), DI | 175 » CALL» time·now(SB) |
135 » MOVQ» $0, SI | 176 » MOVQ» 0(SP), AX» // sec |
136 » MOVQ» $0xffffffffff600000, AX | 177 » MOVL» 8(SP), DX» // nsec |
137 » CALL» AX | |
138 » MOVQ» 8(SP), AX» // sec | |
139 » MOVL» 16(SP), DX» // usec | |
140 | 178 |
141 // sec is in AX, usec in DX | 179 // sec is in AX, usec in DX |
142 // return nsec in AX | 180 // return nsec in AX |
143 IMULQ $1000000000, AX | 181 IMULQ $1000000000, AX |
144 IMULQ $1000, DX | |
145 ADDQ DX, AX | 182 ADDQ DX, AX |
146 RET | 183 RET |
147 | 184 |
148 TEXT runtime·rtsigprocmask(SB),7,$0-32 | 185 TEXT runtime·rtsigprocmask(SB),7,$0-32 |
149 MOVL 8(SP), DI | 186 MOVL 8(SP), DI |
150 MOVQ 16(SP), SI | 187 MOVQ 16(SP), SI |
151 MOVQ 24(SP), DX | 188 MOVQ 24(SP), DX |
152 MOVL 32(SP), R10 | 189 MOVL 32(SP), R10 |
153 MOVL $14, AX // syscall entry | 190 MOVL $14, AX // syscall entry |
154 SYSCALL | 191 SYSCALL |
(...skipping 10 matching lines...) Expand all Loading... |
165 MOVL $13, AX // syscall entry | 202 MOVL $13, AX // syscall entry |
166 SYSCALL | 203 SYSCALL |
167 RET | 204 RET |
168 | 205 |
169 TEXT runtime·sigtramp(SB),7,$64 | 206 TEXT runtime·sigtramp(SB),7,$64 |
170 get_tls(BX) | 207 get_tls(BX) |
171 | 208 |
172 // check that m exists | 209 // check that m exists |
173 MOVQ m(BX), BP | 210 MOVQ m(BX), BP |
174 CMPQ BP, $0 | 211 CMPQ BP, $0 |
175 » JNE» 2(PC) | 212 » JNE» 4(PC) |
| 213 » MOVQ» DI, 0(SP) |
176 CALL runtime·badsignal(SB) | 214 CALL runtime·badsignal(SB) |
| 215 RET |
177 | 216 |
178 // save g | 217 // save g |
179 MOVQ g(BX), R10 | 218 MOVQ g(BX), R10 |
180 MOVQ R10, 40(SP) | 219 MOVQ R10, 40(SP) |
181 | 220 |
182 // g = m->gsignal | 221 // g = m->gsignal |
183 MOVQ m_gsignal(BP), BP | 222 MOVQ m_gsignal(BP), BP |
184 MOVQ BP, g(BX) | 223 MOVQ BP, g(BX) |
185 | 224 |
186 MOVQ DI, 0(SP) | 225 MOVQ DI, 0(SP) |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 SYSCALL | 365 SYSCALL |
327 RET | 366 RET |
328 | 367 |
329 TEXT runtime·sched_getaffinity(SB),7,$0 | 368 TEXT runtime·sched_getaffinity(SB),7,$0 |
330 MOVQ 8(SP), DI | 369 MOVQ 8(SP), DI |
331 MOVL 16(SP), SI | 370 MOVL 16(SP), SI |
332 MOVQ 24(SP), DX | 371 MOVQ 24(SP), DX |
333 MOVL $204, AX // syscall entry | 372 MOVL $204, AX // syscall entry |
334 SYSCALL | 373 SYSCALL |
335 RET | 374 RET |
LEFT | RIGHT |