26bbe7ac9b
ARM64 (ARMv8) has 32 general purpose, 64-bit integer registers (R0-R31), 32 64-bit scalar floating point registers (F0-F31), and 32 128-bit vector registers (unused, V0-V31). R31 is either the stack pointer (RSP), or the zero register (ZR), depending on the instruction. Note the distinction between the hardware stack pointer, RSP, and the virtual stack pointer SP. The (hardware) stack pointer must be 16-byte aligned at all times; the RSP register itself must be aligned, offset(RSP) only has to have natural alignment. Instructions are fixed-width, and are 32-bit wide. ARM64 supports ARMv7 too (32-bit ARM), but not in the same process. In general, there is not much in common between 32-bit ARM and ARM64, it's a new architecture. All implementations have floating point instructions. This change adds a Prog.To3 field analogous to Prog.To. It is used by exclusive load/store instructions such as STLXR which read from one register, and write to both a register and a memory address. STLXRW R1, (R0), R3 This will store the word contained in R1 to the memory address pointed by R0. R3 will be updated with the status result of the store. It is used to implement atomic operations. No other changes are made to the portable Prog and Addr structures. Change-Id: Ie839029aa5265bbad35769d9689eca11e1c48c47 Reviewed-on: https://go-review.googlesource.com/7046 Reviewed-by: Russ Cox <rsc@golang.org> |
||
---|---|---|
api | ||
doc | ||
lib/time | ||
misc | ||
src | ||
test | ||
.gitattributes | ||
.gitignore | ||
AUTHORS | ||
CONTRIBUTING.md | ||
CONTRIBUTORS | ||
favicon.ico | ||
LICENSE | ||
PATENTS | ||
README.md | ||
robots.txt |
The Go Programming Language
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
For documentation about how to install and use Go, visit https://golang.org/ or load doc/install-source.html in your web browser.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Please report issues here: https://golang.org/issue/new
Go is the work of hundreds of contributors. We appreciate your help!
To contribute, please read the contribution guidelines: https://golang.org/doc/contribute.html
Please note that we do not use pull requests.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
--
Binary Distribution Notes
If you have just untarred a binary Go distribution, you need to set the environment variable $GOROOT to the full path of the go directory (the one containing this file). You can omit the variable if you unpack it into /usr/local/go, or if you rebuild from sources by running all.bash (see doc/install-source.html). You should also add the Go binary directory $GOROOT/bin to your shell's path.
For example, if you extracted the tar file into $HOME/go, you might put the following in your .profile:
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin
See https://golang.org/doc/install or doc/install.html for more details.