Files
wazero/internal/engine/wazevo/backend/isa/amd64/reg_test.go
2024-01-09 13:49:47 -08:00

37 lines
1.1 KiB
Go

package amd64
import (
"testing"
"github.com/tetratelabs/wazero/internal/engine/wazevo/backend/regalloc"
"github.com/tetratelabs/wazero/internal/testing/require"
)
func Test_formatVRegSize(t *testing.T) {
tests := []struct {
r regalloc.VReg
_64 bool
exp string
}{
// Real registers.
{r: raxVReg, _64: true, exp: "%rax"},
{r: raxVReg, _64: false, exp: "%eax"},
{r: r15VReg, _64: true, exp: "%r15"},
{r: r15VReg, _64: false, exp: "%r15d"},
{r: xmm0VReg, _64: true, exp: "%xmm0"},
{r: xmm0VReg, _64: false, exp: "%xmm0"},
{r: xmm15VReg, _64: true, exp: "%xmm15"},
{r: xmm15VReg, _64: false, exp: "%xmm15"},
// Non-real registers.
{r: regalloc.VReg(5555).SetRegType(regalloc.RegTypeInt), _64: true, exp: "%r5555?"},
{r: regalloc.VReg(5555).SetRegType(regalloc.RegTypeInt), _64: false, exp: "%r5555d?"},
{r: regalloc.VReg(123).SetRegType(regalloc.RegTypeFloat), _64: true, exp: "%xmm123?"},
{r: regalloc.VReg(432).SetRegType(regalloc.RegTypeFloat), _64: false, exp: "%xmm432?"},
}
for _, tt := range tests {
t.Run(tt.exp, func(t *testing.T) {
require.Equal(t, tt.exp, formatVRegSized(tt.r, tt._64))
})
}
}