-
Notifications
You must be signed in to change notification settings - Fork 0
/
golang-tls-asm-header.html
134 lines (110 loc) · 7 KB
/
golang-tls-asm-header.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Golang about go_tls.h and go_asm.h</title>
<meta name="description" content="According to official documentation, get_tls is a marco defined in go_asm.h. But it is actually in go_tls.h which is in the go source.">
<meta property="og:image" content="https://i.imgur.com/hD6x1s9.jpg">
<meta property="og:site_name" content="Lee Xun's blog">
<meta property="og:type" content="website">
<meta property="og:title" content="Golang about go_tls.h and go_asm.h">
<!-- <meta property="og:url" content="https://blog.leexun.tw/golang-tls-asm-header"> -->
<meta property="og:description" content="According to official documentation, get_tls is a marco defined in go_asm.h. But it is actually in go_tls.h which is in the go source.">
<meta name="twitter:card" content="summary">
<meta name="twitter:creator" content="@leexun">
<meta name="twitter:site" content="Lee Xun's blog">
<meta name="twitter:title" content="Golang about go_tls.h and go_asm.h">
<meta name="twitter:image" content="https://i.imgur.com/hD6x1s9.jpg">
<link rel="stylesheet" href="/css/main.css">
<meta name="twitter:description" content="According to official documentation, get_tls is a marco defined in go_asm.h. But it is actually in go_tls.h which is in the go source.">
<link rel="canonical" href="https://blog.leexun.tw/golang-tls-asm-header">
<link rel="alternate" type="application/rss+xml" title="Lee Xun's blog" href="https://blog.leexun.tw/feed.xml" />
<link rel="shortcut icon" href="/favicon.ico?v=2">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-85060382-1', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<header class="site-header">
<div class="container">
<!-- <input type="checkbox" id="toggleNavbar"> -->
<h1 class="logo"><a href="/">Lee<span>Xun</span> <small>e88081e5a986e58fafe6849b0a ♥</small></a></h1>
<!-- <label for="toggleNavbar" role="button" class="toggle-navbar-button">
<i class="icon icon-menu"></i>
<i class="icon icon-cross"></i>
</label> -->
<nav class="navbar">
<ul>
<li><a href="/about" title="About">About</a></li>
<li><a href="/" title="Home">Home</a></li>
<li><a href="/feed.xml" target="_blank"><i class="icon icon-rss"></i></a></li>
</ul>
</nav>
</div>
</header>
<main class="main-container">
<div class="container">
<article role="article" class="page card">
<header class="post-header">
<h1 class="post-title">Golang about go_tls.h and go_asm.h</h1>
<em class="post-meta">
<time>Apr 18, 2019</time>
</em>
</header>
<div class="post-content">
<p>According to <a href="https://golang.org/doc/asm#x86">official documentation</a>, get_tls is a marco defined in go_asm.h. But it is actually in go_tls.h which is in the go source.</p>
<figure class="highlight"><pre><code class="language-asm" data-lang="asm"><span></span><span class="c">#include "go_asm.h" // this should be #include "go_tls.h"</span>
<span class="nf">get_tls</span><span class="p">(</span><span class="no">CX</span><span class="p">)</span>
<span class="nf">MOVL</span> <span class="no">g</span><span class="p">(</span><span class="no">CX</span><span class="p">),</span> <span class="no">AX</span> <span class="err">//</span> <span class="no">Move</span> <span class="no">g</span> <span class="no">into</span> <span class="no">AX.</span>
<span class="nf">MOVL</span> <span class="no">g_m</span><span class="p">(</span><span class="no">AX</span><span class="p">),</span> <span class="no">BX</span> <span class="err">//</span> <span class="no">Move</span> <span class="no">g.m</span> <span class="no">into</span> <span class="no">BX.</span></code></pre></figure>
<p>I made these two PRs[1][2] in golang, but I recieve a feedback which think this is not helpful. It’s really depressing.</p>
<ul>
<li>[1] <a href="https://go-review.googlesource.com/c/go/+/172699">https://go-review.googlesource.com/c/go/+/172699</a></li>
<li>[2] <a href="https://go-review.googlesource.com/c/go/+/172577">https://go-review.googlesource.com/c/go/+/172577</a></li>
</ul>
</div>
<hr>
<aside id="comments" class="disqus">
<h3><i class="icon icon-comments-o"></i> Comments</h3>
<div id="disqus_thread"></div>
<script>
var disqus_config = function() {
this.page.url = 'https://blog.leexun.tw/golang-tls-asm-header';
this.page.identifier = '/golang-tls-asm-header';
};
(function() {
var d = document,
s = d.createElement('script');
s.src = '//blogleexuntw.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
</aside>
</article>
</div>
</main>
<footer class="site-footer">
<div class="container">
<ul class="social">
<li><a href="https://github.com/leexun" target="_blank"><i class="icon icon-github"></i></a></li>
<li><a href="https://twitter.com/speachlesslee" target="_blank"><i class="icon icon-twitter"></i></a></li>
<li><a href="https://facebook.com/" target="_blank"><i class="icon icon-facebook"></i></a></li>
<li><a href="https://www.linkedin.com/in/leexunofficial/" target="_blank"><i class="icon icon-linkedin"></i></a></li>
</ul>
<p class="txt-medium-gray">
<small>©2019 All rights reserved @leexun.
</p>
</div>
</footer>
<a href="http://github.com/LeeXun/leexun.github.io" target="_blank" class="github-corner"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#337ab7; color:#fff; position: absolute; top: 0; border: 0; right: 0;"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a>
</body>
</html>