Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(21)

Side by Side Diff: src/pkg/runtime/sys_nacl_386.s

Issue 135830043: code review 135830043: cmd/cc, runtime: convert C compilers to use Go calling ... (Closed)
Patch Set: diff -r 9fafd63bc3c564070ce477ebaba1545f4a11b58f https://code.google.com/p/go/ Created 10 years, 6 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/pkg/runtime/sys_linux_arm.s ('k') | src/pkg/runtime/sys_nacl_amd64p32.s » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Go Authors. All rights reserved. 1 // Copyright 2013 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 #include "zasm_GOOS_GOARCH.h" 5 #include "zasm_GOOS_GOARCH.h"
6 #include "../../cmd/ld/textflag.h" 6 #include "../../cmd/ld/textflag.h"
7 #include "syscall_nacl.h" 7 #include "syscall_nacl.h"
8 8
9 #define NACL_SYSCALL(code) \ 9 #define NACL_SYSCALL(code) \
10 MOVL $(0x10000 + ((code)<<5)), AX; CALL AX 10 MOVL $(0x10000 + ((code)<<5)), AX; CALL AX
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 TEXT runtime·mstart_nacl(SB),NOSPLIT,$0 89 TEXT runtime·mstart_nacl(SB),NOSPLIT,$0
90 JMP runtime·mstart(SB) 90 JMP runtime·mstart(SB)
91 91
92 TEXT runtime·nacl_nanosleep(SB),NOSPLIT,$0 92 TEXT runtime·nacl_nanosleep(SB),NOSPLIT,$0
93 NACL_SYSJMP(SYS_nanosleep) 93 NACL_SYSJMP(SYS_nanosleep)
94 94
95 TEXT runtime·osyield(SB),NOSPLIT,$0 95 TEXT runtime·osyield(SB),NOSPLIT,$0
96 NACL_SYSJMP(SYS_sched_yield) 96 NACL_SYSJMP(SYS_sched_yield)
97 97
98 TEXT runtime·mmap(SB),NOSPLIT,$32 98 TEXT runtime·mmap(SB),NOSPLIT,$32
99 » MOVL» arg1+0(FP), AX 99 » MOVL» addr+0(FP), AX
100 MOVL AX, 0(SP) 100 MOVL AX, 0(SP)
101 » MOVL» arg2+4(FP), AX 101 » MOVL» n+4(FP), AX
102 MOVL AX, 4(SP) 102 MOVL AX, 4(SP)
103 » MOVL» arg3+8(FP), AX 103 » MOVL» prot+8(FP), AX
104 MOVL AX, 8(SP) 104 MOVL AX, 8(SP)
105 » MOVL» arg4+12(FP), AX 105 » MOVL» flags+12(FP), AX
106 MOVL AX, 12(SP) 106 MOVL AX, 12(SP)
107 » MOVL» arg5+16(FP), AX 107 » MOVL» fd+16(FP), AX
108 MOVL AX, 16(SP) 108 MOVL AX, 16(SP)
109 » MOVL» arg6+20(FP), AX 109 » MOVL» off+20(FP), AX
110 MOVL AX, 24(SP) 110 MOVL AX, 24(SP)
111 MOVL $0, 28(SP) 111 MOVL $0, 28(SP)
112 LEAL 24(SP), AX 112 LEAL 24(SP), AX
113 MOVL AX, 20(SP) 113 MOVL AX, 20(SP)
114 NACL_SYSCALL(SYS_mmap) 114 NACL_SYSCALL(SYS_mmap)
115 MOVL AX, ret+24(FP)
115 RET 116 RET
116 117
117 TEXT time·now(SB),NOSPLIT,$20 118 TEXT time·now(SB),NOSPLIT,$20
118 MOVL $0, 0(SP) // real time clock 119 MOVL $0, 0(SP) // real time clock
119 LEAL 8(SP), AX 120 LEAL 8(SP), AX
120 MOVL AX, 4(SP) // timespec 121 MOVL AX, 4(SP) // timespec
121 NACL_SYSCALL(SYS_clock_gettime) 122 NACL_SYSCALL(SYS_clock_gettime)
122 MOVL 8(SP), AX // low 32 sec 123 MOVL 8(SP), AX // low 32 sec
123 MOVL 12(SP), CX // high 32 sec 124 MOVL 12(SP), CX // high 32 sec
124 MOVL 16(SP), BX // nsec 125 MOVL 16(SP), BX // nsec
(...skipping 18 matching lines...) Expand all
143 MOVL 8(SP), AX // low 32 sec 144 MOVL 8(SP), AX // low 32 sec
144 MOVL 16(SP), BX // nsec 145 MOVL 16(SP), BX // nsec
145 146
146 // sec is in AX, nsec in BX 147 // sec is in AX, nsec in BX
147 // convert to DX:AX nsec 148 // convert to DX:AX nsec
148 MOVL $1000000000, CX 149 MOVL $1000000000, CX
149 MULL CX 150 MULL CX
150 ADDL BX, AX 151 ADDL BX, AX
151 ADCL $0, DX 152 ADCL $0, DX
152 153
153 » MOVL» ret+0(FP), DI 154 » MOVL» AX, ret_lo+0(FP)
154 » MOVL» AX, 0(DI) 155 » MOVL» DX, ret_hi+4(FP)
155 » MOVL» DX, 4(DI)
156 RET 156 RET
157 157
158 TEXT runtime·setldt(SB),NOSPLIT,$8 158 TEXT runtime·setldt(SB),NOSPLIT,$8
159 MOVL addr+4(FP), BX // aka base 159 MOVL addr+4(FP), BX // aka base
160 ADDL $0x8, BX 160 ADDL $0x8, BX
161 MOVL BX, 0(SP) 161 MOVL BX, 0(SP)
162 NACL_SYSCALL(SYS_tls_init) 162 NACL_SYSCALL(SYS_tls_init)
163 RET 163 RET
164 164
165 TEXT runtime·sigtramp(SB),NOSPLIT,$0 165 TEXT runtime·sigtramp(SB),NOSPLIT,$0
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 MOVL 4(BP), CX 234 MOVL 4(BP), CX
235 MOVL 8(BP), DX 235 MOVL 8(BP), DX
236 MOVL 12(BP), BX 236 MOVL 12(BP), BX
237 MOVL 16(BP), SP 237 MOVL 16(BP), SP
238 // 20(BP) is saved BP, never to be seen again 238 // 20(BP) is saved BP, never to be seen again
239 MOVL 24(BP), SI 239 MOVL 24(BP), SI
240 MOVL 28(BP), DI 240 MOVL 28(BP), DI
241 // 36(BP) is saved EFLAGS, never to be seen again 241 // 36(BP) is saved EFLAGS, never to be seen again
242 MOVL 32(BP), BP // saved PC 242 MOVL 32(BP), BP // saved PC
243 JMP BP 243 JMP BP
OLDNEW
« no previous file with comments | « src/pkg/runtime/sys_linux_arm.s ('k') | src/pkg/runtime/sys_nacl_amd64p32.s » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b