Commit 2774b373 authored by Austin Clements's avatar Austin Clements

all: use RET instead of RETURN on ppc64

All of the architectures except ppc64 have only "RET" for the return
mnemonic. ppc64 used to have only "RETURN", but commit cf06ea68
introduced RET as a synonym for RETURN to make ppc64 consistent with
the other architectures. However, that commit was never followed up to
make the code itself consistent by eliminating uses of RETURN.

This commit replaces all uses of RETURN in the ppc64 assembly with
RET.

This was done with
    sed -i 's/\<RETURN\>/RET/' **/*_ppc64x.s
plus one manual change to syscall/asm.s.

Change-Id: I3f6c8d2be157df8841d48de988ee43f3e3087995
Reviewed-on: https://go-review.googlesource.com/10672Reviewed-by: 's avatarRob Pike <r@golang.org>
Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
Reviewed-by: 's avatarMinux Ma <minux@golang.org>
parent 11b99281
...@@ -11,4 +11,4 @@ TEXT ·Abs(SB),NOSPLIT,$0-16 ...@@ -11,4 +11,4 @@ TEXT ·Abs(SB),NOSPLIT,$0-16
MOVD $((1<<63)-1), R4 MOVD $((1<<63)-1), R4
AND R4, R3 AND R4, R3
MOVD R3, ret+8(FP) MOVD R3, ret+8(FP)
RETURN RET
...@@ -17,7 +17,7 @@ TEXT ·makeFuncStub(SB),(NOSPLIT|WRAPPER),$16 ...@@ -17,7 +17,7 @@ TEXT ·makeFuncStub(SB),(NOSPLIT|WRAPPER),$16
MOVD $argframe+0(FP), R3 MOVD $argframe+0(FP), R3
MOVD R3, 16(R1) MOVD R3, 16(R1)
BL ·callReflect(SB) BL ·callReflect(SB)
RETURN RET
// methodValueCall is the code half of the function returned by makeMethodValue. // methodValueCall is the code half of the function returned by makeMethodValue.
// See the comment on the declaration of methodValueCall in makefunc.go // See the comment on the declaration of methodValueCall in makefunc.go
...@@ -29,4 +29,4 @@ TEXT ·methodValueCall(SB),(NOSPLIT|WRAPPER),$16 ...@@ -29,4 +29,4 @@ TEXT ·methodValueCall(SB),(NOSPLIT|WRAPPER),$16
MOVD $argframe+0(FP), R3 MOVD $argframe+0(FP), R3
MOVD R3, 16(R1) MOVD R3, 16(R1)
BL ·callMethod(SB) BL ·callMethod(SB)
RETURN RET
...@@ -80,17 +80,17 @@ nocgo: ...@@ -80,17 +80,17 @@ nocgo:
BL runtime·mstart(SB) BL runtime·mstart(SB)
MOVD R0, 1(R0) MOVD R0, 1(R0)
RETURN RET
DATA runtime·mainPC+0(SB)/8,$runtime·main(SB) DATA runtime·mainPC+0(SB)/8,$runtime·main(SB)
GLOBL runtime·mainPC(SB),RODATA,$8 GLOBL runtime·mainPC(SB),RODATA,$8
TEXT runtime·breakpoint(SB),NOSPLIT,$-8-0 TEXT runtime·breakpoint(SB),NOSPLIT,$-8-0
MOVD R0, 2(R0) // TODO: TD MOVD R0, 2(R0) // TODO: TD
RETURN RET
TEXT runtime·asminit(SB),NOSPLIT,$-8-0 TEXT runtime·asminit(SB),NOSPLIT,$-8-0
RETURN RET
TEXT _cgo_reginit(SB),NOSPLIT,$-8-0 TEXT _cgo_reginit(SB),NOSPLIT,$-8-0
// crosscall_ppc64 and crosscall2 need to reginit, but can't // crosscall_ppc64 and crosscall2 need to reginit, but can't
...@@ -106,7 +106,7 @@ TEXT runtime·reginit(SB),NOSPLIT,$-8-0 ...@@ -106,7 +106,7 @@ TEXT runtime·reginit(SB),NOSPLIT,$-8-0
FSUB F29, F29, F28 FSUB F29, F29, F28
FADD F29, F29, F30 FADD F29, F29, F30
FADD F30, F30, F31 FADD F30, F30, F31
RETURN RET
/* /*
* go-routine * go-routine
...@@ -123,7 +123,7 @@ TEXT runtime·gosave(SB), NOSPLIT, $-8-8 ...@@ -123,7 +123,7 @@ TEXT runtime·gosave(SB), NOSPLIT, $-8-8
MOVD R0, gobuf_lr(R3) MOVD R0, gobuf_lr(R3)
MOVD R0, gobuf_ret(R3) MOVD R0, gobuf_ret(R3)
MOVD R0, gobuf_ctxt(R3) MOVD R0, gobuf_ctxt(R3)
RETURN RET
// void gogo(Gobuf*) // void gogo(Gobuf*)
// restore state from Gobuf; longjmp // restore state from Gobuf; longjmp
...@@ -184,7 +184,7 @@ TEXT runtime·mcall(SB), NOSPLIT, $-8-8 ...@@ -184,7 +184,7 @@ TEXT runtime·mcall(SB), NOSPLIT, $-8-8
TEXT runtime·systemstack_switch(SB), NOSPLIT, $0-0 TEXT runtime·systemstack_switch(SB), NOSPLIT, $0-0
UNDEF UNDEF
BL (LR) // make sure this function is not leaf BL (LR) // make sure this function is not leaf
RETURN RET
// func systemstack(fn func()) // func systemstack(fn func())
TEXT runtime·systemstack(SB), NOSPLIT, $0-8 TEXT runtime·systemstack(SB), NOSPLIT, $0-8
...@@ -241,14 +241,14 @@ switch: ...@@ -241,14 +241,14 @@ switch:
BL runtime·save_g(SB) BL runtime·save_g(SB)
MOVD (g_sched+gobuf_sp)(g), R1 MOVD (g_sched+gobuf_sp)(g), R1
MOVD R0, (g_sched+gobuf_sp)(g) MOVD R0, (g_sched+gobuf_sp)(g)
RETURN RET
noswitch: noswitch:
// already on m stack, just call directly // already on m stack, just call directly
MOVD 0(R11), R3 // code pointer MOVD 0(R11), R3 // code pointer
MOVD R3, CTR MOVD R3, CTR
BL (CTR) BL (CTR)
RETURN RET
/* /*
* support for morestack * support for morestack
...@@ -423,7 +423,7 @@ end: \ ...@@ -423,7 +423,7 @@ end: \
MOVD R4, 24(R1); \ MOVD R4, 24(R1); \
MOVD R6, 32(R1); \ MOVD R6, 32(R1); \
BL runtime·callwritebarrier(SB); \ BL runtime·callwritebarrier(SB); \
RETURN RET
CALLFN(·call16, 16) CALLFN(·call16, 16)
CALLFN(·call32, 32) CALLFN(·call32, 32)
...@@ -475,7 +475,7 @@ cas_again: ...@@ -475,7 +475,7 @@ cas_again:
SYNC SYNC
ISYNC ISYNC
MOVB R3, ret+16(FP) MOVB R3, ret+16(FP)
RETURN RET
cas_fail: cas_fail:
MOVD $0, R3 MOVD $0, R3
BR -5(PC) BR -5(PC)
...@@ -503,7 +503,7 @@ cas64_again: ...@@ -503,7 +503,7 @@ cas64_again:
SYNC SYNC
ISYNC ISYNC
MOVB R3, ret+24(FP) MOVB R3, ret+24(FP)
RETURN RET
cas64_fail: cas64_fail:
MOVD $0, R3 MOVD $0, R3
BR -5(PC) BR -5(PC)
...@@ -545,7 +545,7 @@ TEXT runtime·xadd(SB), NOSPLIT, $0-20 ...@@ -545,7 +545,7 @@ TEXT runtime·xadd(SB), NOSPLIT, $0-20
SYNC SYNC
ISYNC ISYNC
MOVW R3, ret+16(FP) MOVW R3, ret+16(FP)
RETURN RET
TEXT runtime·xadd64(SB), NOSPLIT, $0-24 TEXT runtime·xadd64(SB), NOSPLIT, $0-24
MOVD ptr+0(FP), R4 MOVD ptr+0(FP), R4
...@@ -558,7 +558,7 @@ TEXT runtime·xadd64(SB), NOSPLIT, $0-24 ...@@ -558,7 +558,7 @@ TEXT runtime·xadd64(SB), NOSPLIT, $0-24
SYNC SYNC
ISYNC ISYNC
MOVD R3, ret+16(FP) MOVD R3, ret+16(FP)
RETURN RET
TEXT runtime·xchg(SB), NOSPLIT, $0-20 TEXT runtime·xchg(SB), NOSPLIT, $0-20
MOVD ptr+0(FP), R4 MOVD ptr+0(FP), R4
...@@ -570,7 +570,7 @@ TEXT runtime·xchg(SB), NOSPLIT, $0-20 ...@@ -570,7 +570,7 @@ TEXT runtime·xchg(SB), NOSPLIT, $0-20
SYNC SYNC
ISYNC ISYNC
MOVW R3, ret+16(FP) MOVW R3, ret+16(FP)
RETURN RET
TEXT runtime·xchg64(SB), NOSPLIT, $0-24 TEXT runtime·xchg64(SB), NOSPLIT, $0-24
MOVD ptr+0(FP), R4 MOVD ptr+0(FP), R4
...@@ -582,7 +582,7 @@ TEXT runtime·xchg64(SB), NOSPLIT, $0-24 ...@@ -582,7 +582,7 @@ TEXT runtime·xchg64(SB), NOSPLIT, $0-24
SYNC SYNC
ISYNC ISYNC
MOVD R3, ret+16(FP) MOVD R3, ret+16(FP)
RETURN RET
TEXT runtime·xchgp1(SB), NOSPLIT, $0-24 TEXT runtime·xchgp1(SB), NOSPLIT, $0-24
BR runtime·xchg64(SB) BR runtime·xchg64(SB)
...@@ -591,7 +591,7 @@ TEXT runtime·xchguintptr(SB), NOSPLIT, $0-24 ...@@ -591,7 +591,7 @@ TEXT runtime·xchguintptr(SB), NOSPLIT, $0-24
BR runtime·xchg64(SB) BR runtime·xchg64(SB)
TEXT runtime·procyield(SB),NOSPLIT,$0-0 TEXT runtime·procyield(SB),NOSPLIT,$0-0
RETURN RET
TEXT runtime·atomicstorep1(SB), NOSPLIT, $0-16 TEXT runtime·atomicstorep1(SB), NOSPLIT, $0-16
BR runtime·atomicstore64(SB) BR runtime·atomicstore64(SB)
...@@ -601,14 +601,14 @@ TEXT runtime·atomicstore(SB), NOSPLIT, $0-12 ...@@ -601,14 +601,14 @@ TEXT runtime·atomicstore(SB), NOSPLIT, $0-12
MOVW val+8(FP), R4 MOVW val+8(FP), R4
SYNC SYNC
MOVW R4, 0(R3) MOVW R4, 0(R3)
RETURN RET
TEXT runtime·atomicstore64(SB), NOSPLIT, $0-16 TEXT runtime·atomicstore64(SB), NOSPLIT, $0-16
MOVD ptr+0(FP), R3 MOVD ptr+0(FP), R3
MOVD val+8(FP), R4 MOVD val+8(FP), R4
SYNC SYNC
MOVD R4, 0(R3) MOVD R4, 0(R3)
RETURN RET
// void runtime·atomicor8(byte volatile*, byte); // void runtime·atomicor8(byte volatile*, byte);
TEXT runtime·atomicor8(SB), NOSPLIT, $0-9 TEXT runtime·atomicor8(SB), NOSPLIT, $0-9
...@@ -635,7 +635,7 @@ again: ...@@ -635,7 +635,7 @@ again:
BNE again BNE again
SYNC SYNC
ISYNC ISYNC
RETURN RET
// void runtime·atomicand8(byte volatile*, byte); // void runtime·atomicand8(byte volatile*, byte);
TEXT runtime·atomicand8(SB), NOSPLIT, $0-9 TEXT runtime·atomicand8(SB), NOSPLIT, $0-9
...@@ -665,7 +665,7 @@ again: ...@@ -665,7 +665,7 @@ again:
BNE again BNE again
SYNC SYNC
ISYNC ISYNC
RETURN RET
// void jmpdefer(fv, sp); // void jmpdefer(fv, sp);
// called from deferreturn. // called from deferreturn.
...@@ -692,7 +692,7 @@ TEXT gosave<>(SB),NOSPLIT,$-8 ...@@ -692,7 +692,7 @@ TEXT gosave<>(SB),NOSPLIT,$-8
MOVD R0, (g_sched+gobuf_lr)(g) MOVD R0, (g_sched+gobuf_lr)(g)
MOVD R0, (g_sched+gobuf_ret)(g) MOVD R0, (g_sched+gobuf_ret)(g)
MOVD R0, (g_sched+gobuf_ctxt)(g) MOVD R0, (g_sched+gobuf_ctxt)(g)
RETURN RET
// asmcgocall(void(*fn)(void*), void *arg) // asmcgocall(void(*fn)(void*), void *arg)
// Call fn(arg) on the scheduler stack, // Call fn(arg) on the scheduler stack,
...@@ -911,7 +911,7 @@ TEXT runtime·getcallerpc(SB),NOSPLIT,$8-16 ...@@ -911,7 +911,7 @@ TEXT runtime·getcallerpc(SB),NOSPLIT,$8-16
MOVD 8(R1), R3 MOVD 8(R1), R3
nobar: nobar:
MOVD R3, ret+8(FP) MOVD R3, ret+8(FP)
RETURN RET
TEXT runtime·setcallerpc(SB),NOSPLIT,$8-16 TEXT runtime·setcallerpc(SB),NOSPLIT,$8-16
MOVD pc+8(FP), R3 MOVD pc+8(FP), R3
...@@ -920,7 +920,7 @@ TEXT runtime·setcallerpc(SB),NOSPLIT,$8-16 ...@@ -920,7 +920,7 @@ TEXT runtime·setcallerpc(SB),NOSPLIT,$8-16
CMP R4, R5 CMP R4, R5
BEQ setbar BEQ setbar
MOVD R3, 16(R1) // set LR in caller MOVD R3, 16(R1) // set LR in caller
RETURN RET
setbar: setbar:
// Set the stack barrier return PC. // Set the stack barrier return PC.
MOVD R3, 8(R1) MOVD R3, 8(R1)
...@@ -931,7 +931,7 @@ TEXT runtime·getcallersp(SB),NOSPLIT,$0-16 ...@@ -931,7 +931,7 @@ TEXT runtime·getcallersp(SB),NOSPLIT,$0-16
MOVD argp+0(FP), R3 MOVD argp+0(FP), R3
SUB $8, R3 SUB $8, R3
MOVD R3, ret+8(FP) MOVD R3, ret+8(FP)
RETURN RET
TEXT runtime·abort(SB),NOSPLIT,$-8-0 TEXT runtime·abort(SB),NOSPLIT,$-8-0
MOVW (R0), R0 MOVW (R0), R0
...@@ -950,7 +950,7 @@ TEXT runtime·cputicks(SB),NOSPLIT,$0-8 ...@@ -950,7 +950,7 @@ TEXT runtime·cputicks(SB),NOSPLIT,$0-8
SLD $32, R5 SLD $32, R5
OR R5, R3 OR R5, R3
MOVD R3, ret+0(FP) MOVD R3, ret+0(FP)
RETURN RET
// memhash_varlen(p unsafe.Pointer, h seed) uintptr // memhash_varlen(p unsafe.Pointer, h seed) uintptr
// redirects to memhash(p, h, size) using the size // redirects to memhash(p, h, size) using the size
...@@ -967,7 +967,7 @@ TEXT runtime·memhash_varlen(SB),NOSPLIT,$40-24 ...@@ -967,7 +967,7 @@ TEXT runtime·memhash_varlen(SB),NOSPLIT,$40-24
BL runtime·memhash(SB) BL runtime·memhash(SB)
MOVD 32(R1), R3 MOVD 32(R1), R3
MOVD R3, ret+16(FP) MOVD R3, ret+16(FP)
RETURN RET
// AES hashing not implemented for ppc64 // AES hashing not implemented for ppc64
TEXT runtime·aeshash(SB),NOSPLIT,$-8-0 TEXT runtime·aeshash(SB),NOSPLIT,$-8-0
...@@ -991,7 +991,7 @@ loop: ...@@ -991,7 +991,7 @@ loop:
BNE test BNE test
MOVD $1, R3 MOVD $1, R3
MOVB R3, ret+24(FP) MOVB R3, ret+24(FP)
RETURN RET
test: test:
MOVBZU 1(R3), R6 MOVBZU 1(R3), R6
MOVBZU 1(R4), R7 MOVBZU 1(R4), R7
...@@ -999,7 +999,7 @@ test: ...@@ -999,7 +999,7 @@ test:
BEQ loop BEQ loop
MOVB R0, ret+24(FP) MOVB R0, ret+24(FP)
RETURN RET
// memequal_varlen(a, b unsafe.Pointer) bool // memequal_varlen(a, b unsafe.Pointer) bool
TEXT runtime·memequal_varlen(SB),NOSPLIT,$40-17 TEXT runtime·memequal_varlen(SB),NOSPLIT,$40-17
...@@ -1014,11 +1014,11 @@ TEXT runtime·memequal_varlen(SB),NOSPLIT,$40-17 ...@@ -1014,11 +1014,11 @@ TEXT runtime·memequal_varlen(SB),NOSPLIT,$40-17
BL runtime·memeq(SB) BL runtime·memeq(SB)
MOVBZ 32(R1), R3 MOVBZ 32(R1), R3
MOVB R3, ret+16(FP) MOVB R3, ret+16(FP)
RETURN RET
eq: eq:
MOVD $1, R3 MOVD $1, R3
MOVB R3, ret+16(FP) MOVB R3, ret+16(FP)
RETURN RET
// eqstring tests whether two strings are equal. // eqstring tests whether two strings are equal.
// The compiler guarantees that strings passed // The compiler guarantees that strings passed
...@@ -1032,7 +1032,7 @@ TEXT runtime·eqstring(SB),NOSPLIT,$0-33 ...@@ -1032,7 +1032,7 @@ TEXT runtime·eqstring(SB),NOSPLIT,$0-33
MOVB R5, ret+32(FP) MOVB R5, ret+32(FP)
CMP R3, R4 CMP R3, R4
BNE 2(PC) BNE 2(PC)
RETURN RET
MOVD s1len+8(FP), R5 MOVD s1len+8(FP), R5
SUB $1, R3 SUB $1, R3
SUB $1, R4 SUB $1, R4
...@@ -1040,13 +1040,13 @@ TEXT runtime·eqstring(SB),NOSPLIT,$0-33 ...@@ -1040,13 +1040,13 @@ TEXT runtime·eqstring(SB),NOSPLIT,$0-33
loop: loop:
CMP R3, R8 CMP R3, R8
BNE 2(PC) BNE 2(PC)
RETURN RET
MOVBZU 1(R3), R6 MOVBZU 1(R3), R6
MOVBZU 1(R4), R7 MOVBZU 1(R4), R7
CMP R6, R7 CMP R6, R7
BEQ loop BEQ loop
MOVB R0, ret+32(FP) MOVB R0, ret+32(FP)
RETURN RET
// TODO: share code with memeq? // TODO: share code with memeq?
TEXT bytes·Equal(SB),NOSPLIT,$0-49 TEXT bytes·Equal(SB),NOSPLIT,$0-49
...@@ -1072,12 +1072,12 @@ loop: ...@@ -1072,12 +1072,12 @@ loop:
noteq: noteq:
MOVBZ R0, ret+48(FP) MOVBZ R0, ret+48(FP)
RETURN RET
equal: equal:
MOVD $1, R3 MOVD $1, R3
MOVBZ R3, ret+48(FP) MOVBZ R3, ret+48(FP)
RETURN RET
TEXT bytes·IndexByte(SB),NOSPLIT,$0-40 TEXT bytes·IndexByte(SB),NOSPLIT,$0-40
MOVD s+0(FP), R3 MOVD s+0(FP), R3
...@@ -1096,12 +1096,12 @@ loop: ...@@ -1096,12 +1096,12 @@ loop:
SUB R6, R3 // remove base SUB R6, R3 // remove base
MOVD R3, ret+32(FP) MOVD R3, ret+32(FP)
RETURN RET
notfound: notfound:
MOVD $-1, R3 MOVD $-1, R3
MOVD R3, ret+32(FP) MOVD R3, ret+32(FP)
RETURN RET
TEXT strings·IndexByte(SB),NOSPLIT,$0-32 TEXT strings·IndexByte(SB),NOSPLIT,$0-32
MOVD p+0(FP), R3 MOVD p+0(FP), R3
...@@ -1120,12 +1120,12 @@ loop: ...@@ -1120,12 +1120,12 @@ loop:
SUB R6, R3 // remove base SUB R6, R3 // remove base
MOVD R3, ret+24(FP) MOVD R3, ret+24(FP)
RETURN RET
notfound: notfound:
MOVD $-1, R3 MOVD $-1, R3
MOVD R3, ret+24(FP) MOVD R3, ret+24(FP)
RETURN RET
TEXT runtime·fastrand1(SB), NOSPLIT, $0-4 TEXT runtime·fastrand1(SB), NOSPLIT, $0-4
MOVD g_m(g), R4 MOVD g_m(g), R4
...@@ -1136,11 +1136,11 @@ TEXT runtime·fastrand1(SB), NOSPLIT, $0-4 ...@@ -1136,11 +1136,11 @@ TEXT runtime·fastrand1(SB), NOSPLIT, $0-4
XOR $0x88888eef, R3 XOR $0x88888eef, R3
MOVW R3, m_fastrand(R4) MOVW R3, m_fastrand(R4)
MOVW R3, ret+0(FP) MOVW R3, ret+0(FP)
RETURN RET
TEXT runtime·return0(SB), NOSPLIT, $0 TEXT runtime·return0(SB), NOSPLIT, $0
MOVW $0, R3 MOVW $0, R3
RETURN RET
// Called from cgo wrappers, this function returns g->m->curg.stack.hi. // Called from cgo wrappers, this function returns g->m->curg.stack.hi.
// Must obey the gcc calling convention. // Must obey the gcc calling convention.
...@@ -1169,13 +1169,13 @@ TEXT runtime·goexit(SB),NOSPLIT,$-8-0 ...@@ -1169,13 +1169,13 @@ TEXT runtime·goexit(SB),NOSPLIT,$-8-0
MOVD R0, R0 // NOP MOVD R0, R0 // NOP
TEXT runtime·prefetcht0(SB),NOSPLIT,$0-8 TEXT runtime·prefetcht0(SB),NOSPLIT,$0-8
RETURN RET
TEXT runtime·prefetcht1(SB),NOSPLIT,$0-8 TEXT runtime·prefetcht1(SB),NOSPLIT,$0-8
RETURN RET
TEXT runtime·prefetcht2(SB),NOSPLIT,$0-8 TEXT runtime·prefetcht2(SB),NOSPLIT,$0-8
RETURN RET
TEXT runtime·prefetchnta(SB),NOSPLIT,$0-8 TEXT runtime·prefetchnta(SB),NOSPLIT,$0-8
RETURN RET
...@@ -15,7 +15,7 @@ TEXT ·atomicload(SB),NOSPLIT,$-8-12 ...@@ -15,7 +15,7 @@ TEXT ·atomicload(SB),NOSPLIT,$-8-12
BC 4, 30, 1(PC) // bne- cr7,0x4 BC 4, 30, 1(PC) // bne- cr7,0x4
ISYNC ISYNC
MOVW R3, ret+8(FP) MOVW R3, ret+8(FP)
RETURN RET
// uint64 runtime·atomicload64(uint64 volatile* addr) // uint64 runtime·atomicload64(uint64 volatile* addr)
TEXT ·atomicload64(SB),NOSPLIT,$-8-16 TEXT ·atomicload64(SB),NOSPLIT,$-8-16
...@@ -26,7 +26,7 @@ TEXT ·atomicload64(SB),NOSPLIT,$-8-16 ...@@ -26,7 +26,7 @@ TEXT ·atomicload64(SB),NOSPLIT,$-8-16
BC 4, 30, 1(PC) // bne- cr7,0x4 BC 4, 30, 1(PC) // bne- cr7,0x4
ISYNC ISYNC
MOVD R3, ret+8(FP) MOVD R3, ret+8(FP)
RETURN RET
// void *runtime·atomicloadp(void *volatile *addr) // void *runtime·atomicloadp(void *volatile *addr)
TEXT ·atomicloadp(SB),NOSPLIT,$-8-16 TEXT ·atomicloadp(SB),NOSPLIT,$-8-16
...@@ -37,4 +37,4 @@ TEXT ·atomicloadp(SB),NOSPLIT,$-8-16 ...@@ -37,4 +37,4 @@ TEXT ·atomicloadp(SB),NOSPLIT,$-8-16
BC 4, 30, 1(PC) // bne- cr7,0x4 BC 4, 30, 1(PC) // bne- cr7,0x4
ISYNC ISYNC
MOVD R3, ret+8(FP) MOVD R3, ret+8(FP)
RETURN RET
...@@ -135,6 +135,6 @@ TEXT runtime·duffzero(SB), NOSPLIT, $-8-0 ...@@ -135,6 +135,6 @@ TEXT runtime·duffzero(SB), NOSPLIT, $-8-0
MOVDU R0, 8(R3) MOVDU R0, 8(R3)
MOVDU R0, 8(R3) MOVDU R0, 8(R3)
MOVDU R0, 8(R3) MOVDU R0, 8(R3)
RETURN RET
// TODO: Implement runtime·duffcopy. // TODO: Implement runtime·duffcopy.
...@@ -17,4 +17,4 @@ TEXT runtime·memclr(SB),NOSPLIT,$0-16 ...@@ -17,4 +17,4 @@ TEXT runtime·memclr(SB),NOSPLIT,$0-16
MOVBU R0, 1(R3) MOVBU R0, 1(R3)
BC 25, 0, -1(PC) // bdnz+ $-4 BC 25, 0, -1(PC) // bdnz+ $-4
done: done:
RETURN RET
...@@ -13,7 +13,7 @@ TEXT runtime·memmove(SB), NOSPLIT, $-8-24 ...@@ -13,7 +13,7 @@ TEXT runtime·memmove(SB), NOSPLIT, $-8-24
MOVD n+16(FP), R5 MOVD n+16(FP), R5
CMP R5, $0 CMP R5, $0
BNE check BNE check
RETURN RET
check: check:
CMP R3, R4 CMP R3, R4
...@@ -27,7 +27,7 @@ loop: ...@@ -27,7 +27,7 @@ loop:
MOVBU R6, 1(R3) MOVBU R6, 1(R3)
CMP R3, R5 CMP R3, R5
BNE loop BNE loop
RETURN RET
backward: backward:
ADD R5, R4 ADD R5, R4
...@@ -37,4 +37,4 @@ loop1: ...@@ -37,4 +37,4 @@ loop1:
MOVBU R6, -1(R5) MOVBU R6, -1(R5)
CMP R3, R5 CMP R3, R5
BNE loop1 BNE loop1
RETURN RET
...@@ -50,12 +50,12 @@ ...@@ -50,12 +50,12 @@
TEXT runtime·exit(SB),NOSPLIT,$-8-4 TEXT runtime·exit(SB),NOSPLIT,$-8-4
MOVW code+0(FP), R3 MOVW code+0(FP), R3
SYSCALL $SYS_exit_group SYSCALL $SYS_exit_group
RETURN RET
TEXT runtime·exit1(SB),NOSPLIT,$-8-4 TEXT runtime·exit1(SB),NOSPLIT,$-8-4
MOVW code+0(FP), R3 MOVW code+0(FP), R3
SYSCALL $SYS_exit SYSCALL $SYS_exit
RETURN RET
TEXT runtime·open(SB),NOSPLIT,$-8-20 TEXT runtime·open(SB),NOSPLIT,$-8-20
MOVD name+0(FP), R3 MOVD name+0(FP), R3
...@@ -65,7 +65,7 @@ TEXT runtime·open(SB),NOSPLIT,$-8-20 ...@@ -65,7 +65,7 @@ TEXT runtime·open(SB),NOSPLIT,$-8-20
BVC 2(PC) BVC 2(PC)
MOVW $-1, R3 MOVW $-1, R3
MOVW R3, ret+16(FP) MOVW R3, ret+16(FP)
RETURN RET
TEXT runtime·closefd(SB),NOSPLIT,$-8-12 TEXT runtime·closefd(SB),NOSPLIT,$-8-12
MOVW fd+0(FP), R3 MOVW fd+0(FP), R3
...@@ -73,7 +73,7 @@ TEXT runtime·closefd(SB),NOSPLIT,$-8-12 ...@@ -73,7 +73,7 @@ TEXT runtime·closefd(SB),NOSPLIT,$-8-12
BVC 2(PC) BVC 2(PC)
MOVW $-1, R3 MOVW $-1, R3
MOVW R3, ret+8(FP) MOVW R3, ret+8(FP)
RETURN RET
TEXT runtime·write(SB),NOSPLIT,$-8-28 TEXT runtime·write(SB),NOSPLIT,$-8-28
MOVD fd+0(FP), R3 MOVD fd+0(FP), R3
...@@ -83,7 +83,7 @@ TEXT runtime·write(SB),NOSPLIT,$-8-28 ...@@ -83,7 +83,7 @@ TEXT runtime·write(SB),NOSPLIT,$-8-28
BVC 2(PC) BVC 2(PC)
MOVW $-1, R3 MOVW $-1, R3
MOVW R3, ret+24(FP) MOVW R3, ret+24(FP)
RETURN RET
TEXT runtime·read(SB),NOSPLIT,$-8-28 TEXT runtime·read(SB),NOSPLIT,$-8-28
MOVW fd+0(FP), R3 MOVW fd+0(FP), R3
...@@ -93,14 +93,14 @@ TEXT runtime·read(SB),NOSPLIT,$-8-28 ...@@ -93,14 +93,14 @@ TEXT runtime·read(SB),NOSPLIT,$-8-28
BVC 2(PC) BVC 2(PC)
MOVW $-1, R3 MOVW $-1, R3
MOVW R3, ret+24(FP) MOVW R3, ret+24(FP)
RETURN RET
TEXT runtime·getrlimit(SB),NOSPLIT,$-8-20 TEXT runtime·getrlimit(SB),NOSPLIT,$-8-20
MOVW kind+0(FP), R3 MOVW kind+0(FP), R3
MOVD limit+8(FP), R4 MOVD limit+8(FP), R4
SYSCALL $SYS_ugetrlimit SYSCALL $SYS_ugetrlimit
MOVW R3, ret+16(FP) MOVW R3, ret+16(FP)
RETURN RET
TEXT runtime·usleep(SB),NOSPLIT,$16-4 TEXT runtime·usleep(SB),NOSPLIT,$16-4
MOVW usec+0(FP), R3 MOVW usec+0(FP), R3
...@@ -119,28 +119,28 @@ TEXT runtime·usleep(SB),NOSPLIT,$16-4 ...@@ -119,28 +119,28 @@ TEXT runtime·usleep(SB),NOSPLIT,$16-4
MOVW $0, R6 MOVW $0, R6
ADD $8, R1, R7 ADD $8, R1, R7
SYSCALL $SYS_newselect SYSCALL $SYS_newselect
RETURN RET
TEXT runtime·raise(SB),NOSPLIT,$-8 TEXT runtime·raise(SB),NOSPLIT,$-8
SYSCALL $SYS_gettid SYSCALL $SYS_gettid
MOVW R3, R3 // arg 1 tid MOVW R3, R3 // arg 1 tid
MOVW sig+0(FP), R4 // arg 2 MOVW sig+0(FP), R4 // arg 2
SYSCALL $SYS_tkill SYSCALL $SYS_tkill
RETURN RET
TEXT runtime·raiseproc(SB),NOSPLIT,$-8 TEXT runtime·raiseproc(SB),NOSPLIT,$-8
SYSCALL $SYS_getpid SYSCALL $SYS_getpid
MOVW R3, R3 // arg 1 pid MOVW R3, R3 // arg 1 pid
MOVW sig+0(FP), R4 // arg 2 MOVW sig+0(FP), R4 // arg 2
SYSCALL $SYS_kill SYSCALL $SYS_kill
RETURN RET
TEXT runtime·setitimer(SB),NOSPLIT,$-8-24 TEXT runtime·setitimer(SB),NOSPLIT,$-8-24
MOVW mode+0(FP), R3 MOVW mode+0(FP), R3
MOVD new+8(FP), R4 MOVD new+8(FP), R4
MOVD old+16(FP), R5 MOVD old+16(FP), R5
SYSCALL $SYS_setitimer SYSCALL $SYS_setitimer
RETURN RET
TEXT runtime·mincore(SB),NOSPLIT,$-8-28 TEXT runtime·mincore(SB),NOSPLIT,$-8-28
MOVD addr+0(FP), R3 MOVD addr+0(FP), R3
...@@ -148,7 +148,7 @@ TEXT runtime·mincore(SB),NOSPLIT,$-8-28 ...@@ -148,7 +148,7 @@ TEXT runtime·mincore(SB),NOSPLIT,$-8-28
MOVD dst+16(FP), R5 MOVD dst+16(FP), R5
SYSCALL $SYS_mincore SYSCALL $SYS_mincore
MOVW R3, ret+24(FP) MOVW R3, ret+24(FP)
RETURN RET
// func now() (sec int64, nsec int32) // func now() (sec int64, nsec int32)
TEXT time·now(SB),NOSPLIT,$16 TEXT time·now(SB),NOSPLIT,$16
...@@ -161,7 +161,7 @@ TEXT time·now(SB),NOSPLIT,$16 ...@@ -161,7 +161,7 @@ TEXT time·now(SB),NOSPLIT,$16
MULLD R4, R5 MULLD R4, R5
MOVD R3, sec+0(FP) MOVD R3, sec+0(FP)
MOVW R5, nsec+8(FP) MOVW R5, nsec+8(FP)
RETURN RET
TEXT runtime·nanotime(SB),NOSPLIT,$16 TEXT runtime·nanotime(SB),NOSPLIT,$16
MOVW $1, R3 // CLOCK_MONOTONIC MOVW $1, R3 // CLOCK_MONOTONIC
...@@ -175,7 +175,7 @@ TEXT runtime·nanotime(SB),NOSPLIT,$16 ...@@ -175,7 +175,7 @@ TEXT runtime·nanotime(SB),NOSPLIT,$16
MULLD R4, R3 MULLD R4, R3
ADD R5, R3 ADD R5, R3
MOVD R3, ret+0(FP) MOVD R3, ret+0(FP)
RETURN RET
TEXT runtime·rtsigprocmask(SB),NOSPLIT,$-8-28 TEXT runtime·rtsigprocmask(SB),NOSPLIT,$-8-28
MOVW sig+0(FP), R3 MOVW sig+0(FP), R3
...@@ -185,7 +185,7 @@ TEXT runtime·rtsigprocmask(SB),NOSPLIT,$-8-28 ...@@ -185,7 +185,7 @@ TEXT runtime·rtsigprocmask(SB),NOSPLIT,$-8-28
SYSCALL $SYS_rt_sigprocmask SYSCALL $SYS_rt_sigprocmask
BVC 2(PC) BVC 2(PC)
MOVD R0, 0xf1(R0) // crash MOVD R0, 0xf1(R0) // crash
RETURN RET
TEXT runtime·rt_sigaction(SB),NOSPLIT,$-8-36 TEXT runtime·rt_sigaction(SB),NOSPLIT,$-8-36
MOVD sig+0(FP), R3 MOVD sig+0(FP), R3
...@@ -194,7 +194,7 @@ TEXT runtime·rt_sigaction(SB),NOSPLIT,$-8-36 ...@@ -194,7 +194,7 @@ TEXT runtime·rt_sigaction(SB),NOSPLIT,$-8-36
MOVD size+24(FP), R6 MOVD size+24(FP), R6
SYSCALL $SYS_rt_sigaction SYSCALL $SYS_rt_sigaction
MOVW R3, ret+32(FP) MOVW R3, ret+32(FP)
RETURN RET
TEXT runtime·sigfwd(SB),NOSPLIT,$0-32 TEXT runtime·sigfwd(SB),NOSPLIT,$0-32
MOVW sig+8(FP), R3 MOVW sig+8(FP), R3
...@@ -203,7 +203,7 @@ TEXT runtime·sigfwd(SB),NOSPLIT,$0-32 ...@@ -203,7 +203,7 @@ TEXT runtime·sigfwd(SB),NOSPLIT,$0-32
MOVD fn+0(FP), R31 MOVD fn+0(FP), R31
MOVD R31, CTR MOVD R31, CTR
BL (CTR) BL (CTR)
RETURN RET
#ifdef GOARCH_ppc64le #ifdef GOARCH_ppc64le
// ppc64le doesn't need function descriptors // ppc64le doesn't need function descriptors
...@@ -232,7 +232,7 @@ TEXT runtime·_sigtramp(SB),NOSPLIT,$64 ...@@ -232,7 +232,7 @@ TEXT runtime·_sigtramp(SB),NOSPLIT,$64
MOVD $runtime·sigtrampgo(SB), R31 MOVD $runtime·sigtrampgo(SB), R31
MOVD R31, CTR MOVD R31, CTR
BL (CTR) BL (CTR)
RETURN RET
TEXT runtime·mmap(SB),NOSPLIT,$-8 TEXT runtime·mmap(SB),NOSPLIT,$-8
MOVD addr+0(FP), R3 MOVD addr+0(FP), R3
...@@ -244,7 +244,7 @@ TEXT runtime·mmap(SB),NOSPLIT,$-8 ...@@ -244,7 +244,7 @@ TEXT runtime·mmap(SB),NOSPLIT,$-8
SYSCALL $SYS_mmap SYSCALL $SYS_mmap
MOVD R3, ret+32(FP) MOVD R3, ret+32(FP)
RETURN RET
TEXT runtime·munmap(SB),NOSPLIT,$-8 TEXT runtime·munmap(SB),NOSPLIT,$-8
MOVD addr+0(FP), R3 MOVD addr+0(FP), R3
...@@ -252,7 +252,7 @@ TEXT runtime·munmap(SB),NOSPLIT,$-8 ...@@ -252,7 +252,7 @@ TEXT runtime·munmap(SB),NOSPLIT,$-8
SYSCALL $SYS_munmap SYSCALL $SYS_munmap
BVC 2(PC) BVC 2(PC)
MOVD R0, 0xf3(R0) MOVD R0, 0xf3(R0)
RETURN RET
TEXT runtime·madvise(SB),NOSPLIT,$-8 TEXT runtime·madvise(SB),NOSPLIT,$-8
MOVD addr+0(FP), R3 MOVD addr+0(FP), R3
...@@ -260,7 +260,7 @@ TEXT runtime·madvise(SB),NOSPLIT,$-8 ...@@ -260,7 +260,7 @@ TEXT runtime·madvise(SB),NOSPLIT,$-8
MOVW flags+16(FP), R5 MOVW flags+16(FP), R5
SYSCALL $SYS_madvise SYSCALL $SYS_madvise
// ignore failure - maybe pages are locked // ignore failure - maybe pages are locked
RETURN RET
// int64 futex(int32 *uaddr, int32 op, int32 val, // int64 futex(int32 *uaddr, int32 op, int32 val,
// struct timespec *timeout, int32 *uaddr2, int32 val2); // struct timespec *timeout, int32 *uaddr2, int32 val2);
...@@ -273,7 +273,7 @@ TEXT runtime·futex(SB),NOSPLIT,$-8 ...@@ -273,7 +273,7 @@ TEXT runtime·futex(SB),NOSPLIT,$-8
MOVW val3+32(FP), R8 MOVW val3+32(FP), R8
SYSCALL $SYS_futex SYSCALL $SYS_futex
MOVW R3, ret+40(FP) MOVW R3, ret+40(FP)
RETURN RET
// int64 clone(int32 flags, void *stk, M *mp, G *gp, void (*fn)(void)); // int64 clone(int32 flags, void *stk, M *mp, G *gp, void (*fn)(void));
TEXT runtime·clone(SB),NOSPLIT,$-8 TEXT runtime·clone(SB),NOSPLIT,$-8
...@@ -298,7 +298,7 @@ TEXT runtime·clone(SB),NOSPLIT,$-8 ...@@ -298,7 +298,7 @@ TEXT runtime·clone(SB),NOSPLIT,$-8
CMP R3, $0 CMP R3, $0
BEQ 3(PC) BEQ 3(PC)
MOVW R3, ret+40(FP) MOVW R3, ret+40(FP)
RETURN RET
// In child, on new stack. // In child, on new stack.
// initialize essential registers // initialize essential registers
...@@ -345,11 +345,11 @@ TEXT runtime·sigaltstack(SB),NOSPLIT,$-8 ...@@ -345,11 +345,11 @@ TEXT runtime·sigaltstack(SB),NOSPLIT,$-8
SYSCALL $SYS_sigaltstack SYSCALL $SYS_sigaltstack
BVC 2(PC) BVC 2(PC)
MOVD R0, 0xf1(R0) // crash MOVD R0, 0xf1(R0) // crash
RETURN RET
TEXT runtime·osyield(SB),NOSPLIT,$-8 TEXT runtime·osyield(SB),NOSPLIT,$-8
SYSCALL $SYS_sched_yield SYSCALL $SYS_sched_yield
RETURN RET
TEXT runtime·sched_getaffinity(SB),NOSPLIT,$-8 TEXT runtime·sched_getaffinity(SB),NOSPLIT,$-8
MOVD pid+0(FP), R3 MOVD pid+0(FP), R3
...@@ -357,21 +357,21 @@ TEXT runtime·sched_getaffinity(SB),NOSPLIT,$-8 ...@@ -357,21 +357,21 @@ TEXT runtime·sched_getaffinity(SB),NOSPLIT,$-8
MOVD buf+16(FP), R5 MOVD buf+16(FP), R5
SYSCALL $SYS_sched_getaffinity SYSCALL $SYS_sched_getaffinity
MOVW R3, ret+24(FP) MOVW R3, ret+24(FP)
RETURN RET
// int32 runtime·epollcreate(int32 size); // int32 runtime·epollcreate(int32 size);
TEXT runtime·epollcreate(SB),NOSPLIT,$-8 TEXT runtime·epollcreate(SB),NOSPLIT,$-8
MOVW size+0(FP), R3 MOVW size+0(FP), R3
SYSCALL $SYS_epoll_create SYSCALL $SYS_epoll_create
MOVW R3, ret+8(FP) MOVW R3, ret+8(FP)
RETURN RET
// int32 runtime·epollcreate1(int32 flags); // int32 runtime·epollcreate1(int32 flags);
TEXT runtime·epollcreate1(SB),NOSPLIT,$-8 TEXT runtime·epollcreate1(SB),NOSPLIT,$-8
MOVW flags+0(FP), R3 MOVW flags+0(FP), R3
SYSCALL $SYS_epoll_create1 SYSCALL $SYS_epoll_create1
MOVW R3, ret+8(FP) MOVW R3, ret+8(FP)
RETURN RET
// func epollctl(epfd, op, fd int32, ev *epollEvent) int // func epollctl(epfd, op, fd int32, ev *epollEvent) int
TEXT runtime·epollctl(SB),NOSPLIT,$-8 TEXT runtime·epollctl(SB),NOSPLIT,$-8
...@@ -381,7 +381,7 @@ TEXT runtime·epollctl(SB),NOSPLIT,$-8 ...@@ -381,7 +381,7 @@ TEXT runtime·epollctl(SB),NOSPLIT,$-8
MOVD ev+16(FP), R6 MOVD ev+16(FP), R6
SYSCALL $SYS_epoll_ctl SYSCALL $SYS_epoll_ctl
MOVW R3, ret+24(FP) MOVW R3, ret+24(FP)
RETURN RET
// int32 runtime·epollwait(int32 epfd, EpollEvent *ev, int32 nev, int32 timeout); // int32 runtime·epollwait(int32 epfd, EpollEvent *ev, int32 nev, int32 timeout);
TEXT runtime·epollwait(SB),NOSPLIT,$-8 TEXT runtime·epollwait(SB),NOSPLIT,$-8
...@@ -391,7 +391,7 @@ TEXT runtime·epollwait(SB),NOSPLIT,$-8 ...@@ -391,7 +391,7 @@ TEXT runtime·epollwait(SB),NOSPLIT,$-8
MOVW timeout+20(FP), R6 MOVW timeout+20(FP), R6
SYSCALL $SYS_epoll_wait SYSCALL $SYS_epoll_wait
MOVW R3, ret+24(FP) MOVW R3, ret+24(FP)
RETURN RET
// void runtime·closeonexec(int32 fd); // void runtime·closeonexec(int32 fd);
TEXT runtime·closeonexec(SB),NOSPLIT,$-8 TEXT runtime·closeonexec(SB),NOSPLIT,$-8
...@@ -399,4 +399,4 @@ TEXT runtime·closeonexec(SB),NOSPLIT,$-8 ...@@ -399,4 +399,4 @@ TEXT runtime·closeonexec(SB),NOSPLIT,$-8
MOVD $2, R4 // F_SETFD MOVD $2, R4 // F_SETFD
MOVD $1, R5 // FD_CLOEXEC MOVD $1, R5 // FD_CLOEXEC
SYSCALL $SYS_fcntl SYSCALL $SYS_fcntl
RETURN RET
...@@ -19,7 +19,7 @@ TEXT ·SwapUint32(SB),NOSPLIT,$0-20 ...@@ -19,7 +19,7 @@ TEXT ·SwapUint32(SB),NOSPLIT,$0-20
SYNC SYNC
ISYNC ISYNC
MOVW R5, old+16(FP) MOVW R5, old+16(FP)
RETURN RET
TEXT ·SwapInt64(SB),NOSPLIT,$0-24 TEXT ·SwapInt64(SB),NOSPLIT,$0-24
BR ·SwapUint64(SB) BR ·SwapUint64(SB)
...@@ -34,7 +34,7 @@ TEXT ·SwapUint64(SB),NOSPLIT,$0-24 ...@@ -34,7 +34,7 @@ TEXT ·SwapUint64(SB),NOSPLIT,$0-24
SYNC SYNC
ISYNC ISYNC
MOVD R5, old+16(FP) MOVD R5, old+16(FP)
RETURN RET
TEXT ·SwapUintptr(SB),NOSPLIT,$0-24 TEXT ·SwapUintptr(SB),NOSPLIT,$0-24
BR ·SwapUint64(SB) BR ·SwapUint64(SB)
...@@ -56,9 +56,9 @@ TEXT ·CompareAndSwapUint32(SB),NOSPLIT,$0-17 ...@@ -56,9 +56,9 @@ TEXT ·CompareAndSwapUint32(SB),NOSPLIT,$0-17
ISYNC ISYNC
MOVD $1, R3 MOVD $1, R3
MOVB R3, swapped+16(FP) MOVB R3, swapped+16(FP)
RETURN RET
MOVB R0, swapped+16(FP) MOVB R0, swapped+16(FP)
RETURN RET
TEXT ·CompareAndSwapUintptr(SB),NOSPLIT,$0-25 TEXT ·CompareAndSwapUintptr(SB),NOSPLIT,$0-25
BR ·CompareAndSwapUint64(SB) BR ·CompareAndSwapUint64(SB)
...@@ -80,9 +80,9 @@ TEXT ·CompareAndSwapUint64(SB),NOSPLIT,$0-25 ...@@ -80,9 +80,9 @@ TEXT ·CompareAndSwapUint64(SB),NOSPLIT,$0-25
ISYNC ISYNC
MOVD $1, R3 MOVD $1, R3
MOVB R3, swapped+24(FP) MOVB R3, swapped+24(FP)
RETURN RET
MOVB R0, swapped+24(FP) MOVB R0, swapped+24(FP)
RETURN RET
TEXT ·AddInt32(SB),NOSPLIT,$0-20 TEXT ·AddInt32(SB),NOSPLIT,$0-20
BR ·AddUint32(SB) BR ·AddUint32(SB)
...@@ -98,7 +98,7 @@ TEXT ·AddUint32(SB),NOSPLIT,$0-20 ...@@ -98,7 +98,7 @@ TEXT ·AddUint32(SB),NOSPLIT,$0-20
SYNC SYNC
ISYNC ISYNC
MOVW R5, ret+16(FP) MOVW R5, ret+16(FP)
RETURN RET
TEXT ·AddUintptr(SB),NOSPLIT,$0-24 TEXT ·AddUintptr(SB),NOSPLIT,$0-24
BR ·AddUint64(SB) BR ·AddUint64(SB)
...@@ -117,7 +117,7 @@ TEXT ·AddUint64(SB),NOSPLIT,$0-24 ...@@ -117,7 +117,7 @@ TEXT ·AddUint64(SB),NOSPLIT,$0-24
SYNC SYNC
ISYNC ISYNC
MOVD R5, ret+16(FP) MOVD R5, ret+16(FP)
RETURN RET
TEXT ·LoadInt32(SB),NOSPLIT,$0-12 TEXT ·LoadInt32(SB),NOSPLIT,$0-12
BR ·LoadUint32(SB) BR ·LoadUint32(SB)
...@@ -130,7 +130,7 @@ TEXT ·LoadUint32(SB),NOSPLIT,$0-12 ...@@ -130,7 +130,7 @@ TEXT ·LoadUint32(SB),NOSPLIT,$0-12
BC 4, 30, 1(PC) // bne- cr7,0x4 BC 4, 30, 1(PC) // bne- cr7,0x4
ISYNC ISYNC
MOVW R3, val+8(FP) MOVW R3, val+8(FP)
RETURN RET
TEXT ·LoadInt64(SB),NOSPLIT,$0-16 TEXT ·LoadInt64(SB),NOSPLIT,$0-16
BR ·LoadUint64(SB) BR ·LoadUint64(SB)
...@@ -143,7 +143,7 @@ TEXT ·LoadUint64(SB),NOSPLIT,$0-16 ...@@ -143,7 +143,7 @@ TEXT ·LoadUint64(SB),NOSPLIT,$0-16
BC 4, 30, 1(PC) // bne- cr7,0x4 BC 4, 30, 1(PC) // bne- cr7,0x4
ISYNC ISYNC
MOVD R3, val+8(FP) MOVD R3, val+8(FP)
RETURN RET
TEXT ·LoadUintptr(SB),NOSPLIT,$0-16 TEXT ·LoadUintptr(SB),NOSPLIT,$0-16
BR ·LoadPointer(SB) BR ·LoadPointer(SB)
...@@ -159,7 +159,7 @@ TEXT ·StoreUint32(SB),NOSPLIT,$0-12 ...@@ -159,7 +159,7 @@ TEXT ·StoreUint32(SB),NOSPLIT,$0-12
MOVW val+8(FP), R4 MOVW val+8(FP), R4
SYNC SYNC
MOVW R4, 0(R3) MOVW R4, 0(R3)
RETURN RET
TEXT ·StoreInt64(SB),NOSPLIT,$0-16 TEXT ·StoreInt64(SB),NOSPLIT,$0-16
BR ·StoreUint64(SB) BR ·StoreUint64(SB)
...@@ -169,7 +169,7 @@ TEXT ·StoreUint64(SB),NOSPLIT,$0-16 ...@@ -169,7 +169,7 @@ TEXT ·StoreUint64(SB),NOSPLIT,$0-16
MOVD val+8(FP), R4 MOVD val+8(FP), R4
SYNC SYNC
MOVD R4, 0(R3) MOVD R4, 0(R3)
RETURN RET
TEXT ·StoreUintptr(SB),NOSPLIT,$0-16 TEXT ·StoreUintptr(SB),NOSPLIT,$0-16
BR ·StoreUint64(SB) BR ·StoreUint64(SB)
...@@ -4,12 +4,5 @@ ...@@ -4,12 +4,5 @@
#include "textflag.h" #include "textflag.h"
#ifdef GOARCH_ppc64
#define RET RETURN
#endif
#ifdef GOARCH_ppc64le
#define RET RETURN
#endif
TEXT ·use(SB),NOSPLIT,$0 TEXT ·use(SB),NOSPLIT,$0
RET RET
...@@ -29,13 +29,13 @@ TEXT ·Syscall(SB),NOSPLIT,$0-56 ...@@ -29,13 +29,13 @@ TEXT ·Syscall(SB),NOSPLIT,$0-56
MOVD R0, r2+40(FP) // r2 MOVD R0, r2+40(FP) // r2
MOVD R3, err+48(FP) // errno MOVD R3, err+48(FP) // errno
BL runtime·exitsyscall(SB) BL runtime·exitsyscall(SB)
RETURN RET
ok: ok:
MOVD R3, r1+32(FP) // r1 MOVD R3, r1+32(FP) // r1
MOVD R4, r2+40(FP) // r2 MOVD R4, r2+40(FP) // r2
MOVD R0, err+48(FP) // errno MOVD R0, err+48(FP) // errno
BL runtime·exitsyscall(SB) BL runtime·exitsyscall(SB)
RETURN RET
TEXT ·Syscall6(SB),NOSPLIT,$0-80 TEXT ·Syscall6(SB),NOSPLIT,$0-80
BL runtime·entersyscall(SB) BL runtime·entersyscall(SB)
...@@ -53,13 +53,13 @@ TEXT ·Syscall6(SB),NOSPLIT,$0-80 ...@@ -53,13 +53,13 @@ TEXT ·Syscall6(SB),NOSPLIT,$0-80
MOVD R0, r2+64(FP) // r2 MOVD R0, r2+64(FP) // r2
MOVD R3, err+72(FP) // errno MOVD R3, err+72(FP) // errno
BL runtime·exitsyscall(SB) BL runtime·exitsyscall(SB)
RETURN RET
ok6: ok6:
MOVD R3, r1+56(FP) // r1 MOVD R3, r1+56(FP) // r1
MOVD R4, r2+64(FP) // r2 MOVD R4, r2+64(FP) // r2
MOVD R0, err+72(FP) // errno MOVD R0, err+72(FP) // errno
BL runtime·exitsyscall(SB) BL runtime·exitsyscall(SB)
RETURN RET
TEXT ·RawSyscall(SB),NOSPLIT,$0-56 TEXT ·RawSyscall(SB),NOSPLIT,$0-56
MOVD a1+8(FP), R3 MOVD a1+8(FP), R3
...@@ -75,12 +75,12 @@ TEXT ·RawSyscall(SB),NOSPLIT,$0-56 ...@@ -75,12 +75,12 @@ TEXT ·RawSyscall(SB),NOSPLIT,$0-56
MOVD R4, r1+32(FP) // r1 MOVD R4, r1+32(FP) // r1
MOVD R0, r2+40(FP) // r2 MOVD R0, r2+40(FP) // r2
MOVD R3, err+48(FP) // errno MOVD R3, err+48(FP) // errno
RETURN RET
ok1: ok1:
MOVD R3, r1+32(FP) // r1 MOVD R3, r1+32(FP) // r1
MOVD R4, r2+40(FP) // r2 MOVD R4, r2+40(FP) // r2
MOVD R0, err+48(FP) // errno MOVD R0, err+48(FP) // errno
RETURN RET
TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
MOVD a1+8(FP), R3 MOVD a1+8(FP), R3
...@@ -96,9 +96,9 @@ TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 ...@@ -96,9 +96,9 @@ TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
MOVD R4, r1+56(FP) // r1 MOVD R4, r1+56(FP) // r1
MOVD R0, r2+64(FP) // r2 MOVD R0, r2+64(FP) // r2
MOVD R3, err+72(FP) // errno MOVD R3, err+72(FP) // errno
RETURN RET
ok2: ok2:
MOVD R3, r1+56(FP) // r1 MOVD R3, r1+56(FP) // r1
MOVD R4, r2+64(FP) // r2 MOVD R4, r2+64(FP) // r2
MOVD R0, err+72(FP) // errno MOVD R0, err+72(FP) // errno
RETURN RET
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment