reg: support for register casting

Adds methods for referencing sub- or super-registers. For example, for
general purpose registers you can now reference As8(), As16(), ... and
for vector AsX(), AsY(), AsZ().

Closes #1
This commit is contained in:
Michael McLoughlin
2018-12-30 18:40:45 -08:00
parent 4644d996ee
commit 18cdf50d7c
16 changed files with 558 additions and 244 deletions

17
tests/cast/cast_test.go Normal file
View File

@@ -0,0 +1,17 @@
package cast
import (
"testing"
"testing/quick"
)
//go:generate go run asm.go -out cast.s -stubs stub.go
func TestSplit(t *testing.T) {
expect := func(x uint64) (uint64, uint32, uint16, uint8) {
return x, uint32(x), uint16(x), uint8(x)
}
if err := quick.CheckEqual(Split, expect, nil); err != nil {
t.Fatal(err)
}
}