]> Cypherpunks repositories - gostls13.git/commit
test: make codegen tests work with both ABIs
authorCherry Zhang <cherryyz@google.com>
Mon, 12 Apr 2021 18:00:49 +0000 (14:00 -0400)
committerCherry Zhang <cherryyz@google.com>
Mon, 12 Apr 2021 21:59:59 +0000 (21:59 +0000)
commit263e13d1f7d2d13782c5a63799c9979b9bbfd853
tree89e7f58b299069d76560c06899fd6a887772bebd
parent3d5e3a15f65f1dd622c87ffba58914c877c8112c
test: make codegen tests work with both ABIs

Some codegen tests were written with the assumption that
arguments and results are in memory, and with a specific stack
layout. With the register ABI, the assumption is no longer true.
Adjust the tests to work with both cases.

- For tests expecting in memory arguments/results, change to use
  global variables or memory-assigned argument/results.

- Allow more registers. E.g. some tests expecting register names
  contain only letters (e.g. AX), but  it can also contain numbers
  (e.g. R10).

- Some instruction selection changes when operate on register vs.
  memory, e.g. ADDQ vs. LEAQ, MOVB vs. MOVL. Accept both.

TODO: mathbits.go and memops.go still need fix.
Change-Id: Ic5932b4b5dd3f5d30ed078d296476b641420c4c5
Reviewed-on: https://go-review.googlesource.com/c/go/+/309335
Trust: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
test/codegen/arithmetic.go
test/codegen/bits.go
test/codegen/clobberdeadreg.go
test/codegen/comparisons.go
test/codegen/issue25378.go
test/codegen/maps.go
test/codegen/math.go
test/codegen/memcombine.go
test/codegen/slices.go
test/codegen/stack.go
test/codegen/zerosize.go