aboutsummaryrefslogtreecommitdiff
path: root/src/path/filepath/path.go
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2014-12-18 01:08:09 -0500
committerAustin Clements <austin@google.com>2014-12-18 15:31:47 +0000
commitb21e936f3e88377a41f9a4216453665eed1fe9ca (patch)
tree773c26a7f5c19c1c0e5c04dbd944cdc4bc5f801f /src/path/filepath/path.go
parente0e1cee8e96176b7c3ee9804e326469edd22c33f (diff)
downloadgo-b21e936f3e88377a41f9a4216453665eed1fe9ca.tar.xz
liblink: generate correct code for MOVD $-n(Rm), x on ppc64
On ppc64, liblink rewrites MOVD's of >32-bit constants by putting the constant in memory and rewriting the MOVD to load from that memory address. However, there were two bugs in the condition: a) owing to an incorrect sign extension, it triggered for all negative constants, and b) it could trigger for constant offsets from registers (addresses of the form $n(Rm) in assembly) Together, these meant instructions of the form MOVD $-n(Rm), x were compiled by putting -n in memory and rewriting the MOVD to load this constant from memory (completely dropping Rm). Change-Id: I1f6cc980efa3e3d6f164b46c985b2c3b55971cca Reviewed-on: https://go-review.googlesource.com/1752 Reviewed-by: Minux Ma <minux@golang.org>
Diffstat (limited to 'src/path/filepath/path.go')
0 files changed, 0 insertions, 0 deletions