github.com/lzhfromustc/gofuzz@v0.0.0-20211116160056-151b3108bbd1/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 TLS_darwin
    19  #endif
    20  #ifdef GOOS_ios
    21  #define TLS_darwin
    22  #endif
    23  #ifdef TLS_darwin
    24  #define TPIDR TPIDRRO_EL0
    25  #define TLSG_IS_VARIABLE
    26  #define MRS_TPIDR_R0 WORD $0xd53bd060 // MRS TPIDRRO_EL0, R0
    27  #endif
    28  
    29  #ifdef GOOS_freebsd
    30  #define TPIDR TPIDR_EL0
    31  #define MRS_TPIDR_R0 WORD $0xd53bd040 // MRS TPIDR_EL0, R0
    32  #endif
    33  
    34  #ifdef GOOS_netbsd
    35  #define TPIDR TPIDRRO_EL0
    36  #define MRS_TPIDR_R0 WORD $0xd53bd040 // MRS TPIDRRO_EL0, R0
    37  #endif
    38  
    39  #ifdef GOOS_openbsd
    40  #define TPIDR TPIDR_EL0
    41  #define MRS_TPIDR_R0 WORD $0xd53bd040 // MRS TPIDR_EL0, R0
    42  #endif
    43  
    44  // Define something that will break the build if
    45  // the GOOS is unknown.
    46  #ifndef TPIDR
    47  #define MRS_TPIDR_R0 TPIDR_UNKNOWN
    48  #endif