Fixed move with negative numbers on arm64
This commit is contained in:
@ -27,6 +27,24 @@ func TestMoveRegisterRegister(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestMoveRegisterNumber(t *testing.T) {
|
||||
usagePatterns := []struct {
|
||||
Register cpu.Register
|
||||
Number int
|
||||
Code uint32
|
||||
}{
|
||||
{arm.X0, 0, 0xD2800000},
|
||||
{arm.X0, 1, 0xD2800020},
|
||||
{arm.X0, -1, 0x92800000},
|
||||
}
|
||||
|
||||
for _, pattern := range usagePatterns {
|
||||
t.Logf("mov %s, %d", pattern.Register, pattern.Number)
|
||||
code := arm.MoveRegisterNumber(pattern.Register, pattern.Number)
|
||||
assert.DeepEqual(t, code, pattern.Code)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMoveKeep(t *testing.T) {
|
||||
usagePatterns := []struct {
|
||||
Register cpu.Register
|
||||
@ -38,7 +56,7 @@ func TestMoveKeep(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, pattern := range usagePatterns {
|
||||
t.Logf("movk %s, %x", pattern.Register, pattern.Number)
|
||||
t.Logf("movk %s, %d", pattern.Register, pattern.Number)
|
||||
code := arm.MoveKeep(pattern.Register, 0, pattern.Number)
|
||||
assert.DeepEqual(t, code, pattern.Code)
|
||||
}
|
||||
@ -55,7 +73,7 @@ func TestMoveZero(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, pattern := range usagePatterns {
|
||||
t.Logf("movz %s, %x", pattern.Register, pattern.Number)
|
||||
t.Logf("movz %s, %d", pattern.Register, pattern.Number)
|
||||
code := arm.MoveZero(pattern.Register, 0, pattern.Number)
|
||||
assert.DeepEqual(t, code, pattern.Code)
|
||||
}
|
||||
|
Reference in New Issue
Block a user