q/src/arm/Sub_test.go

28 lines
631 B
Go

package arm_test
import (
"testing"
"git.urbach.dev/cli/q/src/arm"
"git.urbach.dev/cli/q/src/cpu"
"git.urbach.dev/go/assert"
)
func TestSubRegisterNumber(t *testing.T) {
usagePatterns := []struct {
Destination cpu.Register
Source cpu.Register
Number int
Code uint32
}{
{arm.X0, arm.X0, 1, 0xD1000400},
{arm.SP, arm.SP, 16, 0xD10043FF},
}
for _, pattern := range usagePatterns {
t.Logf("sub %s, %s, %d", pattern.Destination, pattern.Source, pattern.Number)
code := arm.SubRegisterNumber(pattern.Destination, pattern.Source, pattern.Number)
assert.DeepEqual(t, code, pattern.Code)
}
}