...

Text file src/pkg/runtime/internal/atomic/atomic_ppc64x.s

     1	// Copyright 2014 The Go Authors. All rights reserved.
     2	// Use of this source code is governed by a BSD-style
     3	// license that can be found in the LICENSE file.
     4	
     5	// +build ppc64 ppc64le
     6	
     7	#include "textflag.h"
     8	
     9	// uint32 runtime∕internal∕atomic·Load(uint32 volatile* ptr)
    10	TEXT ·Load(SB),NOSPLIT|NOFRAME,$-8-12
    11		MOVD	ptr+0(FP), R3
    12		SYNC
    13		MOVWZ	0(R3), R3
    14		CMPW	R3, R3, CR7
    15		BC	4, 30, 1(PC) // bne- cr7,0x4
    16		ISYNC
    17		MOVW	R3, ret+8(FP)
    18		RET
    19	
    20	// uint8 runtime∕internal∕atomic·Load8(uint8 volatile* ptr)
    21	TEXT ·Load8(SB),NOSPLIT|NOFRAME,$-8-9
    22		MOVD	ptr+0(FP), R3
    23		SYNC
    24		MOVBZ	0(R3), R3
    25		CMP	R3, R3, CR7
    26		BC	4, 30, 1(PC) // bne- cr7,0x4
    27		ISYNC
    28		MOVB	R3, ret+8(FP)
    29		RET
    30	
    31	// uint64 runtime∕internal∕atomic·Load64(uint64 volatile* ptr)
    32	TEXT ·Load64(SB),NOSPLIT|NOFRAME,$-8-16
    33		MOVD	ptr+0(FP), R3
    34		SYNC
    35		MOVD	0(R3), R3
    36		CMP	R3, R3, CR7
    37		BC	4, 30, 1(PC) // bne- cr7,0x4
    38		ISYNC
    39		MOVD	R3, ret+8(FP)
    40		RET
    41	
    42	// void *runtime∕internal∕atomic·Loadp(void *volatile *ptr)
    43	TEXT ·Loadp(SB),NOSPLIT|NOFRAME,$-8-16
    44		MOVD	ptr+0(FP), R3
    45		SYNC
    46		MOVD	0(R3), R3
    47		CMP	R3, R3, CR7
    48		BC	4, 30, 1(PC) // bne- cr7,0x4
    49		ISYNC
    50		MOVD	R3, ret+8(FP)
    51		RET
    52	
    53	// uint32 runtime∕internal∕atomic·LoadAcq(uint32 volatile* ptr)
    54	TEXT ·LoadAcq(SB),NOSPLIT|NOFRAME,$-8-12
    55		MOVD   ptr+0(FP), R3
    56		MOVWZ  0(R3), R3
    57		CMPW   R3, R3, CR7
    58		BC     4, 30, 1(PC) // bne- cr7, 0x4
    59		MOVW   R3, ret+8(FP)
    60		RET

View as plain text