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) } }