...

Text file src/runtime/internal/atomic/atomic_mips64x.s

     1	// Copyright 2015 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 mips64 mips64le
     6	
     7	#include "textflag.h"
     8	
     9	#define SYNC	WORD $0xf
    10	
    11	// uint32 runtime∕internal∕atomic·Load(uint32 volatile* ptr)
    12	TEXT ·Load(SB),NOSPLIT|NOFRAME,$0-12
    13		MOVV	ptr+0(FP), R1
    14		SYNC
    15		MOVWU	0(R1), R1
    16		SYNC
    17		MOVW	R1, ret+8(FP)
    18		RET
    19	
    20	// uint8 runtime∕internal∕atomic·Load8(uint8 volatile* ptr)
    21	TEXT ·Load8(SB),NOSPLIT|NOFRAME,$0-9
    22		MOVV	ptr+0(FP), R1
    23		SYNC
    24		MOVBU	0(R1), R1
    25		SYNC
    26		MOVB	R1, ret+8(FP)
    27		RET
    28	
    29	// uint64 runtime∕internal∕atomic·Load64(uint64 volatile* ptr)
    30	TEXT ·Load64(SB),NOSPLIT|NOFRAME,$0-16
    31		MOVV	ptr+0(FP), R1
    32		SYNC
    33		MOVV	0(R1), R1
    34		SYNC
    35		MOVV	R1, ret+8(FP)
    36		RET
    37	
    38	// void *runtime∕internal∕atomic·Loadp(void *volatile *ptr)
    39	TEXT ·Loadp(SB),NOSPLIT|NOFRAME,$0-16
    40		MOVV	ptr+0(FP), R1
    41		SYNC
    42		MOVV	0(R1), R1
    43		SYNC
    44		MOVV	R1, ret+8(FP)
    45		RET
    46	
    47	// uint32 runtime∕internal∕atomic·LoadAcq(uint32 volatile* ptr)
    48	TEXT ·LoadAcq(SB),NOSPLIT|NOFRAME,$0-12
    49		JMP	atomic·Load(SB)

View as plain text