]> Cypherpunks repositories - gostls13.git/commit
[dev.ssa] cmd/compile: add more on ARM64 SSA
authorCherry Zhang <cherryyz@google.com>
Fri, 22 Jul 2016 10:41:14 +0000 (06:41 -0400)
committerCherry Zhang <cherryyz@google.com>
Wed, 27 Jul 2016 16:37:23 +0000 (16:37 +0000)
commit83208504fe2bbe91dae99111593de54cca1cdca0
treeee6c656da131e32f3cdfa3878343165c7e2d5c98
parent2d16e43158bb3f85eeaa983c7f12c7c81c6bc187
[dev.ssa] cmd/compile: add more on ARM64 SSA

Support the following:
- Shifts. ARM64 machine instructions only use lowest 6 bits of the
  shift (i.e. mod 64). Use conditional selection instruction to
  ensure Go semantics.
- Zero/Move. Alignment is ensured.
- Hmul, Avg64u, Sqrt.
- reserve R18 (platform register in ARM64 ABI) and R29 (frame pointer
  in ARM64 ABI).

Everything compiles, all.bash passed (with non-SSA test disabled).

Change-Id: Ia8ed58dae5cbc001946f0b889357b258655078b1
Reviewed-on: https://go-review.googlesource.com/25290
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
src/cmd/compile/internal/arm64/prog.go
src/cmd/compile/internal/arm64/ssa.go
src/cmd/compile/internal/ssa/gen/ARM64.rules
src/cmd/compile/internal/ssa/gen/ARM64Ops.go
src/cmd/compile/internal/ssa/gen/genericOps.go
src/cmd/compile/internal/ssa/opGen.go
src/cmd/compile/internal/ssa/regalloc.go
src/cmd/compile/internal/ssa/rewrite.go
src/cmd/compile/internal/ssa/rewriteARM64.go
src/cmd/compile/internal/ssa/schedule.go