The <code>GOAMD64</code> environment variable defaults to <code>v1</code>.
</p>
-<h3 id="ppc64">PPC64</h3>
-
-<p><!-- CL 353969 -->
- TODO: <a href="https://golang.org/cl/353969">https://golang.org/cl/353969</a>: internal/buildcfg: enable register ABI for PPC64
-</p>
-
<h3 id="riscv">RISC-V</h3>
<p><!-- golang.org/issue/47100, CL 334872 -->
<h2 id="compiler">Compiler</h2>
+<p><!-- https://golang.org/issue/40724 -->
+ Go 1.17 <a href=go1.17#compiler>implemented</a> a new way of passing
+ function arguments and results using registers instead of the stack
+ on 64-bit x86 architecture on selected operating systems.
+ Go 1.18 expands the supported platforms to include 64-bit ARM (<code>GOARCH=arm64</code>),
+ big- and little-endian 64-bit PowerPC (<code>GOARCH=ppc64</code>, <code>ppc64le</code>),
+ as well as 64-bit x86 architecture (<code>GOARCH=amd64</code>)
+ on all operating systems.
+ On 64-bit ARM and 64-bit PowerPC systems, benchmarking shows
+ performance improvements of 10% or more.
+</p>
+
+<p>
+ As <a href=go1.17#compiler>mentioned</a> in the Go 1.17 release notes,
+ this change does not affect the functionality of any safe Go code and
+ is designed to have no impact on most assembly code. See the
+ <a href=go1.17#compiler>Go 1.17 release notes</a> for more details.
+</p>
+
<p><!-- CL 298611 -->
TODO: <a href="https://golang.org/cl/298611">https://golang.org/cl/298611</a>: cmd/compile: add -asan option
</p>