Fixed move with negative numbers on arm64

This commit is contained in:
Eduard Urbach 2025-03-14 11:58:36 +01:00
parent f2f38f2ee9
commit 500a7201d4
Signed by: eduard
GPG key ID: 49226B848C78F6C8
3 changed files with 45 additions and 5 deletions

View file

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