aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/sys_linux_arm.s
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2015-02-17 18:30:27 -0800
committerRob Pike <r@golang.org>2015-02-18 03:41:29 +0000
commit345350bf07f1b584bde03b7031c15511b1801d25 (patch)
tree8e86adefbabd8177269e0001e77df99ee1d1493e /src/runtime/sys_linux_arm.s
parentc7fa3c625ee0dd09d8ce88b060ffd883ac50582b (diff)
downloadgo-345350bf07f1b584bde03b7031c15511b1801d25.tar.xz
[dev.cc] cmd/asm: make 4(SP) illegal except on 386
Require a name to be specified when referencing the pseudo-stack. If you want a real stack offset, use the hardware stack pointer (e.g., R13 on arm), not SP. Fix affected assembly files. Change-Id: If3545f187a43cdda4acc892000038ec25901132a Reviewed-on: https://go-review.googlesource.com/5120 Run-TryBot: Rob Pike <r@golang.org> Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: Dave Cheney <dave@cheney.net>
Diffstat (limited to 'src/runtime/sys_linux_arm.s')
-rw-r--r--src/runtime/sys_linux_arm.s142
1 files changed, 71 insertions, 71 deletions
diff --git a/src/runtime/sys_linux_arm.s b/src/runtime/sys_linux_arm.s
index b0a9b4fc7d..11d20b8dce 100644
--- a/src/runtime/sys_linux_arm.s
+++ b/src/runtime/sys_linux_arm.s
@@ -52,49 +52,49 @@
#define ARM_BASE (SYS_BASE + 0x0f0000)
TEXT runtime·open(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
- MOVW 8(FP), R2
+ MOVW name+0(FP), R0
+ MOVW flag+4(FP), R1
+ MOVW mode+8(FP), R2
MOVW $SYS_open, R7
SWI $0
MOVW R0, ret+12(FP)
RET
TEXT runtime·close(SB),NOSPLIT,$0
- MOVW 0(FP), R0
+ MOVW fd+0(FP), R0
MOVW $SYS_close, R7
SWI $0
MOVW R0, ret+4(FP)
RET
TEXT runtime·write(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
- MOVW 8(FP), R2
+ MOVW fd+0(FP), R0
+ MOVW buf+4(FP), R1
+ MOVW n+8(FP), R2
MOVW $SYS_write, R7
SWI $0
MOVW R0, ret+12(FP)
RET
TEXT runtime·read(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
- MOVW 8(FP), R2
+ MOVW fd+0(FP), R0
+ MOVW buf+4(FP), R1
+ MOVW n+8(FP), R2
MOVW $SYS_read, R7
SWI $0
MOVW R0, ret+12(FP)
RET
TEXT runtime·getrlimit(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
+ MOVW res+0(FP), R0
+ MOVW rlp+4(FP), R1
MOVW $SYS_ugetrlimit, R7
SWI $0
MOVW R0, ret+8(FP)
RET
TEXT runtime·exit(SB),NOSPLIT,$-4
- MOVW 0(FP), R0
+ MOVW code+0(FP), R0
MOVW $SYS_exit_group, R7
SWI $0
MOVW $1234, R0
@@ -102,7 +102,7 @@ TEXT runtime·exit(SB),NOSPLIT,$-4
MOVW R0, (R1) // fail hard
TEXT runtime·exit1(SB),NOSPLIT,$-4
- MOVW 0(FP), R0
+ MOVW code+0(FP), R0
MOVW $SYS_exit, R7
SWI $0
MOVW $1234, R0
@@ -128,12 +128,12 @@ TEXT runtime·raiseproc(SB),NOSPLIT,$-4
RET
TEXT runtime·mmap(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
- MOVW 8(FP), R2
- MOVW 12(FP), R3
- MOVW 16(FP), R4
- MOVW 20(FP), R5
+ MOVW addr+0(FP), R0
+ MOVW len+4(FP), R1
+ MOVW prot+8(FP), R2
+ MOVW flags+12(FP), R3
+ MOVW fd+16(FP), R4
+ MOVW off+20(FP), R5
MOVW $SYS_mmap2, R7
SWI $0
MOVW $0xfffff001, R6
@@ -143,8 +143,8 @@ TEXT runtime·mmap(SB),NOSPLIT,$0
RET
TEXT runtime·munmap(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
+ MOVW addr+0(FP), R0
+ MOVW len+4(FP), R1
MOVW $SYS_munmap, R7
SWI $0
MOVW $0xfffff001, R6
@@ -154,26 +154,26 @@ TEXT runtime·munmap(SB),NOSPLIT,$0
RET
TEXT runtime·madvise(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
- MOVW 8(FP), R2
+ MOVW addr+0(FP), R0
+ MOVW len+4(FP), R1
+ MOVW advice+8(FP), R2
MOVW $SYS_madvise, R7
SWI $0
// ignore failure - maybe pages are locked
RET
TEXT runtime·setitimer(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
- MOVW 8(FP), R2
+ MOVW which+0(FP), R0
+ MOVW value+4(FP), R1
+ MOVW ovalue+8(FP), R2
MOVW $SYS_setitimer, R7
SWI $0
RET
TEXT runtime·mincore(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
- MOVW 8(FP), R2
+ MOVW addr+0(FP), R0
+ MOVW len+4(FP), R1
+ MOVW vec+8(FP), R2
MOVW $SYS_mincore, R7
SWI $0
MOVW R0, ret+12(FP)
@@ -188,10 +188,10 @@ TEXT time·now(SB), NOSPLIT, $32
MOVW 8(R13), R0 // sec
MOVW 12(R13), R2 // nsec
- MOVW R0, 0(FP)
+ MOVW R0, sec+0(FP)
MOVW $0, R1
- MOVW R1, 4(FP)
- MOVW R2, 8(FP)
+ MOVW R1, loc+4(FP)
+ MOVW R2, nsec+8(FP)
RET
// int64 nanotime(void)
@@ -217,12 +217,12 @@ TEXT runtime·nanotime(SB),NOSPLIT,$32
// int32 futex(int32 *uaddr, int32 op, int32 val,
// struct timespec *timeout, int32 *uaddr2, int32 val2);
TEXT runtime·futex(SB),NOSPLIT,$0
- MOVW 4(SP), R0
- MOVW 8(SP), R1
- MOVW 12(SP), R2
- MOVW 16(SP), R3
- MOVW 20(SP), R4
- MOVW 24(SP), R5
+ MOVW 4(R13), R0
+ MOVW 8(R13), R1
+ MOVW 12(R13), R2
+ MOVW 16(R13), R3
+ MOVW 20(R13), R4
+ MOVW 24(R13), R5
MOVW $SYS_futex, R7
SWI $0
MOVW R0, ret+24(FP)
@@ -297,8 +297,8 @@ TEXT runtime·clone(SB),NOSPLIT,$0
MOVW R0, (R1)
TEXT runtime·sigaltstack(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
+ MOVW ss+0(FP), R0
+ MOVW oss+4(FP), R1
MOVW $SYS_sigaltstack, R7
SWI $0
MOVW $0xfffff001, R6
@@ -345,19 +345,19 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$24
RET
TEXT runtime·rtsigprocmask(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
- MOVW 8(FP), R2
- MOVW 12(FP), R3
+ MOVW mask+0(FP), R0
+ MOVW how+4(FP), R1
+ MOVW set+8(FP), R2
+ MOVW oldset+12(FP), R3
MOVW $SYS_rt_sigprocmask, R7
SWI $0
RET
TEXT runtime·rt_sigaction(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
- MOVW 8(FP), R2
- MOVW 12(FP), R3
+ MOVW mask+0(FP), R0
+ MOVW signum+4(FP), R1
+ MOVW act+8(FP), R2
+ MOVW oldact+12(FP), R3
MOVW $SYS_rt_sigaction, R7
SWI $0
MOVW R0, ret+16(FP)
@@ -369,13 +369,13 @@ TEXT runtime·usleep(SB),NOSPLIT,$12
MOVW $1000000, R2
DIV R2, R0
MOD R2, R1
- MOVW R0, 4(SP)
- MOVW R1, 8(SP)
+ MOVW R0, 4(R13)
+ MOVW R1, 8(R13)
MOVW $0, R0
MOVW $0, R1
MOVW $0, R2
MOVW $0, R3
- MOVW $4(SP), R4
+ MOVW $4(R13), R4
MOVW $SYS_select, R7
SWI $0
RET
@@ -415,9 +415,9 @@ TEXT runtime·osyield(SB),NOSPLIT,$0
RET
TEXT runtime·sched_getaffinity(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
- MOVW 8(FP), R2
+ MOVW pid+0(FP), R0
+ MOVW setsize+4(FP), R1
+ MOVW mask+8(FP), R2
MOVW $SYS_sched_getaffinity, R7
SWI $0
MOVW R0, ret+12(FP)
@@ -425,7 +425,7 @@ TEXT runtime·sched_getaffinity(SB),NOSPLIT,$0
// int32 runtime·epollcreate(int32 size)
TEXT runtime·epollcreate(SB),NOSPLIT,$0
- MOVW 0(FP), R0
+ MOVW size+0(FP), R0
MOVW $SYS_epoll_create, R7
SWI $0
MOVW R0, ret+4(FP)
@@ -433,7 +433,7 @@ TEXT runtime·epollcreate(SB),NOSPLIT,$0
// int32 runtime·epollcreate1(int32 flags)
TEXT runtime·epollcreate1(SB),NOSPLIT,$0
- MOVW 0(FP), R0
+ MOVW size+0(FP), R0
MOVW $SYS_epoll_create1, R7
SWI $0
MOVW R0, ret+4(FP)
@@ -452,10 +452,10 @@ TEXT runtime·epollctl(SB),NOSPLIT,$0
// int32 runtime·epollwait(int32 epfd, EpollEvent *ev, int32 nev, int32 timeout)
TEXT runtime·epollwait(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
- MOVW 8(FP), R2
- MOVW 12(FP), R3
+ MOVW epfd+0(FP), R0
+ MOVW events+4(FP), R1
+ MOVW maxevents+8(FP), R2
+ MOVW timeout+12(FP), R3
MOVW $SYS_epoll_wait, R7
SWI $0
MOVW R0, ret+16(FP)
@@ -463,7 +463,7 @@ TEXT runtime·epollwait(SB),NOSPLIT,$0
// void runtime·closeonexec(int32 fd)
TEXT runtime·closeonexec(SB),NOSPLIT,$0
- MOVW 0(FP), R0 // fd
+ MOVW fd+0(FP), R0 // fd
MOVW $2, R1 // F_SETFD
MOVW $1, R2 // FD_CLOEXEC
MOVW $SYS_fcntl, R7
@@ -476,26 +476,26 @@ TEXT runtime·read_tls_fallback(SB),NOSPLIT,$-4
B (R0)
TEXT runtime·access(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
+ MOVW name+0(FP), R0
+ MOVW mode+4(FP), R1
MOVW $SYS_access, R7
SWI $0
MOVW R0, ret+8(FP)
RET
TEXT runtime·connect(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
- MOVW 8(FP), R2
+ MOVW fd+0(FP), R0
+ MOVW addr+4(FP), R1
+ MOVW addrlen+8(FP), R2
MOVW $SYS_connect, R7
SWI $0
MOVW R0, ret+12(FP)
RET
TEXT runtime·socket(SB),NOSPLIT,$0
- MOVW 0(FP), R0
- MOVW 4(FP), R1
- MOVW 8(FP), R2
+ MOVW domain+0(FP), R0
+ MOVW type+4(FP), R1
+ MOVW protocol+8(FP), R2
MOVW $SYS_socket, R7
SWI $0
MOVW R0, ret+12(FP)