]> Cypherpunks repositories - gostls13.git/commit
[dev.ssa] cmd/compile: fix a few bugs for SSA for ARM
authorCherry Zhang <cherryyz@google.com>
Fri, 3 Jun 2016 22:03:29 +0000 (18:03 -0400)
committerCherry Zhang <cherryyz@google.com>
Wed, 8 Jun 2016 20:37:31 +0000 (20:37 +0000)
commitfa54bf16e0080296487407c8cc883a1e039c31c8
tree3e42fe2979476d2f261cd4c1d97ef11c6aba6789
parent225ef76c250fc9ab9794fd723952209e2ff440aa
[dev.ssa] cmd/compile: fix a few bugs for SSA for ARM

- 64x signed right shift was wrong for shift larger than 0x80000000.
- for Lsh-followed-by-Rsh, the intermediate value should be full int
  width, so when it is spilled MOVW should be used.
- use RET for RetJmp, so the assembler can take case of restoring LR
  for non-leaf case.
- reserve R9 in dynlink mode. R9 is used for GOT by the assembler.

Progress on SSA backend for ARM. Still not complete.

Updates #15365.

Change-Id: I3caca256b92ff7cf96469da2feaf4868a592efc5
Reviewed-on: https://go-review.googlesource.com/23793
Reviewed-by: David Chase <drchase@google.com>
src/cmd/compile/internal/arm/ssa.go
src/cmd/compile/internal/ssa/gen/ARM.rules
src/cmd/compile/internal/ssa/gen/dec64.rules
src/cmd/compile/internal/ssa/regalloc.go
src/cmd/compile/internal/ssa/rewriteARM.go
src/cmd/compile/internal/ssa/rewritedec64.go