]> Cypherpunks repositories - gostls13.git/commit
[dev.ssa] cmd/internal/ssa: Handle more instructions + some cleanup
authorKeith Randall <khr@golang.org>
Mon, 18 May 2015 23:44:20 +0000 (16:44 -0700)
committerKeith Randall <khr@golang.org>
Wed, 27 May 2015 15:53:54 +0000 (15:53 +0000)
commitcfc2aa56b0bf6b7dfb8f38cd2cfbe8799fc5a31a
tree07cd8119d66c9cf44cdb5334feb815f8589f5e0d
parent083a646f63055427c203d5600ef65f05f55783bf
[dev.ssa] cmd/internal/ssa: Handle more instructions + some cleanup

Add & as an input op.  Add several output ops (loads & stores, TESTB,
LEAQglobal, branches, memcopy)

Some other small things:
- Add exprAddr to builder to generate addresses of expressions.  Use it in
  various places that had ad-hoc code.
- Separate out nil & bounds check generation to separate functions.
- Add explicit FP and SP ops so we dont need specialized *FP and *SP opcodes.
- Fix fallthrough at end of functions with no return values.
- rematerialization of more opcodes.

Change-Id: I781decfcef9770fb15f0cd6b061547f7824a2d5e
Reviewed-on: https://go-review.googlesource.com/10213
Reviewed-by: Alan Donovan <adonovan@google.com>
16 files changed:
src/cmd/internal/gc/ssa.go
src/cmd/internal/obj/x86/6.out.go
src/cmd/internal/ssa/check.go
src/cmd/internal/ssa/config.go
src/cmd/internal/ssa/generic.go
src/cmd/internal/ssa/lower.go
src/cmd/internal/ssa/lowerAmd64.go
src/cmd/internal/ssa/op.go
src/cmd/internal/ssa/op_string.go
src/cmd/internal/ssa/opamd64.go
src/cmd/internal/ssa/regalloc.go
src/cmd/internal/ssa/rewrite.go
src/cmd/internal/ssa/rulegen/generic.rules
src/cmd/internal/ssa/rulegen/lower_amd64.rules
src/cmd/internal/ssa/rulegen/rulegen.go
src/cmd/internal/ssa/stackalloc.go