1
0
mirror of https://github.com/golang/go synced 2024-11-15 00:30:31 -07:00
The Go programming language
Go to file
Andrew Gerrand 4708b76f84 [release-branch.go1.2] cmd/5l, runtime: fix divide for profiling tracebacks on ARM
««« CL 19910044 / 9eb64f5ef3a6
cmd/5l, runtime: fix divide for profiling tracebacks on ARM

Two bugs:
1. The first iteration of the traceback always uses LR when provided,
which it is (only) during a profiling signal, but in fact LR is correct
only if the stack frame has not been allocated yet. Otherwise an
intervening call may have changed LR, and the saved copy in the stack
frame should be used. Fix in traceback_arm.c.

2. The division runtime call adds 8 bytes to the stack. In order to
keep the traceback routines happy, it must copy the saved LR into
the new 0(SP). Change

        SUB $8, SP

into

        MOVW    0(SP), R11 // r11 is temporary, for use by linker
        MOVW.W  R11, -8(SP)

to update SP and 0(SP) atomically, so that the traceback always
sees a saved LR at 0(SP).

Fixes #6681.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/19910044
»»»

R=golang-dev
CC=golang-dev
https://golang.org/cl/20170048
2013-11-01 11:34:40 +11:00
api api: add go1.2.txt, use in tests 2013-10-18 13:36:59 +09:00
doc [release-branch.go1.2] doc/go1.2.html: delete repeated word 2013-11-01 11:33:51 +11:00
include build: remove various uses of C undefined behavior 2013-09-09 15:07:23 -04:00
lib [release-branch.go1.2] plan9: correct create permissions with union directory 2013-11-01 11:16:32 +11:00
misc [release-branch.go1.2] misc/emacs: support godef-jump on import statements 2013-11-01 11:24:57 +11:00
src [release-branch.go1.2] cmd/5l, runtime: fix divide for profiling tracebacks on ARM 2013-11-01 11:34:40 +11:00
test [release-branch.go1.2] test/mapnan: use time.Now instead of syscall.Getrusage 2013-11-01 11:15:02 +11:00
.hgignore build: ignore new zfiles, delete temp goplay binary in run.bash 2013-08-02 19:14:13 -07:00
.hgtags untag go1.2rc1 2013-09-19 22:34:33 +10:00
AUTHORS [release-branch.go1.2] A+C: Jakob Borg (individual CLA). 2013-11-01 11:29:41 +11:00
CONTRIBUTORS [release-branch.go1.2] A+C: Jakob Borg (individual CLA). 2013-11-01 11:29:41 +11:00
favicon.ico godoc: update favicon 2012-10-11 17:02:36 +11:00
LICENSE
PATENTS
README
robots.txt
VERSION go1.2rc2 2013-10-18 13:53:33 +09:00

This is the source code repository for the Go programming language.  

For documentation about how to install and use Go,
visit http://golang.org/ or load doc/install.html in your web browser.

After installing Go, you can view a nicely formatted
doc/install.html by running godoc --http=:6060
and then visiting http://localhost:6060/doc/install.html.

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 README).  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.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 doc/install.html for more details.