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 386, Linux | 6 // System calls and other sys.stuff for 386, Linux |
7 // | 7 // |
8 | 8 |
9 #include "386/asm.h" | 9 #include "386/asm.h" |
10 | 10 |
11 TEXT runtime·exit(SB),7,$0 | 11 TEXT runtime·exit(SB),7,$0 |
12 MOVL $252, AX // syscall number | 12 MOVL $252, AX // syscall number |
13 MOVL 4(SP), BX | 13 MOVL 4(SP), BX |
14 INT $0x80 | 14 INT $0x80 |
15 INT $3 // not reached | 15 INT $3 // not reached |
16 RET | 16 RET |
17 | 17 |
18 TEXT runtime·exit1(SB),7,$0 | 18 TEXT runtime·exit1(SB),7,$0 |
19 MOVL $1, AX // exit - exit the current os thread | 19 MOVL $1, AX // exit - exit the current os thread |
20 MOVL 4(SP), BX | 20 MOVL 4(SP), BX |
21 INT $0x80 | 21 INT $0x80 |
22 INT $3 // not reached | 22 INT $3 // not reached |
23 RET | 23 RET |
24 | 24 |
| 25 TEXT runtime·open(SB),7,$0 |
| 26 MOVL $5, AX // syscall - open |
| 27 MOVL 4(SP), BX |
| 28 MOVL 8(SP), CX |
| 29 MOVL 12(SP), DX |
| 30 INT $0x80 |
| 31 RET |
| 32 |
| 33 TEXT runtime·close(SB),7,$0 |
| 34 MOVL $6, AX // syscall - close |
| 35 MOVL 4(SP), BX |
| 36 INT $0x80 |
| 37 RET |
| 38 |
25 TEXT runtime·write(SB),7,$0 | 39 TEXT runtime·write(SB),7,$0 |
26 MOVL $4, AX // syscall - write | 40 MOVL $4, AX // syscall - write |
27 » MOVL» 4(SP), BX | 41 » MOVL» 4(SP), BX |
| 42 » MOVL» 8(SP), CX |
| 43 » MOVL» 12(SP), DX |
| 44 » INT» $0x80 |
| 45 » RET |
| 46 |
| 47 TEXT runtime·read(SB),7,$0 |
| 48 » MOVL» $3, AX» » // syscall - read |
| 49 » MOVL» 4(SP), BX |
28 MOVL 8(SP), CX | 50 MOVL 8(SP), CX |
29 MOVL 12(SP), DX | 51 MOVL 12(SP), DX |
30 INT $0x80 | 52 INT $0x80 |
31 RET | 53 RET |
32 | 54 |
33 TEXT runtime·raisesigpipe(SB),7,$12 | 55 TEXT runtime·raisesigpipe(SB),7,$12 |
34 MOVL $224, AX // syscall - gettid | 56 MOVL $224, AX // syscall - gettid |
35 INT $0x80 | 57 INT $0x80 |
36 MOVL AX, 0(SP) // arg 1 tid | 58 MOVL AX, 0(SP) // arg 1 tid |
37 MOVL $13, 4(SP) // arg 2 SIGPIPE | 59 MOVL $13, 4(SP) // arg 2 SIGPIPE |
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
309 INT $3 | 331 INT $3 |
310 | 332 |
311 // compute segment selector - (entry*8+7) | 333 // compute segment selector - (entry*8+7) |
312 MOVL entry+0(FP), AX | 334 MOVL entry+0(FP), AX |
313 SHLL $3, AX | 335 SHLL $3, AX |
314 ADDL $7, AX | 336 ADDL $7, AX |
315 MOVW AX, GS | 337 MOVW AX, GS |
316 | 338 |
317 RET | 339 RET |
318 | 340 |
319 TEXT runtime·schedyield(SB),7,$0 | 341 TEXT runtime·osyield(SB),7,$0 |
320 » MOVL» $24, AX | 342 » MOVL» $158, AX |
321 » INT» $0x80 | 343 » INT» $0x80 |
322 » RET | 344 » RET |
LEFT | RIGHT |