go/src
Matthew Dempsky da19a0cff4 cmd/compile: fix plan9-amd64 build
The previous rules to combine indexed loads produced addresses like:

    From: obj.Addr{
        Type:   TYPE_MEM,
        Reg:    REG_CX,
        Name:   NAME_AUTO,
        Offset: 121,
        ...
    }

which are erroneous because NAME_AUTO implies a base register of
REG_SP, and cmd/internal/obj/x86 makes many assumptions to this
effect.  Note that previously we were also producing an extra "ADDQ
SP, CX" instruction, so indexing off of SP was already handled.

The approach taken by this CL to address the problem is to instead
produce addresses like:

    From: obj.Addr{
        Type:   TYPE_MEM,
        Reg:    REG_SP,
        Name:   NAME_AUTO,
        Offset: 121,
        Index:  REG_CX,
        Scale:  1,
    }

and to omit the "ADDQ SP, CX" instruction.

Downside to this approach is it requires adding a lot of new
MOV[WLQ]loadidx1 instructions that nearly duplicate functionality of
the existing MOV[WLQ]loadidx[248] instructions, but with a different
Scale.

Fixes #15001.

Change-Id: Iad9a1a41e5e2552f8d22e3ba975e4ea0862dffd2
Reviewed-on: https://go-review.googlesource.com/21245
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
2016-03-29 03:22:06 +00:00
..
archive all: delete dead test code 2016-03-21 07:10:08 +00:00
bufio all: delete dead test code 2016-03-21 07:10:08 +00:00
builtin
bytes all: delete dead test code 2016-03-21 07:10:08 +00:00
cmd cmd/compile: fix plan9-amd64 build 2016-03-29 03:22:06 +00:00
compress compress/gzip: clean up zero-mtimes test 2016-03-25 22:22:11 +00:00
container all: single space after period. 2016-03-02 00:13:47 +00:00
crypto crypto/tls: Update references to draft-ietf-tls-downgrade-scsv-00. 2016-03-25 22:10:37 +00:00
database/sql all: delete dead non-test code 2016-03-25 06:28:13 +00:00
debug all: delete dead non-test code 2016-03-25 06:28:13 +00:00
encoding encoding/asn1: tags should be encoded in minimal form. 2016-03-25 22:07:54 +00:00
errors all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
expvar all: single space after period. 2016-03-02 00:13:47 +00:00
flag all: single space after period. 2016-03-02 00:13:47 +00:00
fmt fmt: unify array and slice formatting for bytes and other types 2016-03-27 21:34:20 +00:00
go vendor: move golang.org/x/net/http2/hpack back to vendor 2016-03-24 20:26:51 +00:00
hash hash/crc32: use slicing by 8 for Castagnoli and smaller sizes 2016-03-08 16:46:24 +00:00
html all: delete dead non-test code 2016-03-25 06:28:13 +00:00
image image/png: ignore trailing IDAT chunks 2016-03-24 10:57:01 +00:00
index/suffixarray
internal vendor: move golang.org/x/net/http2/hpack back to vendor 2016-03-24 20:26:51 +00:00
io all: delete dead non-test code 2016-03-25 06:28:13 +00:00
log all: single space after period. 2016-03-02 00:13:47 +00:00
math math/big: much simplified and faster Float rounding 2016-03-22 17:07:34 +00:00
mime mime/multipart: don't call Read on io.Reader after an error is seen 2016-03-07 19:50:16 +00:00
net net/http: add more audio/video mime sniffing 2016-03-26 08:58:57 +00:00
os os: skip TestStatStdin on Android 2016-03-24 19:07:11 +00:00
path path: fix up bizarre test 2016-03-16 03:59:03 +00:00
reflect reflect: test name data is aligned 2016-03-25 20:37:08 +00:00
regexp all: delete dead non-test code 2016-03-25 06:28:13 +00:00
runtime cmd/compile: optimize remaining convT2I calls 2016-03-29 02:21:50 +00:00
sort all: delete dead non-test code 2016-03-25 06:28:13 +00:00
strconv all: single space after period. 2016-03-02 00:13:47 +00:00
strings all: single space after period. 2016-03-02 00:13:47 +00:00
sync sync: don't assume b.N > 0 2016-03-18 16:37:39 +00:00
syscall syscall: fix accidental close of exec status pipe in StartProcess 2016-03-29 00:03:14 +00:00
testing cmd/go: fix proc-count accumulation in benchmark name 2016-03-26 16:44:01 +00:00
text all: delete dead non-test code 2016-03-25 06:28:13 +00:00
time all: delete dead non-test code 2016-03-25 06:28:13 +00:00
unicode all: single space after period. 2016-03-02 00:13:47 +00:00
unsafe all: single space after period. 2016-03-02 00:13:47 +00:00
vendor/golang.org/x/net/http2/hpack vendor: move golang.org/x/net/http2/hpack back to vendor 2016-03-24 20:26:51 +00:00
Make.dist
all.bash
all.bat
all.rc
androidtest.bash
bootstrap.bash
buildall.bash build: use go tool dist list 2016-02-26 03:58:58 +00:00
clean.bash
clean.bat
clean.rc
iostest.bash
make.bash cmd/dist: redo flag-passing for bootstrap 2016-03-18 19:00:03 +00:00
make.bat cmd/go, go/build: add support for Fortran 2016-02-24 15:06:38 +00:00
make.rc
nacltest.bash
race.bash
race.bat
run.bash
run.bat
run.rc