...
Text file
src/runtime/tls_arm64.h
Documentation: runtime
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 MRS_TPIDR_R0 WORD $0xd53bd040 // MRS TPIDR_EL0, R0
14#endif
15
16#ifdef GOOS_darwin
17#define TLS_darwin
18#endif
19#ifdef GOOS_ios
20#define TLS_darwin
21#endif
22#ifdef TLS_darwin
23#define TLSG_IS_VARIABLE
24#define MRS_TPIDR_R0 WORD $0xd53bd060 // MRS TPIDRRO_EL0, R0
25#endif
26
27#ifdef GOOS_freebsd
28#define MRS_TPIDR_R0 WORD $0xd53bd040 // MRS TPIDR_EL0, R0
29#endif
30
31#ifdef GOOS_netbsd
32#define MRS_TPIDR_R0 WORD $0xd53bd040 // MRS TPIDRRO_EL0, R0
33#endif
34
35#ifdef GOOS_openbsd
36#define MRS_TPIDR_R0 WORD $0xd53bd040 // MRS TPIDR_EL0, R0
37#endif
38
39#ifdef GOOS_windows
40#define TLS_windows
41#endif
42#ifdef TLS_windows
43#define TLSG_IS_VARIABLE
44#define MRS_TPIDR_R0 MOVD R18_PLATFORM, R0
45#endif
46
47// Define something that will break the build if
48// the GOOS is unknown.
49#ifndef MRS_TPIDR_R0
50#define MRS_TPIDR_R0 unknown_TLS_implementation_in_tls_arm64_h
51#endif
View as plain text