summaryrefslogtreecommitdiff
path: root/devdocs/go/internal%2Fgoarch%2Findex.html
blob: e7fa752f10a7b7ec7afce5b364cb7a9b2e909b2a (plain)
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
<h1> Package goarch  </h1>     <ul id="short-nav">
<li><code>import "internal/goarch"</code></li>
<li><a href="#pkg-overview" class="overviewLink">Overview</a></li>
<li><a href="#pkg-index" class="indexLink">Index</a></li>
</ul>     <h2 id="pkg-overview">Overview </h2> <p>package goarch contains GOARCH-specific constants. </p>     <h2 id="pkg-index">Index </h2>  <ul id="manual-nav">
<li><a href="#pkg-constants">Constants</a></li>
<li><a href="#ArchFamilyType">type ArchFamilyType</a></li>
</ul> <h3>Package files</h3> <p>  <span>goarch.go</span> <span>goarch_amd64.go</span> <span>zgoarch_amd64.go</span>  </p>   <h2 id="pkg-constants">Constants</h2> <p>BigEndian reports whether the architecture is big-endian. </p>
<pre data-language="go">const BigEndian = IsArmbe|IsArm64be|IsMips|IsMips64|IsPpc|IsPpc64|IsS390|IsS390x|IsSparc|IsSparc64 == 1</pre> <p>DefaultPhysPageSize is the default physical page size. </p>
<pre data-language="go">const DefaultPhysPageSize = _DefaultPhysPageSize</pre> <pre data-language="go">const GOARCH = `amd64`</pre> <p>Int64Align is the required alignment for a 64-bit integer (4 on 32-bit systems, 8 on 64-bit). </p>
<pre data-language="go">const Int64Align = PtrSize</pre> <pre data-language="go">const Is386 = 0</pre> <pre data-language="go">const IsAmd64 = 1</pre> <pre data-language="go">const IsAmd64p32 = 0</pre> <pre data-language="go">const IsArm = 0</pre> <pre data-language="go">const IsArm64 = 0</pre> <pre data-language="go">const IsArm64be = 0</pre> <pre data-language="go">const IsArmbe = 0</pre> <pre data-language="go">const IsLoong64 = 0</pre> <pre data-language="go">const IsMips = 0</pre> <pre data-language="go">const IsMips64 = 0</pre> <pre data-language="go">const IsMips64le = 0</pre> <pre data-language="go">const IsMips64p32 = 0</pre> <pre data-language="go">const IsMips64p32le = 0</pre> <pre data-language="go">const IsMipsle = 0</pre> <pre data-language="go">const IsPpc = 0</pre> <pre data-language="go">const IsPpc64 = 0</pre> <pre data-language="go">const IsPpc64le = 0</pre> <pre data-language="go">const IsRiscv = 0</pre> <pre data-language="go">const IsRiscv64 = 0</pre> <pre data-language="go">const IsS390 = 0</pre> <pre data-language="go">const IsS390x = 0</pre> <pre data-language="go">const IsSparc = 0</pre> <pre data-language="go">const IsSparc64 = 0</pre> <pre data-language="go">const IsWasm = 0</pre> <p>MinFrameSize is the size of the system-reserved words at the bottom of a frame (just above the architectural stack pointer). It is zero on x86 and PtrSize on most non-x86 (LR-based) systems. On PowerPC it is larger, to cover three more reserved words: the compiler word, the link editor word, and the TOC save word. </p>
<pre data-language="go">const MinFrameSize = _MinFrameSize</pre> <p>PCQuantum is the minimal unit for a program counter (1 on x86, 4 on most other systems). The various PC tables record PC deltas pre-divided by PCQuantum. </p>
<pre data-language="go">const PCQuantum = _PCQuantum</pre> <p>PtrSize is the size of a pointer in bytes - unsafe.Sizeof(uintptr(0)) but as an ideal constant. It is also the size of the machine's native word size (that is, 4 on 32-bit systems, 8 on 64-bit). </p>
<pre data-language="go">const PtrSize = 4 &lt;&lt; (^uintptr(0) &gt;&gt; 63)</pre> <p>StackAlign is the required alignment of the SP register. The stack must be at least word aligned, but some architectures require more. </p>
<pre data-language="go">const StackAlign = _StackAlign</pre> <h2 id="ArchFamilyType">type <span>ArchFamilyType</span>  </h2> <pre data-language="go">type ArchFamilyType int</pre> <pre data-language="go">const (
    AMD64 ArchFamilyType = iota
    ARM
    ARM64
    I386
    LOONG64
    MIPS
    MIPS64
    PPC64
    RISCV64
    S390X
    WASM
)</pre> <p>ArchFamily is the architecture family (AMD64, ARM, ...) </p>
<pre data-language="go">const ArchFamily ArchFamilyType = _ArchFamily</pre><div class="_attribution">
  <p class="_attribution-p">
    &copy; Google, Inc.<br>Licensed under the Creative Commons Attribution License 3.0.<br>
    <a href="http://golang.org/pkg/internal/goarch/" class="_attribution-link">http://golang.org/pkg/internal/goarch/</a>
  </p>
</div>