github.com/x04/go/src@v0.0.0-20200202162449-3d481ceb3525/runtime/tls_arm64.h (about)

     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  #ifdef GOOS_android
     6  #define TLS_linux
     7  #define TLSG_IS_VARIABLE
     8  #endif
     9  #ifdef GOOS_linux
    10  #define TLS_linux
    11  #endif
    12  #ifdef TLS_linux
    13  #define TPIDR TPIDR_EL0
    14  #define MRS_TPIDR_R0 WORD $0xd53bd040 // MRS TPIDR_EL0, R0
    15  #endif
    16  
    17  #ifdef GOOS_darwin
    18  #define TPIDR TPIDRRO_EL0
    19  #define TLSG_IS_VARIABLE
    20  #define MRS_TPIDR_R0 WORD $0xd53bd060 // MRS TPIDRRO_EL0, R0
    21  #endif
    22  
    23  #ifdef GOOS_freebsd
    24  #define TPIDR TPIDR_EL0
    25  #define MRS_TPIDR_R0 WORD $0xd53bd040 // MRS TPIDR_EL0, R0
    26  #endif
    27  
    28  #ifdef GOOS_netbsd
    29  #define TPIDR TPIDRRO_EL0
    30  #define MRS_TPIDR_R0 WORD $0xd53bd040 // MRS TPIDRRO_EL0, R0
    31  #endif
    32  
    33  #ifdef GOOS_openbsd
    34  #define TPIDR TPIDR_EL0
    35  #define MRS_TPIDR_R0 WORD $0xd53bd040 // MRS TPIDR_EL0, R0
    36  #endif
    37  
    38  // Define something that will break the build if
    39  // the GOOS is unknown.
    40  #ifndef TPIDR
    41  #define MRS_TPIDR_R0 TPIDR_UNKNOWN
    42  #endif