q/src/arm/StorePair_test.go

29 lines
654 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 TestStorePair(t *testing.T) {
usagePatterns := []struct {
Reg1 cpu.Register
Reg2 cpu.Register
Base cpu.Register
Offset int
Code uint32
}{
{arm.FP, arm.LR, arm.SP, -32, 0xA9BE7BFD},
{arm.FP, arm.LR, arm.SP, -16, 0xA9BF7BFD},
}
for _, pattern := range usagePatterns {
t.Logf("stp %s, %s, [%s, #%d]!", pattern.Reg1, pattern.Reg2, pattern.Base, pattern.Offset)
code := arm.StorePair(pattern.Reg1, pattern.Reg2, pattern.Base, pattern.Offset)
assert.DeepEqual(t, code, pattern.Code)
}
}