mirror of
https://github.com/golang/go
synced 2024-10-02 06:28:33 -06:00
runtime: fix silly frame sizes on arm and arm64
"-8" is not a sensible frame size on arm and we're about to start rejecting it. Replace it with -4. Likewise, "-4" is not a sensible frame size on arm64 and we're about to start rejecting it. Replace it with -8. Finally, clean up some places we're weirdly inconsistent about using 0 versus -8. Change-Id: If85e229993d5f7f1f0cfa9852b4e294d053bd784 Reviewed-on: https://go-review.googlesource.com/92038 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
parent
495174302f
commit
8a064c6008
@ -300,7 +300,7 @@ TEXT runtime·morestack(SB),NOSPLIT,$-8-0
|
|||||||
// is still in this function, and not the beginning of the next.
|
// is still in this function, and not the beginning of the next.
|
||||||
UNDEF
|
UNDEF
|
||||||
|
|
||||||
TEXT runtime·morestack_noctxt(SB),NOSPLIT,$-4-0
|
TEXT runtime·morestack_noctxt(SB),NOSPLIT,$-8-0
|
||||||
MOVW $0, R26
|
MOVW $0, R26
|
||||||
B runtime·morestack(SB)
|
B runtime·morestack(SB)
|
||||||
|
|
||||||
@ -745,7 +745,7 @@ eq:
|
|||||||
MOVB R3, ret+16(FP)
|
MOVB R3, ret+16(FP)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
TEXT runtime·cmpstring(SB),NOSPLIT,$-4-40
|
TEXT runtime·cmpstring(SB),NOSPLIT,$-8-40
|
||||||
MOVD s1_base+0(FP), R2
|
MOVD s1_base+0(FP), R2
|
||||||
MOVD s1_len+8(FP), R0
|
MOVD s1_len+8(FP), R0
|
||||||
MOVD s2_base+16(FP), R3
|
MOVD s2_base+16(FP), R3
|
||||||
@ -753,7 +753,7 @@ TEXT runtime·cmpstring(SB),NOSPLIT,$-4-40
|
|||||||
ADD $40, RSP, R7
|
ADD $40, RSP, R7
|
||||||
B runtime·cmpbody<>(SB)
|
B runtime·cmpbody<>(SB)
|
||||||
|
|
||||||
TEXT bytes·Compare(SB),NOSPLIT,$-4-56
|
TEXT bytes·Compare(SB),NOSPLIT,$-8-56
|
||||||
MOVD s1+0(FP), R2
|
MOVD s1+0(FP), R2
|
||||||
MOVD s1+8(FP), R0
|
MOVD s1+8(FP), R0
|
||||||
MOVD s2+24(FP), R3
|
MOVD s2+24(FP), R3
|
||||||
@ -770,7 +770,7 @@ TEXT bytes·Compare(SB),NOSPLIT,$-4-56
|
|||||||
//
|
//
|
||||||
// On exit:
|
// On exit:
|
||||||
// R4, R5, and R6 are clobbered
|
// R4, R5, and R6 are clobbered
|
||||||
TEXT runtime·cmpbody<>(SB),NOSPLIT,$-4-0
|
TEXT runtime·cmpbody<>(SB),NOSPLIT,$-8-0
|
||||||
CMP R2, R3
|
CMP R2, R3
|
||||||
BEQ samebytes // same starting pointers; compare lengths
|
BEQ samebytes // same starting pointers; compare lengths
|
||||||
CMP R0, R1
|
CMP R0, R1
|
||||||
|
@ -29,10 +29,10 @@ ok:
|
|||||||
TEXT runtime∕internal∕atomic·Casuintptr(SB), NOSPLIT, $0-25
|
TEXT runtime∕internal∕atomic·Casuintptr(SB), NOSPLIT, $0-25
|
||||||
B runtime∕internal∕atomic·Cas64(SB)
|
B runtime∕internal∕atomic·Cas64(SB)
|
||||||
|
|
||||||
TEXT runtime∕internal∕atomic·Loaduintptr(SB), NOSPLIT, $-8-16
|
TEXT runtime∕internal∕atomic·Loaduintptr(SB), NOSPLIT, $0-16
|
||||||
B runtime∕internal∕atomic·Load64(SB)
|
B runtime∕internal∕atomic·Load64(SB)
|
||||||
|
|
||||||
TEXT runtime∕internal∕atomic·Loaduint(SB), NOSPLIT, $-8-16
|
TEXT runtime∕internal∕atomic·Loaduint(SB), NOSPLIT, $0-16
|
||||||
B runtime∕internal∕atomic·Load64(SB)
|
B runtime∕internal∕atomic·Load64(SB)
|
||||||
|
|
||||||
TEXT runtime∕internal∕atomic·Storeuintptr(SB), NOSPLIT, $0-16
|
TEXT runtime∕internal∕atomic·Storeuintptr(SB), NOSPLIT, $0-16
|
||||||
|
@ -5,21 +5,21 @@
|
|||||||
#include "textflag.h"
|
#include "textflag.h"
|
||||||
|
|
||||||
// uint32 runtime∕internal∕atomic·Load(uint32 volatile* addr)
|
// uint32 runtime∕internal∕atomic·Load(uint32 volatile* addr)
|
||||||
TEXT ·Load(SB),NOSPLIT,$-8-12
|
TEXT ·Load(SB),NOSPLIT,$0-12
|
||||||
MOVD ptr+0(FP), R0
|
MOVD ptr+0(FP), R0
|
||||||
LDARW (R0), R0
|
LDARW (R0), R0
|
||||||
MOVW R0, ret+8(FP)
|
MOVW R0, ret+8(FP)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
// uint64 runtime∕internal∕atomic·Load64(uint64 volatile* addr)
|
// uint64 runtime∕internal∕atomic·Load64(uint64 volatile* addr)
|
||||||
TEXT ·Load64(SB),NOSPLIT,$-8-16
|
TEXT ·Load64(SB),NOSPLIT,$0-16
|
||||||
MOVD ptr+0(FP), R0
|
MOVD ptr+0(FP), R0
|
||||||
LDAR (R0), R0
|
LDAR (R0), R0
|
||||||
MOVD R0, ret+8(FP)
|
MOVD R0, ret+8(FP)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
// void *runtime∕internal∕atomic·Loadp(void *volatile *addr)
|
// void *runtime∕internal∕atomic·Loadp(void *volatile *addr)
|
||||||
TEXT ·Loadp(SB),NOSPLIT,$-8-16
|
TEXT ·Loadp(SB),NOSPLIT,$0-16
|
||||||
MOVD ptr+0(FP), R0
|
MOVD ptr+0(FP), R0
|
||||||
LDAR (R0), R0
|
LDAR (R0), R0
|
||||||
MOVD R0, ret+8(FP)
|
MOVD R0, ret+8(FP)
|
||||||
|
@ -74,7 +74,7 @@ TEXT runtime·thr_start(SB),NOSPLIT,$0
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
// Exit the entire program (like C exit)
|
// Exit the entire program (like C exit)
|
||||||
TEXT runtime·exit(SB),NOSPLIT,$-8
|
TEXT runtime·exit(SB),NOSPLIT,$-4
|
||||||
MOVW code+0(FP), R0 // arg 1 exit status
|
MOVW code+0(FP), R0 // arg 1 exit status
|
||||||
MOVW $SYS_exit, R7
|
MOVW $SYS_exit, R7
|
||||||
SWI $0
|
SWI $0
|
||||||
@ -99,7 +99,7 @@ storeloop:
|
|||||||
MOVW.CS R8, (R8)
|
MOVW.CS R8, (R8)
|
||||||
JMP 0(PC)
|
JMP 0(PC)
|
||||||
|
|
||||||
TEXT runtime·open(SB),NOSPLIT,$-8
|
TEXT runtime·open(SB),NOSPLIT,$-4
|
||||||
MOVW name+0(FP), R0 // arg 1 name
|
MOVW name+0(FP), R0 // arg 1 name
|
||||||
MOVW mode+4(FP), R1 // arg 2 mode
|
MOVW mode+4(FP), R1 // arg 2 mode
|
||||||
MOVW perm+8(FP), R2 // arg 3 perm
|
MOVW perm+8(FP), R2 // arg 3 perm
|
||||||
@ -109,7 +109,7 @@ TEXT runtime·open(SB),NOSPLIT,$-8
|
|||||||
MOVW R0, ret+12(FP)
|
MOVW R0, ret+12(FP)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
TEXT runtime·read(SB),NOSPLIT,$-8
|
TEXT runtime·read(SB),NOSPLIT,$-4
|
||||||
MOVW fd+0(FP), R0 // arg 1 fd
|
MOVW fd+0(FP), R0 // arg 1 fd
|
||||||
MOVW p+4(FP), R1 // arg 2 buf
|
MOVW p+4(FP), R1 // arg 2 buf
|
||||||
MOVW n+8(FP), R2 // arg 3 count
|
MOVW n+8(FP), R2 // arg 3 count
|
||||||
@ -119,7 +119,7 @@ TEXT runtime·read(SB),NOSPLIT,$-8
|
|||||||
MOVW R0, ret+12(FP)
|
MOVW R0, ret+12(FP)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
TEXT runtime·write(SB),NOSPLIT,$-8
|
TEXT runtime·write(SB),NOSPLIT,$-4
|
||||||
MOVW fd+0(FP), R0 // arg 1 fd
|
MOVW fd+0(FP), R0 // arg 1 fd
|
||||||
MOVW p+4(FP), R1 // arg 2 buf
|
MOVW p+4(FP), R1 // arg 2 buf
|
||||||
MOVW n+8(FP), R2 // arg 3 count
|
MOVW n+8(FP), R2 // arg 3 count
|
||||||
@ -129,7 +129,7 @@ TEXT runtime·write(SB),NOSPLIT,$-8
|
|||||||
MOVW R0, ret+12(FP)
|
MOVW R0, ret+12(FP)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
TEXT runtime·closefd(SB),NOSPLIT,$-8
|
TEXT runtime·closefd(SB),NOSPLIT,$-4
|
||||||
MOVW fd+0(FP), R0 // arg 1 fd
|
MOVW fd+0(FP), R0 // arg 1 fd
|
||||||
MOVW $SYS_close, R7
|
MOVW $SYS_close, R7
|
||||||
SWI $0
|
SWI $0
|
||||||
@ -137,7 +137,7 @@ TEXT runtime·closefd(SB),NOSPLIT,$-8
|
|||||||
MOVW R0, ret+4(FP)
|
MOVW R0, ret+4(FP)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
TEXT runtime·getrlimit(SB),NOSPLIT,$-8
|
TEXT runtime·getrlimit(SB),NOSPLIT,$-4
|
||||||
MOVW kind+0(FP), R0
|
MOVW kind+0(FP), R0
|
||||||
MOVW limit+4(FP), R1
|
MOVW limit+4(FP), R1
|
||||||
MOVW $SYS_getrlimit, R7
|
MOVW $SYS_getrlimit, R7
|
||||||
@ -168,7 +168,7 @@ TEXT runtime·raiseproc(SB),NOSPLIT,$0
|
|||||||
SWI $0
|
SWI $0
|
||||||
RET
|
RET
|
||||||
|
|
||||||
TEXT runtime·setitimer(SB), NOSPLIT, $-8
|
TEXT runtime·setitimer(SB), NOSPLIT, $-4
|
||||||
MOVW mode+0(FP), R0
|
MOVW mode+0(FP), R0
|
||||||
MOVW new+4(FP), R1
|
MOVW new+4(FP), R1
|
||||||
MOVW old+8(FP), R2
|
MOVW old+8(FP), R2
|
||||||
@ -216,7 +216,7 @@ TEXT runtime·nanotime(SB), NOSPLIT, $32
|
|||||||
MOVW R1, ret_hi+4(FP)
|
MOVW R1, ret_hi+4(FP)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
TEXT runtime·sigaction(SB),NOSPLIT,$-8
|
TEXT runtime·sigaction(SB),NOSPLIT,$-4
|
||||||
MOVW sig+0(FP), R0 // arg 1 sig
|
MOVW sig+0(FP), R0 // arg 1 sig
|
||||||
MOVW new+4(FP), R1 // arg 2 act
|
MOVW new+4(FP), R1 // arg 2 act
|
||||||
MOVW old+8(FP), R2 // arg 3 oact
|
MOVW old+8(FP), R2 // arg 3 oact
|
||||||
@ -283,7 +283,7 @@ TEXT runtime·madvise(SB),NOSPLIT,$0
|
|||||||
// ignore failure - maybe pages are locked
|
// ignore failure - maybe pages are locked
|
||||||
RET
|
RET
|
||||||
|
|
||||||
TEXT runtime·sigaltstack(SB),NOSPLIT,$-8
|
TEXT runtime·sigaltstack(SB),NOSPLIT,$-4
|
||||||
MOVW new+0(FP), R0
|
MOVW new+0(FP), R0
|
||||||
MOVW old+4(FP), R1
|
MOVW old+4(FP), R1
|
||||||
MOVW $SYS_sigaltstack, R7
|
MOVW $SYS_sigaltstack, R7
|
||||||
|
@ -33,7 +33,7 @@ storeloop:
|
|||||||
MOVW R8, (R8)
|
MOVW R8, (R8)
|
||||||
JMP 0(PC)
|
JMP 0(PC)
|
||||||
|
|
||||||
TEXT runtime·open(SB),NOSPLIT,$-8
|
TEXT runtime·open(SB),NOSPLIT,$-4
|
||||||
MOVW name+0(FP), R0
|
MOVW name+0(FP), R0
|
||||||
MOVW mode+4(FP), R1
|
MOVW mode+4(FP), R1
|
||||||
MOVW perm+8(FP), R2
|
MOVW perm+8(FP), R2
|
||||||
@ -42,14 +42,14 @@ TEXT runtime·open(SB),NOSPLIT,$-8
|
|||||||
MOVW R0, ret+12(FP)
|
MOVW R0, ret+12(FP)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
TEXT runtime·closefd(SB),NOSPLIT,$-8
|
TEXT runtime·closefd(SB),NOSPLIT,$-4
|
||||||
MOVW fd+0(FP), R0
|
MOVW fd+0(FP), R0
|
||||||
SWI $0xa00006
|
SWI $0xa00006
|
||||||
MOVW.CS $-1, R0
|
MOVW.CS $-1, R0
|
||||||
MOVW R0, ret+4(FP)
|
MOVW R0, ret+4(FP)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
TEXT runtime·read(SB),NOSPLIT,$-8
|
TEXT runtime·read(SB),NOSPLIT,$-4
|
||||||
MOVW fd+0(FP), R0
|
MOVW fd+0(FP), R0
|
||||||
MOVW p+4(FP), R1
|
MOVW p+4(FP), R1
|
||||||
MOVW n+8(FP), R2
|
MOVW n+8(FP), R2
|
||||||
|
Loading…
Reference in New Issue
Block a user