This switches to gofumpt and applies changes, as I've noticed working in dapr (who uses this) that it finds some things that are annoying, such as inconsistent block formatting in test tables. Signed-off-by: Adrian Cole <adrian@tetrate.io>
1058 lines
139 KiB
Go
1058 lines
139 KiB
Go
package amd64
|
|
|
|
import (
|
|
"encoding/binary"
|
|
"math"
|
|
"testing"
|
|
|
|
"github.com/tetratelabs/wazero/internal/asm"
|
|
"github.com/tetratelabs/wazero/internal/testing/require"
|
|
)
|
|
|
|
func TestAssemblerImpl_EncodeConstToMemory(t *testing.T) {
|
|
t.Run("error", func(t *testing.T) {
|
|
tests := []struct {
|
|
n *nodeImpl
|
|
expErr string
|
|
}{
|
|
{
|
|
n: &nodeImpl{instruction: ADDL, types: operandTypesConstToMemory, dstReg: RegAX},
|
|
expErr: "ADDL is unsupported for from:const,to:memory type",
|
|
},
|
|
{
|
|
n: &nodeImpl{
|
|
instruction: MOVB, types: operandTypesConstToMemory,
|
|
srcConst: math.MaxInt16,
|
|
dstReg: RegAX, dstConst: 0xff_ff,
|
|
},
|
|
expErr: "too large load target const 32767 for MOVB",
|
|
},
|
|
{
|
|
n: &nodeImpl{
|
|
instruction: MOVL, types: operandTypesConstToMemory,
|
|
srcConst: math.MaxInt64,
|
|
dstReg: RegAX, dstConst: 0xff_ff,
|
|
},
|
|
expErr: "too large load target const 9223372036854775807 for MOVL",
|
|
},
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
a := NewAssembler()
|
|
err := a.encodeConstToMemory(tc.n)
|
|
require.EqualError(t, err, tc.expErr)
|
|
}
|
|
})
|
|
|
|
tests := []struct {
|
|
name string
|
|
inst asm.Instruction
|
|
baseReg asm.Register
|
|
c, offset int64
|
|
exp []byte
|
|
}{
|
|
{name: "MOVB/c=0/base=AX/offset=0x0", inst: MOVB, c: 0, baseReg: RegAX, offset: 0x0, exp: []byte{0xc6, 0x0, 0x0}},
|
|
{name: "MOVB/c=1/base=AX/offset=0x0", inst: MOVB, c: 1, baseReg: RegAX, offset: 0x0, exp: []byte{0xc6, 0x0, 0x1}},
|
|
{name: "MOVB/c=-1/base=AX/offset=0x0", inst: MOVB, c: -1, baseReg: RegAX, offset: 0x0, exp: []byte{0xc6, 0x0, 0xff}},
|
|
{name: "MOVB/c=100/base=AX/offset=0x0", inst: MOVB, c: 100, baseReg: RegAX, offset: 0x0, exp: []byte{0xc6, 0x0, 0x64}},
|
|
{name: "MOVB/c=-100/base=AX/offset=0x0", inst: MOVB, c: -100, baseReg: RegAX, offset: 0x0, exp: []byte{0xc6, 0x0, 0x9c}},
|
|
{name: "MOVB/c=127/base=AX/offset=0x0", inst: MOVB, c: 127, baseReg: RegAX, offset: 0x0, exp: []byte{0xc6, 0x0, 0x7f}},
|
|
{name: "MOVB/c=-128/base=AX/offset=0x0", inst: MOVB, c: -128, baseReg: RegAX, offset: 0x0, exp: []byte{0xc6, 0x0, 0x80}},
|
|
{name: "MOVB/c=0/base=AX/offset=0x1", inst: MOVB, c: 0, baseReg: RegAX, offset: 0x1, exp: []byte{0xc6, 0x40, 0x1, 0x0}},
|
|
{name: "MOVB/c=1/base=AX/offset=0x1", inst: MOVB, c: 1, baseReg: RegAX, offset: 0x1, exp: []byte{0xc6, 0x40, 0x1, 0x1}},
|
|
{name: "MOVB/c=-1/base=AX/offset=0x1", inst: MOVB, c: -1, baseReg: RegAX, offset: 0x1, exp: []byte{0xc6, 0x40, 0x1, 0xff}},
|
|
{name: "MOVB/c=100/base=AX/offset=0x1", inst: MOVB, c: 100, baseReg: RegAX, offset: 0x1, exp: []byte{0xc6, 0x40, 0x1, 0x64}},
|
|
{name: "MOVB/c=-100/base=AX/offset=0x1", inst: MOVB, c: -100, baseReg: RegAX, offset: 0x1, exp: []byte{0xc6, 0x40, 0x1, 0x9c}},
|
|
{name: "MOVB/c=127/base=AX/offset=0x1", inst: MOVB, c: 127, baseReg: RegAX, offset: 0x1, exp: []byte{0xc6, 0x40, 0x1, 0x7f}},
|
|
{name: "MOVB/c=-128/base=AX/offset=0x1", inst: MOVB, c: -128, baseReg: RegAX, offset: 0x1, exp: []byte{0xc6, 0x40, 0x1, 0x80}},
|
|
{name: "MOVB/c=0/base=AX/offset=-0x1", inst: MOVB, c: 0, baseReg: RegAX, offset: -0x1, exp: []byte{0xc6, 0x40, 0xff, 0x0}},
|
|
{name: "MOVB/c=1/base=AX/offset=-0x1", inst: MOVB, c: 1, baseReg: RegAX, offset: -0x1, exp: []byte{0xc6, 0x40, 0xff, 0x1}},
|
|
{name: "MOVB/c=-1/base=AX/offset=-0x1", inst: MOVB, c: -1, baseReg: RegAX, offset: -0x1, exp: []byte{0xc6, 0x40, 0xff, 0xff}},
|
|
{name: "MOVB/c=100/base=AX/offset=-0x1", inst: MOVB, c: 100, baseReg: RegAX, offset: -0x1, exp: []byte{0xc6, 0x40, 0xff, 0x64}},
|
|
{name: "MOVB/c=-100/base=AX/offset=-0x1", inst: MOVB, c: -100, baseReg: RegAX, offset: -0x1, exp: []byte{0xc6, 0x40, 0xff, 0x9c}},
|
|
{name: "MOVB/c=127/base=AX/offset=-0x1", inst: MOVB, c: 127, baseReg: RegAX, offset: -0x1, exp: []byte{0xc6, 0x40, 0xff, 0x7f}},
|
|
{name: "MOVB/c=-128/base=AX/offset=-0x1", inst: MOVB, c: -128, baseReg: RegAX, offset: -0x1, exp: []byte{0xc6, 0x40, 0xff, 0x80}},
|
|
{name: "MOVB/c=0/base=AX/offset=0x4db", inst: MOVB, c: 0, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc6, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0}},
|
|
{name: "MOVB/c=1/base=AX/offset=0x4db", inst: MOVB, c: 1, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc6, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x1}},
|
|
{name: "MOVB/c=-1/base=AX/offset=0x4db", inst: MOVB, c: -1, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc6, 0x80, 0xdb, 0x4, 0x0, 0x0, 0xff}},
|
|
{name: "MOVB/c=100/base=AX/offset=0x4db", inst: MOVB, c: 100, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc6, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x64}},
|
|
{name: "MOVB/c=-100/base=AX/offset=0x4db", inst: MOVB, c: -100, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc6, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x9c}},
|
|
{name: "MOVB/c=127/base=AX/offset=0x4db", inst: MOVB, c: 127, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc6, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x7f}},
|
|
{name: "MOVB/c=-128/base=AX/offset=0x4db", inst: MOVB, c: -128, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc6, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x80}},
|
|
{name: "MOVB/c=0/base=AX/offset=-0x4d2", inst: MOVB, c: 0, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc6, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0}},
|
|
{name: "MOVB/c=1/base=AX/offset=-0x4d2", inst: MOVB, c: 1, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc6, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x1}},
|
|
{name: "MOVB/c=-1/base=AX/offset=-0x4d2", inst: MOVB, c: -1, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc6, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0xff}},
|
|
{name: "MOVB/c=100/base=AX/offset=-0x4d2", inst: MOVB, c: 100, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc6, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x64}},
|
|
{name: "MOVB/c=-100/base=AX/offset=-0x4d2", inst: MOVB, c: -100, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc6, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x9c}},
|
|
{name: "MOVB/c=127/base=AX/offset=-0x4d2", inst: MOVB, c: 127, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc6, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVB/c=-128/base=AX/offset=-0x4d2", inst: MOVB, c: -128, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc6, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x80}},
|
|
{name: "MOVB/c=0/base=AX/offset=0x7fffffff", inst: MOVB, c: 0, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc6, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0}},
|
|
{name: "MOVB/c=1/base=AX/offset=0x7fffffff", inst: MOVB, c: 1, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc6, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x1}},
|
|
{name: "MOVB/c=-1/base=AX/offset=0x7fffffff", inst: MOVB, c: -1, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc6, 0x80, 0xff, 0xff, 0xff, 0x7f, 0xff}},
|
|
{name: "MOVB/c=100/base=AX/offset=0x7fffffff", inst: MOVB, c: 100, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc6, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x64}},
|
|
{name: "MOVB/c=-100/base=AX/offset=0x7fffffff", inst: MOVB, c: -100, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc6, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x9c}},
|
|
{name: "MOVB/c=127/base=AX/offset=0x7fffffff", inst: MOVB, c: 127, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc6, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x7f}},
|
|
{name: "MOVB/c=-128/base=AX/offset=0x7fffffff", inst: MOVB, c: -128, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc6, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x80}},
|
|
{name: "MOVB/c=0/base=AX/offset=-0x80000000", inst: MOVB, c: 0, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc6, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0}},
|
|
{name: "MOVB/c=1/base=AX/offset=-0x80000000", inst: MOVB, c: 1, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc6, 0x80, 0x0, 0x0, 0x0, 0x80, 0x1}},
|
|
{name: "MOVB/c=-1/base=AX/offset=-0x80000000", inst: MOVB, c: -1, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc6, 0x80, 0x0, 0x0, 0x0, 0x80, 0xff}},
|
|
{name: "MOVB/c=100/base=AX/offset=-0x80000000", inst: MOVB, c: 100, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc6, 0x80, 0x0, 0x0, 0x0, 0x80, 0x64}},
|
|
{name: "MOVB/c=-100/base=AX/offset=-0x80000000", inst: MOVB, c: -100, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc6, 0x80, 0x0, 0x0, 0x0, 0x80, 0x9c}},
|
|
{name: "MOVB/c=127/base=AX/offset=-0x80000000", inst: MOVB, c: 127, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc6, 0x80, 0x0, 0x0, 0x0, 0x80, 0x7f}},
|
|
{name: "MOVB/c=-128/base=AX/offset=-0x80000000", inst: MOVB, c: -128, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc6, 0x80, 0x0, 0x0, 0x0, 0x80, 0x80}},
|
|
{name: "MOVB/c=0/base=AX/offset=0x7fff", inst: MOVB, c: 0, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc6, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVB/c=1/base=AX/offset=0x7fff", inst: MOVB, c: 1, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc6, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x1}},
|
|
{name: "MOVB/c=-1/base=AX/offset=0x7fff", inst: MOVB, c: -1, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc6, 0x80, 0xff, 0x7f, 0x0, 0x0, 0xff}},
|
|
{name: "MOVB/c=100/base=AX/offset=0x7fff", inst: MOVB, c: 100, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc6, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x64}},
|
|
{name: "MOVB/c=-100/base=AX/offset=0x7fff", inst: MOVB, c: -100, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc6, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x9c}},
|
|
{name: "MOVB/c=127/base=AX/offset=0x7fff", inst: MOVB, c: 127, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc6, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x7f}},
|
|
{name: "MOVB/c=-128/base=AX/offset=0x7fff", inst: MOVB, c: -128, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc6, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x80}},
|
|
{name: "MOVB/c=0/base=AX/offset=-0x8000", inst: MOVB, c: 0, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc6, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0}},
|
|
{name: "MOVB/c=1/base=AX/offset=-0x8000", inst: MOVB, c: 1, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc6, 0x80, 0x0, 0x80, 0xff, 0xff, 0x1}},
|
|
{name: "MOVB/c=-1/base=AX/offset=-0x8000", inst: MOVB, c: -1, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc6, 0x80, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVB/c=100/base=AX/offset=-0x8000", inst: MOVB, c: 100, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc6, 0x80, 0x0, 0x80, 0xff, 0xff, 0x64}},
|
|
{name: "MOVB/c=-100/base=AX/offset=-0x8000", inst: MOVB, c: -100, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc6, 0x80, 0x0, 0x80, 0xff, 0xff, 0x9c}},
|
|
{name: "MOVB/c=127/base=AX/offset=-0x8000", inst: MOVB, c: 127, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc6, 0x80, 0x0, 0x80, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVB/c=-128/base=AX/offset=-0x8000", inst: MOVB, c: -128, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc6, 0x80, 0x0, 0x80, 0xff, 0xff, 0x80}},
|
|
{name: "MOVB/c=0/base=R8/offset=0x0", inst: MOVB, c: 0, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc6, 0x0, 0x0}},
|
|
{name: "MOVB/c=1/base=R8/offset=0x0", inst: MOVB, c: 1, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc6, 0x0, 0x1}},
|
|
{name: "MOVB/c=-1/base=R8/offset=0x0", inst: MOVB, c: -1, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc6, 0x0, 0xff}},
|
|
{name: "MOVB/c=100/base=R8/offset=0x0", inst: MOVB, c: 100, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc6, 0x0, 0x64}},
|
|
{name: "MOVB/c=-100/base=R8/offset=0x0", inst: MOVB, c: -100, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc6, 0x0, 0x9c}},
|
|
{name: "MOVB/c=127/base=R8/offset=0x0", inst: MOVB, c: 127, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc6, 0x0, 0x7f}},
|
|
{name: "MOVB/c=-128/base=R8/offset=0x0", inst: MOVB, c: -128, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc6, 0x0, 0x80}},
|
|
{name: "MOVB/c=0/base=R8/offset=0x1", inst: MOVB, c: 0, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc6, 0x40, 0x1, 0x0}},
|
|
{name: "MOVB/c=1/base=R8/offset=0x1", inst: MOVB, c: 1, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc6, 0x40, 0x1, 0x1}},
|
|
{name: "MOVB/c=-1/base=R8/offset=0x1", inst: MOVB, c: -1, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc6, 0x40, 0x1, 0xff}},
|
|
{name: "MOVB/c=100/base=R8/offset=0x1", inst: MOVB, c: 100, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc6, 0x40, 0x1, 0x64}},
|
|
{name: "MOVB/c=-100/base=R8/offset=0x1", inst: MOVB, c: -100, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc6, 0x40, 0x1, 0x9c}},
|
|
{name: "MOVB/c=127/base=R8/offset=0x1", inst: MOVB, c: 127, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc6, 0x40, 0x1, 0x7f}},
|
|
{name: "MOVB/c=-128/base=R8/offset=0x1", inst: MOVB, c: -128, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc6, 0x40, 0x1, 0x80}},
|
|
{name: "MOVB/c=0/base=R8/offset=-0x1", inst: MOVB, c: 0, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc6, 0x40, 0xff, 0x0}},
|
|
{name: "MOVB/c=1/base=R8/offset=-0x1", inst: MOVB, c: 1, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc6, 0x40, 0xff, 0x1}},
|
|
{name: "MOVB/c=-1/base=R8/offset=-0x1", inst: MOVB, c: -1, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc6, 0x40, 0xff, 0xff}},
|
|
{name: "MOVB/c=100/base=R8/offset=-0x1", inst: MOVB, c: 100, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc6, 0x40, 0xff, 0x64}},
|
|
{name: "MOVB/c=-100/base=R8/offset=-0x1", inst: MOVB, c: -100, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc6, 0x40, 0xff, 0x9c}},
|
|
{name: "MOVB/c=127/base=R8/offset=-0x1", inst: MOVB, c: 127, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc6, 0x40, 0xff, 0x7f}},
|
|
{name: "MOVB/c=-128/base=R8/offset=-0x1", inst: MOVB, c: -128, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc6, 0x40, 0xff, 0x80}},
|
|
{name: "MOVB/c=0/base=R8/offset=0x4db", inst: MOVB, c: 0, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc6, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0}},
|
|
{name: "MOVB/c=1/base=R8/offset=0x4db", inst: MOVB, c: 1, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc6, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x1}},
|
|
{name: "MOVB/c=-1/base=R8/offset=0x4db", inst: MOVB, c: -1, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc6, 0x80, 0xdb, 0x4, 0x0, 0x0, 0xff}},
|
|
{name: "MOVB/c=100/base=R8/offset=0x4db", inst: MOVB, c: 100, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc6, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x64}},
|
|
{name: "MOVB/c=-100/base=R8/offset=0x4db", inst: MOVB, c: -100, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc6, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x9c}},
|
|
{name: "MOVB/c=127/base=R8/offset=0x4db", inst: MOVB, c: 127, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc6, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x7f}},
|
|
{name: "MOVB/c=-128/base=R8/offset=0x4db", inst: MOVB, c: -128, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc6, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x80}},
|
|
{name: "MOVB/c=0/base=R8/offset=-0x4d2", inst: MOVB, c: 0, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc6, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0}},
|
|
{name: "MOVB/c=1/base=R8/offset=-0x4d2", inst: MOVB, c: 1, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc6, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x1}},
|
|
{name: "MOVB/c=-1/base=R8/offset=-0x4d2", inst: MOVB, c: -1, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc6, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0xff}},
|
|
{name: "MOVB/c=100/base=R8/offset=-0x4d2", inst: MOVB, c: 100, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc6, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x64}},
|
|
{name: "MOVB/c=-100/base=R8/offset=-0x4d2", inst: MOVB, c: -100, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc6, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x9c}},
|
|
{name: "MOVB/c=127/base=R8/offset=-0x4d2", inst: MOVB, c: 127, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc6, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVB/c=-128/base=R8/offset=-0x4d2", inst: MOVB, c: -128, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc6, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x80}},
|
|
{name: "MOVB/c=0/base=R8/offset=0x7fffffff", inst: MOVB, c: 0, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc6, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0}},
|
|
{name: "MOVB/c=1/base=R8/offset=0x7fffffff", inst: MOVB, c: 1, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc6, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x1}},
|
|
{name: "MOVB/c=-1/base=R8/offset=0x7fffffff", inst: MOVB, c: -1, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc6, 0x80, 0xff, 0xff, 0xff, 0x7f, 0xff}},
|
|
{name: "MOVB/c=100/base=R8/offset=0x7fffffff", inst: MOVB, c: 100, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc6, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x64}},
|
|
{name: "MOVB/c=-100/base=R8/offset=0x7fffffff", inst: MOVB, c: -100, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc6, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x9c}},
|
|
{name: "MOVB/c=127/base=R8/offset=0x7fffffff", inst: MOVB, c: 127, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc6, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x7f}},
|
|
{name: "MOVB/c=-128/base=R8/offset=0x7fffffff", inst: MOVB, c: -128, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc6, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x80}},
|
|
{name: "MOVB/c=0/base=R8/offset=-0x80000000", inst: MOVB, c: 0, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc6, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0}},
|
|
{name: "MOVB/c=1/base=R8/offset=-0x80000000", inst: MOVB, c: 1, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc6, 0x80, 0x0, 0x0, 0x0, 0x80, 0x1}},
|
|
{name: "MOVB/c=-1/base=R8/offset=-0x80000000", inst: MOVB, c: -1, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc6, 0x80, 0x0, 0x0, 0x0, 0x80, 0xff}},
|
|
{name: "MOVB/c=100/base=R8/offset=-0x80000000", inst: MOVB, c: 100, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc6, 0x80, 0x0, 0x0, 0x0, 0x80, 0x64}},
|
|
{name: "MOVB/c=-100/base=R8/offset=-0x80000000", inst: MOVB, c: -100, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc6, 0x80, 0x0, 0x0, 0x0, 0x80, 0x9c}},
|
|
{name: "MOVB/c=127/base=R8/offset=-0x80000000", inst: MOVB, c: 127, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc6, 0x80, 0x0, 0x0, 0x0, 0x80, 0x7f}},
|
|
{name: "MOVB/c=-128/base=R8/offset=-0x80000000", inst: MOVB, c: -128, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc6, 0x80, 0x0, 0x0, 0x0, 0x80, 0x80}},
|
|
{name: "MOVB/c=0/base=R8/offset=0x7fff", inst: MOVB, c: 0, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc6, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVB/c=1/base=R8/offset=0x7fff", inst: MOVB, c: 1, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc6, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x1}},
|
|
{name: "MOVB/c=-1/base=R8/offset=0x7fff", inst: MOVB, c: -1, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc6, 0x80, 0xff, 0x7f, 0x0, 0x0, 0xff}},
|
|
{name: "MOVB/c=100/base=R8/offset=0x7fff", inst: MOVB, c: 100, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc6, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x64}},
|
|
{name: "MOVB/c=-100/base=R8/offset=0x7fff", inst: MOVB, c: -100, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc6, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x9c}},
|
|
{name: "MOVB/c=127/base=R8/offset=0x7fff", inst: MOVB, c: 127, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc6, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x7f}},
|
|
{name: "MOVB/c=-128/base=R8/offset=0x7fff", inst: MOVB, c: -128, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc6, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x80}},
|
|
{name: "MOVB/c=0/base=R8/offset=-0x8000", inst: MOVB, c: 0, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc6, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0}},
|
|
{name: "MOVB/c=1/base=R8/offset=-0x8000", inst: MOVB, c: 1, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc6, 0x80, 0x0, 0x80, 0xff, 0xff, 0x1}},
|
|
{name: "MOVB/c=-1/base=R8/offset=-0x8000", inst: MOVB, c: -1, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc6, 0x80, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVB/c=100/base=R8/offset=-0x8000", inst: MOVB, c: 100, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc6, 0x80, 0x0, 0x80, 0xff, 0xff, 0x64}},
|
|
{name: "MOVB/c=-100/base=R8/offset=-0x8000", inst: MOVB, c: -100, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc6, 0x80, 0x0, 0x80, 0xff, 0xff, 0x9c}},
|
|
{name: "MOVB/c=127/base=R8/offset=-0x8000", inst: MOVB, c: 127, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc6, 0x80, 0x0, 0x80, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVB/c=-128/base=R8/offset=-0x8000", inst: MOVB, c: -128, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc6, 0x80, 0x0, 0x80, 0xff, 0xff, 0x80}},
|
|
{name: "MOVL/c=0/base=AX/offset=0x0", inst: MOVL, c: 0, baseReg: RegAX, offset: 0x0, exp: []byte{0xc7, 0x0, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=AX/offset=0x0", inst: MOVL, c: 1, baseReg: RegAX, offset: 0x0, exp: []byte{0xc7, 0x0, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=AX/offset=0x0", inst: MOVL, c: -1, baseReg: RegAX, offset: 0x0, exp: []byte{0xc7, 0x0, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=AX/offset=0x0", inst: MOVL, c: 100, baseReg: RegAX, offset: 0x0, exp: []byte{0xc7, 0x0, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=AX/offset=0x0", inst: MOVL, c: -100, baseReg: RegAX, offset: 0x0, exp: []byte{0xc7, 0x0, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=AX/offset=0x0", inst: MOVL, c: 127, baseReg: RegAX, offset: 0x0, exp: []byte{0xc7, 0x0, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=AX/offset=0x0", inst: MOVL, c: -128, baseReg: RegAX, offset: 0x0, exp: []byte{0xc7, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=AX/offset=0x0", inst: MOVL, c: 32767, baseReg: RegAX, offset: 0x0, exp: []byte{0xc7, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=AX/offset=0x0", inst: MOVL, c: -32768, baseReg: RegAX, offset: 0x0, exp: []byte{0xc7, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=AX/offset=0x0", inst: MOVL, c: 1048576, baseReg: RegAX, offset: 0x0, exp: []byte{0xc7, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=AX/offset=0x0", inst: MOVL, c: -1048576, baseReg: RegAX, offset: 0x0, exp: []byte{0xc7, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=AX/offset=0x0", inst: MOVL, c: 2147483647, baseReg: RegAX, offset: 0x0, exp: []byte{0xc7, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=AX/offset=0x0", inst: MOVL, c: -2147483648, baseReg: RegAX, offset: 0x0, exp: []byte{0xc7, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=AX/offset=0x1", inst: MOVL, c: 0, baseReg: RegAX, offset: 0x1, exp: []byte{0xc7, 0x40, 0x1, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=AX/offset=0x1", inst: MOVL, c: 1, baseReg: RegAX, offset: 0x1, exp: []byte{0xc7, 0x40, 0x1, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=AX/offset=0x1", inst: MOVL, c: -1, baseReg: RegAX, offset: 0x1, exp: []byte{0xc7, 0x40, 0x1, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=AX/offset=0x1", inst: MOVL, c: 100, baseReg: RegAX, offset: 0x1, exp: []byte{0xc7, 0x40, 0x1, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=AX/offset=0x1", inst: MOVL, c: -100, baseReg: RegAX, offset: 0x1, exp: []byte{0xc7, 0x40, 0x1, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=AX/offset=0x1", inst: MOVL, c: 127, baseReg: RegAX, offset: 0x1, exp: []byte{0xc7, 0x40, 0x1, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=AX/offset=0x1", inst: MOVL, c: -128, baseReg: RegAX, offset: 0x1, exp: []byte{0xc7, 0x40, 0x1, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=AX/offset=0x1", inst: MOVL, c: 32767, baseReg: RegAX, offset: 0x1, exp: []byte{0xc7, 0x40, 0x1, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=AX/offset=0x1", inst: MOVL, c: -32768, baseReg: RegAX, offset: 0x1, exp: []byte{0xc7, 0x40, 0x1, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=AX/offset=0x1", inst: MOVL, c: 1048576, baseReg: RegAX, offset: 0x1, exp: []byte{0xc7, 0x40, 0x1, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=AX/offset=0x1", inst: MOVL, c: -1048576, baseReg: RegAX, offset: 0x1, exp: []byte{0xc7, 0x40, 0x1, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=AX/offset=0x1", inst: MOVL, c: 2147483647, baseReg: RegAX, offset: 0x1, exp: []byte{0xc7, 0x40, 0x1, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=AX/offset=0x1", inst: MOVL, c: -2147483648, baseReg: RegAX, offset: 0x1, exp: []byte{0xc7, 0x40, 0x1, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=AX/offset=-0x1", inst: MOVL, c: 0, baseReg: RegAX, offset: -0x1, exp: []byte{0xc7, 0x40, 0xff, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=AX/offset=-0x1", inst: MOVL, c: 1, baseReg: RegAX, offset: -0x1, exp: []byte{0xc7, 0x40, 0xff, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=AX/offset=-0x1", inst: MOVL, c: -1, baseReg: RegAX, offset: -0x1, exp: []byte{0xc7, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=AX/offset=-0x1", inst: MOVL, c: 100, baseReg: RegAX, offset: -0x1, exp: []byte{0xc7, 0x40, 0xff, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=AX/offset=-0x1", inst: MOVL, c: -100, baseReg: RegAX, offset: -0x1, exp: []byte{0xc7, 0x40, 0xff, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=AX/offset=-0x1", inst: MOVL, c: 127, baseReg: RegAX, offset: -0x1, exp: []byte{0xc7, 0x40, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=AX/offset=-0x1", inst: MOVL, c: -128, baseReg: RegAX, offset: -0x1, exp: []byte{0xc7, 0x40, 0xff, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=AX/offset=-0x1", inst: MOVL, c: 32767, baseReg: RegAX, offset: -0x1, exp: []byte{0xc7, 0x40, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=AX/offset=-0x1", inst: MOVL, c: -32768, baseReg: RegAX, offset: -0x1, exp: []byte{0xc7, 0x40, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=AX/offset=-0x1", inst: MOVL, c: 1048576, baseReg: RegAX, offset: -0x1, exp: []byte{0xc7, 0x40, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=AX/offset=-0x1", inst: MOVL, c: -1048576, baseReg: RegAX, offset: -0x1, exp: []byte{0xc7, 0x40, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=AX/offset=-0x1", inst: MOVL, c: 2147483647, baseReg: RegAX, offset: -0x1, exp: []byte{0xc7, 0x40, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=AX/offset=-0x1", inst: MOVL, c: -2147483648, baseReg: RegAX, offset: -0x1, exp: []byte{0xc7, 0x40, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=AX/offset=0x4db", inst: MOVL, c: 0, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=AX/offset=0x4db", inst: MOVL, c: 1, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=AX/offset=0x4db", inst: MOVL, c: -1, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=AX/offset=0x4db", inst: MOVL, c: 100, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=AX/offset=0x4db", inst: MOVL, c: -100, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=AX/offset=0x4db", inst: MOVL, c: 127, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=AX/offset=0x4db", inst: MOVL, c: -128, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=AX/offset=0x4db", inst: MOVL, c: 32767, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=AX/offset=0x4db", inst: MOVL, c: -32768, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=AX/offset=0x4db", inst: MOVL, c: 1048576, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=AX/offset=0x4db", inst: MOVL, c: -1048576, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=AX/offset=0x4db", inst: MOVL, c: 2147483647, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=AX/offset=0x4db", inst: MOVL, c: -2147483648, baseReg: RegAX, offset: 0x4db, exp: []byte{0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=AX/offset=-0x4d2", inst: MOVL, c: 0, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=AX/offset=-0x4d2", inst: MOVL, c: 1, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=AX/offset=-0x4d2", inst: MOVL, c: -1, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=AX/offset=-0x4d2", inst: MOVL, c: 100, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=AX/offset=-0x4d2", inst: MOVL, c: -100, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=AX/offset=-0x4d2", inst: MOVL, c: 127, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=AX/offset=-0x4d2", inst: MOVL, c: -128, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=AX/offset=-0x4d2", inst: MOVL, c: 32767, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=AX/offset=-0x4d2", inst: MOVL, c: -32768, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=AX/offset=-0x4d2", inst: MOVL, c: 1048576, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=AX/offset=-0x4d2", inst: MOVL, c: -1048576, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=AX/offset=-0x4d2", inst: MOVL, c: 2147483647, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=AX/offset=-0x4d2", inst: MOVL, c: -2147483648, baseReg: RegAX, offset: -0x4d2, exp: []byte{0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=AX/offset=0x7fffffff", inst: MOVL, c: 0, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=AX/offset=0x7fffffff", inst: MOVL, c: 1, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=AX/offset=0x7fffffff", inst: MOVL, c: -1, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=AX/offset=0x7fffffff", inst: MOVL, c: 100, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=AX/offset=0x7fffffff", inst: MOVL, c: -100, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=AX/offset=0x7fffffff", inst: MOVL, c: 127, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=AX/offset=0x7fffffff", inst: MOVL, c: -128, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=AX/offset=0x7fffffff", inst: MOVL, c: 32767, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=AX/offset=0x7fffffff", inst: MOVL, c: -32768, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=AX/offset=0x7fffffff", inst: MOVL, c: 1048576, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=AX/offset=0x7fffffff", inst: MOVL, c: -1048576, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=AX/offset=0x7fffffff", inst: MOVL, c: 2147483647, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=AX/offset=0x7fffffff", inst: MOVL, c: -2147483648, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=AX/offset=-0x80000000", inst: MOVL, c: 0, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=AX/offset=-0x80000000", inst: MOVL, c: 1, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=AX/offset=-0x80000000", inst: MOVL, c: -1, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=AX/offset=-0x80000000", inst: MOVL, c: 100, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=AX/offset=-0x80000000", inst: MOVL, c: -100, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=AX/offset=-0x80000000", inst: MOVL, c: 127, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=AX/offset=-0x80000000", inst: MOVL, c: -128, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=AX/offset=-0x80000000", inst: MOVL, c: 32767, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=AX/offset=-0x80000000", inst: MOVL, c: -32768, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=AX/offset=-0x80000000", inst: MOVL, c: 1048576, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=AX/offset=-0x80000000", inst: MOVL, c: -1048576, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=AX/offset=-0x80000000", inst: MOVL, c: 2147483647, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=AX/offset=-0x80000000", inst: MOVL, c: -2147483648, baseReg: RegAX, offset: -0x80000000, exp: []byte{0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=AX/offset=0x7fff", inst: MOVL, c: 0, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=AX/offset=0x7fff", inst: MOVL, c: 1, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=AX/offset=0x7fff", inst: MOVL, c: -1, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=AX/offset=0x7fff", inst: MOVL, c: 100, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=AX/offset=0x7fff", inst: MOVL, c: -100, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=AX/offset=0x7fff", inst: MOVL, c: 127, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=AX/offset=0x7fff", inst: MOVL, c: -128, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=AX/offset=0x7fff", inst: MOVL, c: 32767, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=AX/offset=0x7fff", inst: MOVL, c: -32768, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=AX/offset=0x7fff", inst: MOVL, c: 1048576, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=AX/offset=0x7fff", inst: MOVL, c: -1048576, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=AX/offset=0x7fff", inst: MOVL, c: 2147483647, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=AX/offset=0x7fff", inst: MOVL, c: -2147483648, baseReg: RegAX, offset: 0x7fff, exp: []byte{0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=AX/offset=-0x8000", inst: MOVL, c: 0, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=AX/offset=-0x8000", inst: MOVL, c: 1, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=AX/offset=-0x8000", inst: MOVL, c: -1, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=AX/offset=-0x8000", inst: MOVL, c: 100, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=AX/offset=-0x8000", inst: MOVL, c: -100, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=AX/offset=-0x8000", inst: MOVL, c: 127, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=AX/offset=-0x8000", inst: MOVL, c: -128, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=AX/offset=-0x8000", inst: MOVL, c: 32767, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=AX/offset=-0x8000", inst: MOVL, c: -32768, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=AX/offset=-0x8000", inst: MOVL, c: 1048576, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=AX/offset=-0x8000", inst: MOVL, c: -1048576, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=AX/offset=-0x8000", inst: MOVL, c: 2147483647, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=AX/offset=-0x8000", inst: MOVL, c: -2147483648, baseReg: RegAX, offset: -0x8000, exp: []byte{0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=R8/offset=0x0", inst: MOVL, c: 0, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc7, 0x0, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=R8/offset=0x0", inst: MOVL, c: 1, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc7, 0x0, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=R8/offset=0x0", inst: MOVL, c: -1, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc7, 0x0, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=R8/offset=0x0", inst: MOVL, c: 100, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc7, 0x0, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=R8/offset=0x0", inst: MOVL, c: -100, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc7, 0x0, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=R8/offset=0x0", inst: MOVL, c: 127, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc7, 0x0, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=R8/offset=0x0", inst: MOVL, c: -128, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc7, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=R8/offset=0x0", inst: MOVL, c: 32767, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc7, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=R8/offset=0x0", inst: MOVL, c: -32768, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc7, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=R8/offset=0x0", inst: MOVL, c: 1048576, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc7, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=R8/offset=0x0", inst: MOVL, c: -1048576, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc7, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=R8/offset=0x0", inst: MOVL, c: 2147483647, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc7, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=R8/offset=0x0", inst: MOVL, c: -2147483648, baseReg: RegR8, offset: 0x0, exp: []byte{0x41, 0xc7, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=R8/offset=0x1", inst: MOVL, c: 0, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc7, 0x40, 0x1, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=R8/offset=0x1", inst: MOVL, c: 1, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc7, 0x40, 0x1, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=R8/offset=0x1", inst: MOVL, c: -1, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc7, 0x40, 0x1, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=R8/offset=0x1", inst: MOVL, c: 100, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc7, 0x40, 0x1, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=R8/offset=0x1", inst: MOVL, c: -100, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc7, 0x40, 0x1, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=R8/offset=0x1", inst: MOVL, c: 127, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc7, 0x40, 0x1, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=R8/offset=0x1", inst: MOVL, c: -128, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc7, 0x40, 0x1, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=R8/offset=0x1", inst: MOVL, c: 32767, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc7, 0x40, 0x1, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=R8/offset=0x1", inst: MOVL, c: -32768, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc7, 0x40, 0x1, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=R8/offset=0x1", inst: MOVL, c: 1048576, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc7, 0x40, 0x1, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=R8/offset=0x1", inst: MOVL, c: -1048576, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc7, 0x40, 0x1, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=R8/offset=0x1", inst: MOVL, c: 2147483647, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc7, 0x40, 0x1, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=R8/offset=0x1", inst: MOVL, c: -2147483648, baseReg: RegR8, offset: 0x1, exp: []byte{0x41, 0xc7, 0x40, 0x1, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=R8/offset=-0x1", inst: MOVL, c: 0, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc7, 0x40, 0xff, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=R8/offset=-0x1", inst: MOVL, c: 1, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc7, 0x40, 0xff, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=R8/offset=-0x1", inst: MOVL, c: -1, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc7, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=R8/offset=-0x1", inst: MOVL, c: 100, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc7, 0x40, 0xff, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=R8/offset=-0x1", inst: MOVL, c: -100, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc7, 0x40, 0xff, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=R8/offset=-0x1", inst: MOVL, c: 127, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc7, 0x40, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=R8/offset=-0x1", inst: MOVL, c: -128, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc7, 0x40, 0xff, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=R8/offset=-0x1", inst: MOVL, c: 32767, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc7, 0x40, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=R8/offset=-0x1", inst: MOVL, c: -32768, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc7, 0x40, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=R8/offset=-0x1", inst: MOVL, c: 1048576, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc7, 0x40, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=R8/offset=-0x1", inst: MOVL, c: -1048576, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc7, 0x40, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=R8/offset=-0x1", inst: MOVL, c: 2147483647, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc7, 0x40, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=R8/offset=-0x1", inst: MOVL, c: -2147483648, baseReg: RegR8, offset: -0x1, exp: []byte{0x41, 0xc7, 0x40, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=R8/offset=0x4db", inst: MOVL, c: 0, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=R8/offset=0x4db", inst: MOVL, c: 1, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=R8/offset=0x4db", inst: MOVL, c: -1, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=R8/offset=0x4db", inst: MOVL, c: 100, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=R8/offset=0x4db", inst: MOVL, c: -100, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=R8/offset=0x4db", inst: MOVL, c: 127, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=R8/offset=0x4db", inst: MOVL, c: -128, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=R8/offset=0x4db", inst: MOVL, c: 32767, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=R8/offset=0x4db", inst: MOVL, c: -32768, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=R8/offset=0x4db", inst: MOVL, c: 1048576, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=R8/offset=0x4db", inst: MOVL, c: -1048576, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=R8/offset=0x4db", inst: MOVL, c: 2147483647, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=R8/offset=0x4db", inst: MOVL, c: -2147483648, baseReg: RegR8, offset: 0x4db, exp: []byte{0x41, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=R8/offset=-0x4d2", inst: MOVL, c: 0, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=R8/offset=-0x4d2", inst: MOVL, c: 1, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=R8/offset=-0x4d2", inst: MOVL, c: -1, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=R8/offset=-0x4d2", inst: MOVL, c: 100, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=R8/offset=-0x4d2", inst: MOVL, c: -100, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=R8/offset=-0x4d2", inst: MOVL, c: 127, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=R8/offset=-0x4d2", inst: MOVL, c: -128, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=R8/offset=-0x4d2", inst: MOVL, c: 32767, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=R8/offset=-0x4d2", inst: MOVL, c: -32768, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=R8/offset=-0x4d2", inst: MOVL, c: 1048576, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=R8/offset=-0x4d2", inst: MOVL, c: -1048576, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=R8/offset=-0x4d2", inst: MOVL, c: 2147483647, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=R8/offset=-0x4d2", inst: MOVL, c: -2147483648, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x41, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=R8/offset=0x7fffffff", inst: MOVL, c: 0, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=R8/offset=0x7fffffff", inst: MOVL, c: 1, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=R8/offset=0x7fffffff", inst: MOVL, c: -1, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=R8/offset=0x7fffffff", inst: MOVL, c: 100, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=R8/offset=0x7fffffff", inst: MOVL, c: -100, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=R8/offset=0x7fffffff", inst: MOVL, c: 127, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=R8/offset=0x7fffffff", inst: MOVL, c: -128, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=R8/offset=0x7fffffff", inst: MOVL, c: 32767, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=R8/offset=0x7fffffff", inst: MOVL, c: -32768, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=R8/offset=0x7fffffff", inst: MOVL, c: 1048576, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=R8/offset=0x7fffffff", inst: MOVL, c: -1048576, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=R8/offset=0x7fffffff", inst: MOVL, c: 2147483647, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=R8/offset=0x7fffffff", inst: MOVL, c: -2147483648, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=R8/offset=-0x80000000", inst: MOVL, c: 0, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=R8/offset=-0x80000000", inst: MOVL, c: 1, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=R8/offset=-0x80000000", inst: MOVL, c: -1, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=R8/offset=-0x80000000", inst: MOVL, c: 100, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=R8/offset=-0x80000000", inst: MOVL, c: -100, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=R8/offset=-0x80000000", inst: MOVL, c: 127, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=R8/offset=-0x80000000", inst: MOVL, c: -128, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=R8/offset=-0x80000000", inst: MOVL, c: 32767, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=R8/offset=-0x80000000", inst: MOVL, c: -32768, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=R8/offset=-0x80000000", inst: MOVL, c: 1048576, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=R8/offset=-0x80000000", inst: MOVL, c: -1048576, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=R8/offset=-0x80000000", inst: MOVL, c: 2147483647, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=R8/offset=-0x80000000", inst: MOVL, c: -2147483648, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=R8/offset=0x7fff", inst: MOVL, c: 0, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=R8/offset=0x7fff", inst: MOVL, c: 1, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=R8/offset=0x7fff", inst: MOVL, c: -1, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=R8/offset=0x7fff", inst: MOVL, c: 100, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=R8/offset=0x7fff", inst: MOVL, c: -100, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=R8/offset=0x7fff", inst: MOVL, c: 127, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=R8/offset=0x7fff", inst: MOVL, c: -128, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=R8/offset=0x7fff", inst: MOVL, c: 32767, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=R8/offset=0x7fff", inst: MOVL, c: -32768, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=R8/offset=0x7fff", inst: MOVL, c: 1048576, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=R8/offset=0x7fff", inst: MOVL, c: -1048576, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=R8/offset=0x7fff", inst: MOVL, c: 2147483647, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=R8/offset=0x7fff", inst: MOVL, c: -2147483648, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x41, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVL/c=0/base=R8/offset=-0x8000", inst: MOVL, c: 0, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=1/base=R8/offset=-0x8000", inst: MOVL, c: 1, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-1/base=R8/offset=-0x8000", inst: MOVL, c: -1, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=100/base=R8/offset=-0x8000", inst: MOVL, c: 100, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-100/base=R8/offset=-0x8000", inst: MOVL, c: -100, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=127/base=R8/offset=-0x8000", inst: MOVL, c: 127, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVL/c=-128/base=R8/offset=-0x8000", inst: MOVL, c: -128, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVL/c=32767/base=R8/offset=-0x8000", inst: MOVL, c: 32767, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVL/c=-32768/base=R8/offset=-0x8000", inst: MOVL, c: -32768, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVL/c=1048576/base=R8/offset=-0x8000", inst: MOVL, c: 1048576, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVL/c=-1048576/base=R8/offset=-0x8000", inst: MOVL, c: -1048576, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVL/c=2147483647/base=R8/offset=-0x8000", inst: MOVL, c: 2147483647, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVL/c=-2147483648/base=R8/offset=-0x8000", inst: MOVL, c: -2147483648, baseReg: RegR8, offset: -0x8000, exp: []byte{0x41, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=AX/offset=0x0", inst: MOVQ, c: 0, baseReg: RegAX, offset: 0x0, exp: []byte{0x48, 0xc7, 0x0, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=AX/offset=0x0", inst: MOVQ, c: 1, baseReg: RegAX, offset: 0x0, exp: []byte{0x48, 0xc7, 0x0, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=AX/offset=0x0", inst: MOVQ, c: -1, baseReg: RegAX, offset: 0x0, exp: []byte{0x48, 0xc7, 0x0, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=AX/offset=0x0", inst: MOVQ, c: 100, baseReg: RegAX, offset: 0x0, exp: []byte{0x48, 0xc7, 0x0, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=AX/offset=0x0", inst: MOVQ, c: -100, baseReg: RegAX, offset: 0x0, exp: []byte{0x48, 0xc7, 0x0, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=AX/offset=0x0", inst: MOVQ, c: 127, baseReg: RegAX, offset: 0x0, exp: []byte{0x48, 0xc7, 0x0, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=AX/offset=0x0", inst: MOVQ, c: -128, baseReg: RegAX, offset: 0x0, exp: []byte{0x48, 0xc7, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=AX/offset=0x0", inst: MOVQ, c: 32767, baseReg: RegAX, offset: 0x0, exp: []byte{0x48, 0xc7, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=AX/offset=0x0", inst: MOVQ, c: -32768, baseReg: RegAX, offset: 0x0, exp: []byte{0x48, 0xc7, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=AX/offset=0x0", inst: MOVQ, c: 1048576, baseReg: RegAX, offset: 0x0, exp: []byte{0x48, 0xc7, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=AX/offset=0x0", inst: MOVQ, c: -1048576, baseReg: RegAX, offset: 0x0, exp: []byte{0x48, 0xc7, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=AX/offset=0x0", inst: MOVQ, c: 2147483647, baseReg: RegAX, offset: 0x0, exp: []byte{0x48, 0xc7, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=AX/offset=0x0", inst: MOVQ, c: -2147483648, baseReg: RegAX, offset: 0x0, exp: []byte{0x48, 0xc7, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=AX/offset=0x1", inst: MOVQ, c: 0, baseReg: RegAX, offset: 0x1, exp: []byte{0x48, 0xc7, 0x40, 0x1, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=AX/offset=0x1", inst: MOVQ, c: 1, baseReg: RegAX, offset: 0x1, exp: []byte{0x48, 0xc7, 0x40, 0x1, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=AX/offset=0x1", inst: MOVQ, c: -1, baseReg: RegAX, offset: 0x1, exp: []byte{0x48, 0xc7, 0x40, 0x1, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=AX/offset=0x1", inst: MOVQ, c: 100, baseReg: RegAX, offset: 0x1, exp: []byte{0x48, 0xc7, 0x40, 0x1, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=AX/offset=0x1", inst: MOVQ, c: -100, baseReg: RegAX, offset: 0x1, exp: []byte{0x48, 0xc7, 0x40, 0x1, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=AX/offset=0x1", inst: MOVQ, c: 127, baseReg: RegAX, offset: 0x1, exp: []byte{0x48, 0xc7, 0x40, 0x1, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=AX/offset=0x1", inst: MOVQ, c: -128, baseReg: RegAX, offset: 0x1, exp: []byte{0x48, 0xc7, 0x40, 0x1, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=AX/offset=0x1", inst: MOVQ, c: 32767, baseReg: RegAX, offset: 0x1, exp: []byte{0x48, 0xc7, 0x40, 0x1, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=AX/offset=0x1", inst: MOVQ, c: -32768, baseReg: RegAX, offset: 0x1, exp: []byte{0x48, 0xc7, 0x40, 0x1, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=AX/offset=0x1", inst: MOVQ, c: 1048576, baseReg: RegAX, offset: 0x1, exp: []byte{0x48, 0xc7, 0x40, 0x1, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=AX/offset=0x1", inst: MOVQ, c: -1048576, baseReg: RegAX, offset: 0x1, exp: []byte{0x48, 0xc7, 0x40, 0x1, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=AX/offset=0x1", inst: MOVQ, c: 2147483647, baseReg: RegAX, offset: 0x1, exp: []byte{0x48, 0xc7, 0x40, 0x1, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=AX/offset=0x1", inst: MOVQ, c: -2147483648, baseReg: RegAX, offset: 0x1, exp: []byte{0x48, 0xc7, 0x40, 0x1, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=AX/offset=-0x1", inst: MOVQ, c: 0, baseReg: RegAX, offset: -0x1, exp: []byte{0x48, 0xc7, 0x40, 0xff, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=AX/offset=-0x1", inst: MOVQ, c: 1, baseReg: RegAX, offset: -0x1, exp: []byte{0x48, 0xc7, 0x40, 0xff, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=AX/offset=-0x1", inst: MOVQ, c: -1, baseReg: RegAX, offset: -0x1, exp: []byte{0x48, 0xc7, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=AX/offset=-0x1", inst: MOVQ, c: 100, baseReg: RegAX, offset: -0x1, exp: []byte{0x48, 0xc7, 0x40, 0xff, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=AX/offset=-0x1", inst: MOVQ, c: -100, baseReg: RegAX, offset: -0x1, exp: []byte{0x48, 0xc7, 0x40, 0xff, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=AX/offset=-0x1", inst: MOVQ, c: 127, baseReg: RegAX, offset: -0x1, exp: []byte{0x48, 0xc7, 0x40, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=AX/offset=-0x1", inst: MOVQ, c: -128, baseReg: RegAX, offset: -0x1, exp: []byte{0x48, 0xc7, 0x40, 0xff, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=AX/offset=-0x1", inst: MOVQ, c: 32767, baseReg: RegAX, offset: -0x1, exp: []byte{0x48, 0xc7, 0x40, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=AX/offset=-0x1", inst: MOVQ, c: -32768, baseReg: RegAX, offset: -0x1, exp: []byte{0x48, 0xc7, 0x40, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=AX/offset=-0x1", inst: MOVQ, c: 1048576, baseReg: RegAX, offset: -0x1, exp: []byte{0x48, 0xc7, 0x40, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=AX/offset=-0x1", inst: MOVQ, c: -1048576, baseReg: RegAX, offset: -0x1, exp: []byte{0x48, 0xc7, 0x40, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=AX/offset=-0x1", inst: MOVQ, c: 2147483647, baseReg: RegAX, offset: -0x1, exp: []byte{0x48, 0xc7, 0x40, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=AX/offset=-0x1", inst: MOVQ, c: -2147483648, baseReg: RegAX, offset: -0x1, exp: []byte{0x48, 0xc7, 0x40, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=AX/offset=0x4db", inst: MOVQ, c: 0, baseReg: RegAX, offset: 0x4db, exp: []byte{0x48, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=AX/offset=0x4db", inst: MOVQ, c: 1, baseReg: RegAX, offset: 0x4db, exp: []byte{0x48, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=AX/offset=0x4db", inst: MOVQ, c: -1, baseReg: RegAX, offset: 0x4db, exp: []byte{0x48, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=AX/offset=0x4db", inst: MOVQ, c: 100, baseReg: RegAX, offset: 0x4db, exp: []byte{0x48, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=AX/offset=0x4db", inst: MOVQ, c: -100, baseReg: RegAX, offset: 0x4db, exp: []byte{0x48, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=AX/offset=0x4db", inst: MOVQ, c: 127, baseReg: RegAX, offset: 0x4db, exp: []byte{0x48, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=AX/offset=0x4db", inst: MOVQ, c: -128, baseReg: RegAX, offset: 0x4db, exp: []byte{0x48, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=AX/offset=0x4db", inst: MOVQ, c: 32767, baseReg: RegAX, offset: 0x4db, exp: []byte{0x48, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=AX/offset=0x4db", inst: MOVQ, c: -32768, baseReg: RegAX, offset: 0x4db, exp: []byte{0x48, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=AX/offset=0x4db", inst: MOVQ, c: 1048576, baseReg: RegAX, offset: 0x4db, exp: []byte{0x48, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=AX/offset=0x4db", inst: MOVQ, c: -1048576, baseReg: RegAX, offset: 0x4db, exp: []byte{0x48, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=AX/offset=0x4db", inst: MOVQ, c: 2147483647, baseReg: RegAX, offset: 0x4db, exp: []byte{0x48, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=AX/offset=0x4db", inst: MOVQ, c: -2147483648, baseReg: RegAX, offset: 0x4db, exp: []byte{0x48, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=AX/offset=-0x4d2", inst: MOVQ, c: 0, baseReg: RegAX, offset: -0x4d2, exp: []byte{0x48, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=AX/offset=-0x4d2", inst: MOVQ, c: 1, baseReg: RegAX, offset: -0x4d2, exp: []byte{0x48, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=AX/offset=-0x4d2", inst: MOVQ, c: -1, baseReg: RegAX, offset: -0x4d2, exp: []byte{0x48, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=AX/offset=-0x4d2", inst: MOVQ, c: 100, baseReg: RegAX, offset: -0x4d2, exp: []byte{0x48, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=AX/offset=-0x4d2", inst: MOVQ, c: -100, baseReg: RegAX, offset: -0x4d2, exp: []byte{0x48, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=AX/offset=-0x4d2", inst: MOVQ, c: 127, baseReg: RegAX, offset: -0x4d2, exp: []byte{0x48, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=AX/offset=-0x4d2", inst: MOVQ, c: -128, baseReg: RegAX, offset: -0x4d2, exp: []byte{0x48, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=AX/offset=-0x4d2", inst: MOVQ, c: 32767, baseReg: RegAX, offset: -0x4d2, exp: []byte{0x48, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=AX/offset=-0x4d2", inst: MOVQ, c: -32768, baseReg: RegAX, offset: -0x4d2, exp: []byte{0x48, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=AX/offset=-0x4d2", inst: MOVQ, c: 1048576, baseReg: RegAX, offset: -0x4d2, exp: []byte{0x48, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=AX/offset=-0x4d2", inst: MOVQ, c: -1048576, baseReg: RegAX, offset: -0x4d2, exp: []byte{0x48, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=AX/offset=-0x4d2", inst: MOVQ, c: 2147483647, baseReg: RegAX, offset: -0x4d2, exp: []byte{0x48, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=AX/offset=-0x4d2", inst: MOVQ, c: -2147483648, baseReg: RegAX, offset: -0x4d2, exp: []byte{0x48, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=AX/offset=0x7fffffff", inst: MOVQ, c: 0, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=AX/offset=0x7fffffff", inst: MOVQ, c: 1, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=AX/offset=0x7fffffff", inst: MOVQ, c: -1, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=AX/offset=0x7fffffff", inst: MOVQ, c: 100, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=AX/offset=0x7fffffff", inst: MOVQ, c: -100, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=AX/offset=0x7fffffff", inst: MOVQ, c: 127, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=AX/offset=0x7fffffff", inst: MOVQ, c: -128, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=AX/offset=0x7fffffff", inst: MOVQ, c: 32767, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=AX/offset=0x7fffffff", inst: MOVQ, c: -32768, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=AX/offset=0x7fffffff", inst: MOVQ, c: 1048576, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=AX/offset=0x7fffffff", inst: MOVQ, c: -1048576, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=AX/offset=0x7fffffff", inst: MOVQ, c: 2147483647, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=AX/offset=0x7fffffff", inst: MOVQ, c: -2147483648, baseReg: RegAX, offset: 0x7fffffff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=AX/offset=-0x80000000", inst: MOVQ, c: 0, baseReg: RegAX, offset: -0x80000000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=AX/offset=-0x80000000", inst: MOVQ, c: 1, baseReg: RegAX, offset: -0x80000000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=AX/offset=-0x80000000", inst: MOVQ, c: -1, baseReg: RegAX, offset: -0x80000000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=AX/offset=-0x80000000", inst: MOVQ, c: 100, baseReg: RegAX, offset: -0x80000000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=AX/offset=-0x80000000", inst: MOVQ, c: -100, baseReg: RegAX, offset: -0x80000000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=AX/offset=-0x80000000", inst: MOVQ, c: 127, baseReg: RegAX, offset: -0x80000000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=AX/offset=-0x80000000", inst: MOVQ, c: -128, baseReg: RegAX, offset: -0x80000000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=AX/offset=-0x80000000", inst: MOVQ, c: 32767, baseReg: RegAX, offset: -0x80000000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=AX/offset=-0x80000000", inst: MOVQ, c: -32768, baseReg: RegAX, offset: -0x80000000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=AX/offset=-0x80000000", inst: MOVQ, c: 1048576, baseReg: RegAX, offset: -0x80000000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=AX/offset=-0x80000000", inst: MOVQ, c: -1048576, baseReg: RegAX, offset: -0x80000000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=AX/offset=-0x80000000", inst: MOVQ, c: 2147483647, baseReg: RegAX, offset: -0x80000000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=AX/offset=-0x80000000", inst: MOVQ, c: -2147483648, baseReg: RegAX, offset: -0x80000000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=AX/offset=0x7fff", inst: MOVQ, c: 0, baseReg: RegAX, offset: 0x7fff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=AX/offset=0x7fff", inst: MOVQ, c: 1, baseReg: RegAX, offset: 0x7fff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=AX/offset=0x7fff", inst: MOVQ, c: -1, baseReg: RegAX, offset: 0x7fff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=AX/offset=0x7fff", inst: MOVQ, c: 100, baseReg: RegAX, offset: 0x7fff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=AX/offset=0x7fff", inst: MOVQ, c: -100, baseReg: RegAX, offset: 0x7fff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=AX/offset=0x7fff", inst: MOVQ, c: 127, baseReg: RegAX, offset: 0x7fff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=AX/offset=0x7fff", inst: MOVQ, c: -128, baseReg: RegAX, offset: 0x7fff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=AX/offset=0x7fff", inst: MOVQ, c: 32767, baseReg: RegAX, offset: 0x7fff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=AX/offset=0x7fff", inst: MOVQ, c: -32768, baseReg: RegAX, offset: 0x7fff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=AX/offset=0x7fff", inst: MOVQ, c: 1048576, baseReg: RegAX, offset: 0x7fff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=AX/offset=0x7fff", inst: MOVQ, c: -1048576, baseReg: RegAX, offset: 0x7fff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=AX/offset=0x7fff", inst: MOVQ, c: 2147483647, baseReg: RegAX, offset: 0x7fff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=AX/offset=0x7fff", inst: MOVQ, c: -2147483648, baseReg: RegAX, offset: 0x7fff, exp: []byte{0x48, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=AX/offset=-0x8000", inst: MOVQ, c: 0, baseReg: RegAX, offset: -0x8000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=AX/offset=-0x8000", inst: MOVQ, c: 1, baseReg: RegAX, offset: -0x8000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=AX/offset=-0x8000", inst: MOVQ, c: -1, baseReg: RegAX, offset: -0x8000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=AX/offset=-0x8000", inst: MOVQ, c: 100, baseReg: RegAX, offset: -0x8000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=AX/offset=-0x8000", inst: MOVQ, c: -100, baseReg: RegAX, offset: -0x8000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=AX/offset=-0x8000", inst: MOVQ, c: 127, baseReg: RegAX, offset: -0x8000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=AX/offset=-0x8000", inst: MOVQ, c: -128, baseReg: RegAX, offset: -0x8000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=AX/offset=-0x8000", inst: MOVQ, c: 32767, baseReg: RegAX, offset: -0x8000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=AX/offset=-0x8000", inst: MOVQ, c: -32768, baseReg: RegAX, offset: -0x8000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=AX/offset=-0x8000", inst: MOVQ, c: 1048576, baseReg: RegAX, offset: -0x8000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=AX/offset=-0x8000", inst: MOVQ, c: -1048576, baseReg: RegAX, offset: -0x8000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=AX/offset=-0x8000", inst: MOVQ, c: 2147483647, baseReg: RegAX, offset: -0x8000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=AX/offset=-0x8000", inst: MOVQ, c: -2147483648, baseReg: RegAX, offset: -0x8000, exp: []byte{0x48, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=R8/offset=0x0", inst: MOVQ, c: 0, baseReg: RegR8, offset: 0x0, exp: []byte{0x49, 0xc7, 0x0, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=R8/offset=0x0", inst: MOVQ, c: 1, baseReg: RegR8, offset: 0x0, exp: []byte{0x49, 0xc7, 0x0, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=R8/offset=0x0", inst: MOVQ, c: -1, baseReg: RegR8, offset: 0x0, exp: []byte{0x49, 0xc7, 0x0, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=R8/offset=0x0", inst: MOVQ, c: 100, baseReg: RegR8, offset: 0x0, exp: []byte{0x49, 0xc7, 0x0, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=R8/offset=0x0", inst: MOVQ, c: -100, baseReg: RegR8, offset: 0x0, exp: []byte{0x49, 0xc7, 0x0, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=R8/offset=0x0", inst: MOVQ, c: 127, baseReg: RegR8, offset: 0x0, exp: []byte{0x49, 0xc7, 0x0, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=R8/offset=0x0", inst: MOVQ, c: -128, baseReg: RegR8, offset: 0x0, exp: []byte{0x49, 0xc7, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=R8/offset=0x0", inst: MOVQ, c: 32767, baseReg: RegR8, offset: 0x0, exp: []byte{0x49, 0xc7, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=R8/offset=0x0", inst: MOVQ, c: -32768, baseReg: RegR8, offset: 0x0, exp: []byte{0x49, 0xc7, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=R8/offset=0x0", inst: MOVQ, c: 1048576, baseReg: RegR8, offset: 0x0, exp: []byte{0x49, 0xc7, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=R8/offset=0x0", inst: MOVQ, c: -1048576, baseReg: RegR8, offset: 0x0, exp: []byte{0x49, 0xc7, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=R8/offset=0x0", inst: MOVQ, c: 2147483647, baseReg: RegR8, offset: 0x0, exp: []byte{0x49, 0xc7, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=R8/offset=0x0", inst: MOVQ, c: -2147483648, baseReg: RegR8, offset: 0x0, exp: []byte{0x49, 0xc7, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=R8/offset=0x1", inst: MOVQ, c: 0, baseReg: RegR8, offset: 0x1, exp: []byte{0x49, 0xc7, 0x40, 0x1, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=R8/offset=0x1", inst: MOVQ, c: 1, baseReg: RegR8, offset: 0x1, exp: []byte{0x49, 0xc7, 0x40, 0x1, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=R8/offset=0x1", inst: MOVQ, c: -1, baseReg: RegR8, offset: 0x1, exp: []byte{0x49, 0xc7, 0x40, 0x1, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=R8/offset=0x1", inst: MOVQ, c: 100, baseReg: RegR8, offset: 0x1, exp: []byte{0x49, 0xc7, 0x40, 0x1, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=R8/offset=0x1", inst: MOVQ, c: -100, baseReg: RegR8, offset: 0x1, exp: []byte{0x49, 0xc7, 0x40, 0x1, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=R8/offset=0x1", inst: MOVQ, c: 127, baseReg: RegR8, offset: 0x1, exp: []byte{0x49, 0xc7, 0x40, 0x1, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=R8/offset=0x1", inst: MOVQ, c: -128, baseReg: RegR8, offset: 0x1, exp: []byte{0x49, 0xc7, 0x40, 0x1, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=R8/offset=0x1", inst: MOVQ, c: 32767, baseReg: RegR8, offset: 0x1, exp: []byte{0x49, 0xc7, 0x40, 0x1, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=R8/offset=0x1", inst: MOVQ, c: -32768, baseReg: RegR8, offset: 0x1, exp: []byte{0x49, 0xc7, 0x40, 0x1, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=R8/offset=0x1", inst: MOVQ, c: 1048576, baseReg: RegR8, offset: 0x1, exp: []byte{0x49, 0xc7, 0x40, 0x1, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=R8/offset=0x1", inst: MOVQ, c: -1048576, baseReg: RegR8, offset: 0x1, exp: []byte{0x49, 0xc7, 0x40, 0x1, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=R8/offset=0x1", inst: MOVQ, c: 2147483647, baseReg: RegR8, offset: 0x1, exp: []byte{0x49, 0xc7, 0x40, 0x1, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=R8/offset=0x1", inst: MOVQ, c: -2147483648, baseReg: RegR8, offset: 0x1, exp: []byte{0x49, 0xc7, 0x40, 0x1, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=R8/offset=-0x1", inst: MOVQ, c: 0, baseReg: RegR8, offset: -0x1, exp: []byte{0x49, 0xc7, 0x40, 0xff, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=R8/offset=-0x1", inst: MOVQ, c: 1, baseReg: RegR8, offset: -0x1, exp: []byte{0x49, 0xc7, 0x40, 0xff, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=R8/offset=-0x1", inst: MOVQ, c: -1, baseReg: RegR8, offset: -0x1, exp: []byte{0x49, 0xc7, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=R8/offset=-0x1", inst: MOVQ, c: 100, baseReg: RegR8, offset: -0x1, exp: []byte{0x49, 0xc7, 0x40, 0xff, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=R8/offset=-0x1", inst: MOVQ, c: -100, baseReg: RegR8, offset: -0x1, exp: []byte{0x49, 0xc7, 0x40, 0xff, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=R8/offset=-0x1", inst: MOVQ, c: 127, baseReg: RegR8, offset: -0x1, exp: []byte{0x49, 0xc7, 0x40, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=R8/offset=-0x1", inst: MOVQ, c: -128, baseReg: RegR8, offset: -0x1, exp: []byte{0x49, 0xc7, 0x40, 0xff, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=R8/offset=-0x1", inst: MOVQ, c: 32767, baseReg: RegR8, offset: -0x1, exp: []byte{0x49, 0xc7, 0x40, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=R8/offset=-0x1", inst: MOVQ, c: -32768, baseReg: RegR8, offset: -0x1, exp: []byte{0x49, 0xc7, 0x40, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=R8/offset=-0x1", inst: MOVQ, c: 1048576, baseReg: RegR8, offset: -0x1, exp: []byte{0x49, 0xc7, 0x40, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=R8/offset=-0x1", inst: MOVQ, c: -1048576, baseReg: RegR8, offset: -0x1, exp: []byte{0x49, 0xc7, 0x40, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=R8/offset=-0x1", inst: MOVQ, c: 2147483647, baseReg: RegR8, offset: -0x1, exp: []byte{0x49, 0xc7, 0x40, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=R8/offset=-0x1", inst: MOVQ, c: -2147483648, baseReg: RegR8, offset: -0x1, exp: []byte{0x49, 0xc7, 0x40, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=R8/offset=0x4db", inst: MOVQ, c: 0, baseReg: RegR8, offset: 0x4db, exp: []byte{0x49, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=R8/offset=0x4db", inst: MOVQ, c: 1, baseReg: RegR8, offset: 0x4db, exp: []byte{0x49, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=R8/offset=0x4db", inst: MOVQ, c: -1, baseReg: RegR8, offset: 0x4db, exp: []byte{0x49, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=R8/offset=0x4db", inst: MOVQ, c: 100, baseReg: RegR8, offset: 0x4db, exp: []byte{0x49, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=R8/offset=0x4db", inst: MOVQ, c: -100, baseReg: RegR8, offset: 0x4db, exp: []byte{0x49, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=R8/offset=0x4db", inst: MOVQ, c: 127, baseReg: RegR8, offset: 0x4db, exp: []byte{0x49, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=R8/offset=0x4db", inst: MOVQ, c: -128, baseReg: RegR8, offset: 0x4db, exp: []byte{0x49, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=R8/offset=0x4db", inst: MOVQ, c: 32767, baseReg: RegR8, offset: 0x4db, exp: []byte{0x49, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=R8/offset=0x4db", inst: MOVQ, c: -32768, baseReg: RegR8, offset: 0x4db, exp: []byte{0x49, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=R8/offset=0x4db", inst: MOVQ, c: 1048576, baseReg: RegR8, offset: 0x4db, exp: []byte{0x49, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=R8/offset=0x4db", inst: MOVQ, c: -1048576, baseReg: RegR8, offset: 0x4db, exp: []byte{0x49, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=R8/offset=0x4db", inst: MOVQ, c: 2147483647, baseReg: RegR8, offset: 0x4db, exp: []byte{0x49, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=R8/offset=0x4db", inst: MOVQ, c: -2147483648, baseReg: RegR8, offset: 0x4db, exp: []byte{0x49, 0xc7, 0x80, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=R8/offset=-0x4d2", inst: MOVQ, c: 0, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x49, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=R8/offset=-0x4d2", inst: MOVQ, c: 1, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x49, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=R8/offset=-0x4d2", inst: MOVQ, c: -1, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x49, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=R8/offset=-0x4d2", inst: MOVQ, c: 100, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x49, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=R8/offset=-0x4d2", inst: MOVQ, c: -100, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x49, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=R8/offset=-0x4d2", inst: MOVQ, c: 127, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x49, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=R8/offset=-0x4d2", inst: MOVQ, c: -128, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x49, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=R8/offset=-0x4d2", inst: MOVQ, c: 32767, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x49, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=R8/offset=-0x4d2", inst: MOVQ, c: -32768, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x49, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=R8/offset=-0x4d2", inst: MOVQ, c: 1048576, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x49, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=R8/offset=-0x4d2", inst: MOVQ, c: -1048576, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x49, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=R8/offset=-0x4d2", inst: MOVQ, c: 2147483647, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x49, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=R8/offset=-0x4d2", inst: MOVQ, c: -2147483648, baseReg: RegR8, offset: -0x4d2, exp: []byte{0x49, 0xc7, 0x80, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=R8/offset=0x7fffffff", inst: MOVQ, c: 0, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=R8/offset=0x7fffffff", inst: MOVQ, c: 1, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=R8/offset=0x7fffffff", inst: MOVQ, c: -1, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=R8/offset=0x7fffffff", inst: MOVQ, c: 100, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=R8/offset=0x7fffffff", inst: MOVQ, c: -100, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=R8/offset=0x7fffffff", inst: MOVQ, c: 127, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=R8/offset=0x7fffffff", inst: MOVQ, c: -128, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=R8/offset=0x7fffffff", inst: MOVQ, c: 32767, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=R8/offset=0x7fffffff", inst: MOVQ, c: -32768, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=R8/offset=0x7fffffff", inst: MOVQ, c: 1048576, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=R8/offset=0x7fffffff", inst: MOVQ, c: -1048576, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=R8/offset=0x7fffffff", inst: MOVQ, c: 2147483647, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=R8/offset=0x7fffffff", inst: MOVQ, c: -2147483648, baseReg: RegR8, offset: 0x7fffffff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=R8/offset=-0x80000000", inst: MOVQ, c: 0, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=R8/offset=-0x80000000", inst: MOVQ, c: 1, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=R8/offset=-0x80000000", inst: MOVQ, c: -1, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=R8/offset=-0x80000000", inst: MOVQ, c: 100, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=R8/offset=-0x80000000", inst: MOVQ, c: -100, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=R8/offset=-0x80000000", inst: MOVQ, c: 127, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=R8/offset=-0x80000000", inst: MOVQ, c: -128, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=R8/offset=-0x80000000", inst: MOVQ, c: 32767, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=R8/offset=-0x80000000", inst: MOVQ, c: -32768, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=R8/offset=-0x80000000", inst: MOVQ, c: 1048576, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=R8/offset=-0x80000000", inst: MOVQ, c: -1048576, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=R8/offset=-0x80000000", inst: MOVQ, c: 2147483647, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=R8/offset=-0x80000000", inst: MOVQ, c: -2147483648, baseReg: RegR8, offset: -0x80000000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=R8/offset=0x7fff", inst: MOVQ, c: 0, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=R8/offset=0x7fff", inst: MOVQ, c: 1, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=R8/offset=0x7fff", inst: MOVQ, c: -1, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=R8/offset=0x7fff", inst: MOVQ, c: 100, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=R8/offset=0x7fff", inst: MOVQ, c: -100, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=R8/offset=0x7fff", inst: MOVQ, c: 127, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=R8/offset=0x7fff", inst: MOVQ, c: -128, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=R8/offset=0x7fff", inst: MOVQ, c: 32767, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=R8/offset=0x7fff", inst: MOVQ, c: -32768, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=R8/offset=0x7fff", inst: MOVQ, c: 1048576, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=R8/offset=0x7fff", inst: MOVQ, c: -1048576, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=R8/offset=0x7fff", inst: MOVQ, c: 2147483647, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=R8/offset=0x7fff", inst: MOVQ, c: -2147483648, baseReg: RegR8, offset: 0x7fff, exp: []byte{0x49, 0xc7, 0x80, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "MOVQ/c=0/base=R8/offset=-0x8000", inst: MOVQ, c: 0, baseReg: RegR8, offset: -0x8000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=1/base=R8/offset=-0x8000", inst: MOVQ, c: 1, baseReg: RegR8, offset: -0x8000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x1, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-1/base=R8/offset=-0x8000", inst: MOVQ, c: -1, baseReg: RegR8, offset: -0x8000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=100/base=R8/offset=-0x8000", inst: MOVQ, c: 100, baseReg: RegR8, offset: -0x8000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x64, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-100/base=R8/offset=-0x8000", inst: MOVQ, c: -100, baseReg: RegR8, offset: -0x8000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x9c, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=127/base=R8/offset=-0x8000", inst: MOVQ, c: 127, baseReg: RegR8, offset: -0x8000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-128/base=R8/offset=-0x8000", inst: MOVQ, c: -128, baseReg: RegR8, offset: -0x8000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "MOVQ/c=32767/base=R8/offset=-0x8000", inst: MOVQ, c: 32767, baseReg: RegR8, offset: -0x8000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "MOVQ/c=-32768/base=R8/offset=-0x8000", inst: MOVQ, c: -32768, baseReg: RegR8, offset: -0x8000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "MOVQ/c=1048576/base=R8/offset=-0x8000", inst: MOVQ, c: 1048576, baseReg: RegR8, offset: -0x8000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "MOVQ/c=-1048576/base=R8/offset=-0x8000", inst: MOVQ, c: -1048576, baseReg: RegR8, offset: -0x8000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "MOVQ/c=2147483647/base=R8/offset=-0x8000", inst: MOVQ, c: 2147483647, baseReg: RegR8, offset: -0x8000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "MOVQ/c=-2147483648/base=R8/offset=-0x8000", inst: MOVQ, c: -2147483648, baseReg: RegR8, offset: -0x8000, exp: []byte{0x49, 0xc7, 0x80, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
a := NewAssembler()
|
|
err := a.encodeConstToMemory(&nodeImpl{
|
|
instruction: tc.inst,
|
|
types: operandTypesConstToMemory, srcConst: tc.c, dstReg: tc.baseReg, dstConst: int64(tc.offset),
|
|
})
|
|
require.NoError(t, err)
|
|
}
|
|
}
|
|
|
|
func TestAssemblerImpl_EncodeMemoryToConst(t *testing.T) {
|
|
t.Run("error", func(t *testing.T) {
|
|
tests := []struct {
|
|
n *nodeImpl
|
|
expErr string
|
|
}{
|
|
{
|
|
n: &nodeImpl{instruction: ADDL, types: operandTypesMemoryToConst, dstReg: RegAX},
|
|
expErr: "ADDL is unsupported for from:memory,to:const type",
|
|
},
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
a := NewAssembler()
|
|
err := a.encodeMemoryToConst(tc.n)
|
|
require.EqualError(t, err, tc.expErr)
|
|
}
|
|
})
|
|
|
|
tests := []struct {
|
|
name string
|
|
inst asm.Instruction
|
|
baseReg asm.Register
|
|
offset, c int64
|
|
exp []byte
|
|
}{
|
|
{name: "CMPL/base=AX/offset=0x0/c=0", inst: CMPL, baseReg: RegAX, offset: 0x0, c: 0, exp: []byte{0x83, 0x38, 0x0}},
|
|
{name: "CMPL/base=AX/offset=0x0/c=1", inst: CMPL, baseReg: RegAX, offset: 0x0, c: 1, exp: []byte{0x83, 0x38, 0x1}},
|
|
{name: "CMPL/base=AX/offset=0x0/c=-1", inst: CMPL, baseReg: RegAX, offset: 0x0, c: -1, exp: []byte{0x83, 0x38, 0xff}},
|
|
{name: "CMPL/base=AX/offset=0x0/c=100", inst: CMPL, baseReg: RegAX, offset: 0x0, c: 100, exp: []byte{0x83, 0x38, 0x64}},
|
|
{name: "CMPL/base=AX/offset=0x0/c=-100", inst: CMPL, baseReg: RegAX, offset: 0x0, c: -100, exp: []byte{0x83, 0x38, 0x9c}},
|
|
{name: "CMPL/base=AX/offset=0x0/c=127", inst: CMPL, baseReg: RegAX, offset: 0x0, c: 127, exp: []byte{0x83, 0x38, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=0x0/c=-128", inst: CMPL, baseReg: RegAX, offset: 0x0, c: -128, exp: []byte{0x83, 0x38, 0x80}},
|
|
{name: "CMPL/base=AX/offset=0x0/c=32767", inst: CMPL, baseReg: RegAX, offset: 0x0, c: 32767, exp: []byte{0x81, 0x38, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=AX/offset=0x0/c=-32768", inst: CMPL, baseReg: RegAX, offset: 0x0, c: -32768, exp: []byte{0x81, 0x38, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=AX/offset=0x0/c=1048576", inst: CMPL, baseReg: RegAX, offset: 0x0, c: 1048576, exp: []byte{0x81, 0x38, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=AX/offset=0x0/c=-1048576", inst: CMPL, baseReg: RegAX, offset: 0x0, c: -1048576, exp: []byte{0x81, 0x38, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=AX/offset=0x0/c=2147483647", inst: CMPL, baseReg: RegAX, offset: 0x0, c: 2147483647, exp: []byte{0x81, 0x38, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=0x0/c=-2147483648", inst: CMPL, baseReg: RegAX, offset: 0x0, c: -2147483648, exp: []byte{0x81, 0x38, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=AX/offset=0x1/c=0", inst: CMPL, baseReg: RegAX, offset: 0x1, c: 0, exp: []byte{0x83, 0x78, 0x1, 0x0}},
|
|
{name: "CMPL/base=AX/offset=0x1/c=1", inst: CMPL, baseReg: RegAX, offset: 0x1, c: 1, exp: []byte{0x83, 0x78, 0x1, 0x1}},
|
|
{name: "CMPL/base=AX/offset=0x1/c=-1", inst: CMPL, baseReg: RegAX, offset: 0x1, c: -1, exp: []byte{0x83, 0x78, 0x1, 0xff}},
|
|
{name: "CMPL/base=AX/offset=0x1/c=100", inst: CMPL, baseReg: RegAX, offset: 0x1, c: 100, exp: []byte{0x83, 0x78, 0x1, 0x64}},
|
|
{name: "CMPL/base=AX/offset=0x1/c=-100", inst: CMPL, baseReg: RegAX, offset: 0x1, c: -100, exp: []byte{0x83, 0x78, 0x1, 0x9c}},
|
|
{name: "CMPL/base=AX/offset=0x1/c=127", inst: CMPL, baseReg: RegAX, offset: 0x1, c: 127, exp: []byte{0x83, 0x78, 0x1, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=0x1/c=-128", inst: CMPL, baseReg: RegAX, offset: 0x1, c: -128, exp: []byte{0x83, 0x78, 0x1, 0x80}},
|
|
{name: "CMPL/base=AX/offset=0x1/c=32767", inst: CMPL, baseReg: RegAX, offset: 0x1, c: 32767, exp: []byte{0x81, 0x78, 0x1, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=AX/offset=0x1/c=-32768", inst: CMPL, baseReg: RegAX, offset: 0x1, c: -32768, exp: []byte{0x81, 0x78, 0x1, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=AX/offset=0x1/c=1048576", inst: CMPL, baseReg: RegAX, offset: 0x1, c: 1048576, exp: []byte{0x81, 0x78, 0x1, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=AX/offset=0x1/c=-1048576", inst: CMPL, baseReg: RegAX, offset: 0x1, c: -1048576, exp: []byte{0x81, 0x78, 0x1, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=AX/offset=0x1/c=2147483647", inst: CMPL, baseReg: RegAX, offset: 0x1, c: 2147483647, exp: []byte{0x81, 0x78, 0x1, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=0x1/c=-2147483648", inst: CMPL, baseReg: RegAX, offset: 0x1, c: -2147483648, exp: []byte{0x81, 0x78, 0x1, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=AX/offset=-0x1/c=0", inst: CMPL, baseReg: RegAX, offset: -0x1, c: 0, exp: []byte{0x83, 0x78, 0xff, 0x0}},
|
|
{name: "CMPL/base=AX/offset=-0x1/c=1", inst: CMPL, baseReg: RegAX, offset: -0x1, c: 1, exp: []byte{0x83, 0x78, 0xff, 0x1}},
|
|
{name: "CMPL/base=AX/offset=-0x1/c=-1", inst: CMPL, baseReg: RegAX, offset: -0x1, c: -1, exp: []byte{0x83, 0x78, 0xff, 0xff}},
|
|
{name: "CMPL/base=AX/offset=-0x1/c=100", inst: CMPL, baseReg: RegAX, offset: -0x1, c: 100, exp: []byte{0x83, 0x78, 0xff, 0x64}},
|
|
{name: "CMPL/base=AX/offset=-0x1/c=-100", inst: CMPL, baseReg: RegAX, offset: -0x1, c: -100, exp: []byte{0x83, 0x78, 0xff, 0x9c}},
|
|
{name: "CMPL/base=AX/offset=-0x1/c=127", inst: CMPL, baseReg: RegAX, offset: -0x1, c: 127, exp: []byte{0x83, 0x78, 0xff, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=-0x1/c=-128", inst: CMPL, baseReg: RegAX, offset: -0x1, c: -128, exp: []byte{0x83, 0x78, 0xff, 0x80}},
|
|
{name: "CMPL/base=AX/offset=-0x1/c=32767", inst: CMPL, baseReg: RegAX, offset: -0x1, c: 32767, exp: []byte{0x81, 0x78, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=AX/offset=-0x1/c=-32768", inst: CMPL, baseReg: RegAX, offset: -0x1, c: -32768, exp: []byte{0x81, 0x78, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=AX/offset=-0x1/c=1048576", inst: CMPL, baseReg: RegAX, offset: -0x1, c: 1048576, exp: []byte{0x81, 0x78, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=AX/offset=-0x1/c=-1048576", inst: CMPL, baseReg: RegAX, offset: -0x1, c: -1048576, exp: []byte{0x81, 0x78, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=AX/offset=-0x1/c=2147483647", inst: CMPL, baseReg: RegAX, offset: -0x1, c: 2147483647, exp: []byte{0x81, 0x78, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=-0x1/c=-2147483648", inst: CMPL, baseReg: RegAX, offset: -0x1, c: -2147483648, exp: []byte{0x81, 0x78, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=AX/offset=0x4db/c=0", inst: CMPL, baseReg: RegAX, offset: 0x4db, c: 0, exp: []byte{0x83, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x0}},
|
|
{name: "CMPL/base=AX/offset=0x4db/c=1", inst: CMPL, baseReg: RegAX, offset: 0x4db, c: 1, exp: []byte{0x83, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x1}},
|
|
{name: "CMPL/base=AX/offset=0x4db/c=-1", inst: CMPL, baseReg: RegAX, offset: 0x4db, c: -1, exp: []byte{0x83, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0xff}},
|
|
{name: "CMPL/base=AX/offset=0x4db/c=100", inst: CMPL, baseReg: RegAX, offset: 0x4db, c: 100, exp: []byte{0x83, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x64}},
|
|
{name: "CMPL/base=AX/offset=0x4db/c=-100", inst: CMPL, baseReg: RegAX, offset: 0x4db, c: -100, exp: []byte{0x83, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x9c}},
|
|
{name: "CMPL/base=AX/offset=0x4db/c=127", inst: CMPL, baseReg: RegAX, offset: 0x4db, c: 127, exp: []byte{0x83, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=0x4db/c=-128", inst: CMPL, baseReg: RegAX, offset: 0x4db, c: -128, exp: []byte{0x83, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=AX/offset=0x4db/c=32767", inst: CMPL, baseReg: RegAX, offset: 0x4db, c: 32767, exp: []byte{0x81, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=AX/offset=0x4db/c=-32768", inst: CMPL, baseReg: RegAX, offset: 0x4db, c: -32768, exp: []byte{0x81, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=AX/offset=0x4db/c=1048576", inst: CMPL, baseReg: RegAX, offset: 0x4db, c: 1048576, exp: []byte{0x81, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=AX/offset=0x4db/c=-1048576", inst: CMPL, baseReg: RegAX, offset: 0x4db, c: -1048576, exp: []byte{0x81, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=AX/offset=0x4db/c=2147483647", inst: CMPL, baseReg: RegAX, offset: 0x4db, c: 2147483647, exp: []byte{0x81, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=0x4db/c=-2147483648", inst: CMPL, baseReg: RegAX, offset: 0x4db, c: -2147483648, exp: []byte{0x81, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=AX/offset=-0x4d2/c=0", inst: CMPL, baseReg: RegAX, offset: -0x4d2, c: 0, exp: []byte{0x83, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x0}},
|
|
{name: "CMPL/base=AX/offset=-0x4d2/c=1", inst: CMPL, baseReg: RegAX, offset: -0x4d2, c: 1, exp: []byte{0x83, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x1}},
|
|
{name: "CMPL/base=AX/offset=-0x4d2/c=-1", inst: CMPL, baseReg: RegAX, offset: -0x4d2, c: -1, exp: []byte{0x83, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0xff}},
|
|
{name: "CMPL/base=AX/offset=-0x4d2/c=100", inst: CMPL, baseReg: RegAX, offset: -0x4d2, c: 100, exp: []byte{0x83, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x64}},
|
|
{name: "CMPL/base=AX/offset=-0x4d2/c=-100", inst: CMPL, baseReg: RegAX, offset: -0x4d2, c: -100, exp: []byte{0x83, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x9c}},
|
|
{name: "CMPL/base=AX/offset=-0x4d2/c=127", inst: CMPL, baseReg: RegAX, offset: -0x4d2, c: 127, exp: []byte{0x83, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=-0x4d2/c=-128", inst: CMPL, baseReg: RegAX, offset: -0x4d2, c: -128, exp: []byte{0x83, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x80}},
|
|
{name: "CMPL/base=AX/offset=-0x4d2/c=32767", inst: CMPL, baseReg: RegAX, offset: -0x4d2, c: 32767, exp: []byte{0x81, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=AX/offset=-0x4d2/c=-32768", inst: CMPL, baseReg: RegAX, offset: -0x4d2, c: -32768, exp: []byte{0x81, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=AX/offset=-0x4d2/c=1048576", inst: CMPL, baseReg: RegAX, offset: -0x4d2, c: 1048576, exp: []byte{0x81, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=AX/offset=-0x4d2/c=-1048576", inst: CMPL, baseReg: RegAX, offset: -0x4d2, c: -1048576, exp: []byte{0x81, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=AX/offset=-0x4d2/c=2147483647", inst: CMPL, baseReg: RegAX, offset: -0x4d2, c: 2147483647, exp: []byte{0x81, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=-0x4d2/c=-2147483648", inst: CMPL, baseReg: RegAX, offset: -0x4d2, c: -2147483648, exp: []byte{0x81, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=AX/offset=0x7fffffff/c=0", inst: CMPL, baseReg: RegAX, offset: 0x7fffffff, c: 0, exp: []byte{0x83, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x0}},
|
|
{name: "CMPL/base=AX/offset=0x7fffffff/c=1", inst: CMPL, baseReg: RegAX, offset: 0x7fffffff, c: 1, exp: []byte{0x83, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x1}},
|
|
{name: "CMPL/base=AX/offset=0x7fffffff/c=-1", inst: CMPL, baseReg: RegAX, offset: 0x7fffffff, c: -1, exp: []byte{0x83, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0xff}},
|
|
{name: "CMPL/base=AX/offset=0x7fffffff/c=100", inst: CMPL, baseReg: RegAX, offset: 0x7fffffff, c: 100, exp: []byte{0x83, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x64}},
|
|
{name: "CMPL/base=AX/offset=0x7fffffff/c=-100", inst: CMPL, baseReg: RegAX, offset: 0x7fffffff, c: -100, exp: []byte{0x83, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x9c}},
|
|
{name: "CMPL/base=AX/offset=0x7fffffff/c=127", inst: CMPL, baseReg: RegAX, offset: 0x7fffffff, c: 127, exp: []byte{0x83, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=0x7fffffff/c=-128", inst: CMPL, baseReg: RegAX, offset: 0x7fffffff, c: -128, exp: []byte{0x83, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x80}},
|
|
{name: "CMPL/base=AX/offset=0x7fffffff/c=32767", inst: CMPL, baseReg: RegAX, offset: 0x7fffffff, c: 32767, exp: []byte{0x81, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=AX/offset=0x7fffffff/c=-32768", inst: CMPL, baseReg: RegAX, offset: 0x7fffffff, c: -32768, exp: []byte{0x81, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=AX/offset=0x7fffffff/c=1048576", inst: CMPL, baseReg: RegAX, offset: 0x7fffffff, c: 1048576, exp: []byte{0x81, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=AX/offset=0x7fffffff/c=-1048576", inst: CMPL, baseReg: RegAX, offset: 0x7fffffff, c: -1048576, exp: []byte{0x81, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=AX/offset=0x7fffffff/c=2147483647", inst: CMPL, baseReg: RegAX, offset: 0x7fffffff, c: 2147483647, exp: []byte{0x81, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=0x7fffffff/c=-2147483648", inst: CMPL, baseReg: RegAX, offset: 0x7fffffff, c: -2147483648, exp: []byte{0x81, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=AX/offset=-0x80000000/c=0", inst: CMPL, baseReg: RegAX, offset: -0x80000000, c: 0, exp: []byte{0x83, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x0}},
|
|
{name: "CMPL/base=AX/offset=-0x80000000/c=1", inst: CMPL, baseReg: RegAX, offset: -0x80000000, c: 1, exp: []byte{0x83, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x1}},
|
|
{name: "CMPL/base=AX/offset=-0x80000000/c=-1", inst: CMPL, baseReg: RegAX, offset: -0x80000000, c: -1, exp: []byte{0x83, 0xb8, 0x0, 0x0, 0x0, 0x80, 0xff}},
|
|
{name: "CMPL/base=AX/offset=-0x80000000/c=100", inst: CMPL, baseReg: RegAX, offset: -0x80000000, c: 100, exp: []byte{0x83, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x64}},
|
|
{name: "CMPL/base=AX/offset=-0x80000000/c=-100", inst: CMPL, baseReg: RegAX, offset: -0x80000000, c: -100, exp: []byte{0x83, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x9c}},
|
|
{name: "CMPL/base=AX/offset=-0x80000000/c=127", inst: CMPL, baseReg: RegAX, offset: -0x80000000, c: 127, exp: []byte{0x83, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=-0x80000000/c=-128", inst: CMPL, baseReg: RegAX, offset: -0x80000000, c: -128, exp: []byte{0x83, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x80}},
|
|
{name: "CMPL/base=AX/offset=-0x80000000/c=32767", inst: CMPL, baseReg: RegAX, offset: -0x80000000, c: 32767, exp: []byte{0x81, 0xb8, 0x0, 0x0, 0x0, 0x80, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=AX/offset=-0x80000000/c=-32768", inst: CMPL, baseReg: RegAX, offset: -0x80000000, c: -32768, exp: []byte{0x81, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=AX/offset=-0x80000000/c=1048576", inst: CMPL, baseReg: RegAX, offset: -0x80000000, c: 1048576, exp: []byte{0x81, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=AX/offset=-0x80000000/c=-1048576", inst: CMPL, baseReg: RegAX, offset: -0x80000000, c: -1048576, exp: []byte{0x81, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=AX/offset=-0x80000000/c=2147483647", inst: CMPL, baseReg: RegAX, offset: -0x80000000, c: 2147483647, exp: []byte{0x81, 0xb8, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=-0x80000000/c=-2147483648", inst: CMPL, baseReg: RegAX, offset: -0x80000000, c: -2147483648, exp: []byte{0x81, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=AX/offset=0x7fff/c=0", inst: CMPL, baseReg: RegAX, offset: 0x7fff, c: 0, exp: []byte{0x83, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "CMPL/base=AX/offset=0x7fff/c=1", inst: CMPL, baseReg: RegAX, offset: 0x7fff, c: 1, exp: []byte{0x83, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x1}},
|
|
{name: "CMPL/base=AX/offset=0x7fff/c=-1", inst: CMPL, baseReg: RegAX, offset: 0x7fff, c: -1, exp: []byte{0x83, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0xff}},
|
|
{name: "CMPL/base=AX/offset=0x7fff/c=100", inst: CMPL, baseReg: RegAX, offset: 0x7fff, c: 100, exp: []byte{0x83, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x64}},
|
|
{name: "CMPL/base=AX/offset=0x7fff/c=-100", inst: CMPL, baseReg: RegAX, offset: 0x7fff, c: -100, exp: []byte{0x83, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x9c}},
|
|
{name: "CMPL/base=AX/offset=0x7fff/c=127", inst: CMPL, baseReg: RegAX, offset: 0x7fff, c: 127, exp: []byte{0x83, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=0x7fff/c=-128", inst: CMPL, baseReg: RegAX, offset: 0x7fff, c: -128, exp: []byte{0x83, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=AX/offset=0x7fff/c=32767", inst: CMPL, baseReg: RegAX, offset: 0x7fff, c: 32767, exp: []byte{0x81, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=AX/offset=0x7fff/c=-32768", inst: CMPL, baseReg: RegAX, offset: 0x7fff, c: -32768, exp: []byte{0x81, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=AX/offset=0x7fff/c=1048576", inst: CMPL, baseReg: RegAX, offset: 0x7fff, c: 1048576, exp: []byte{0x81, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=AX/offset=0x7fff/c=-1048576", inst: CMPL, baseReg: RegAX, offset: 0x7fff, c: -1048576, exp: []byte{0x81, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=AX/offset=0x7fff/c=2147483647", inst: CMPL, baseReg: RegAX, offset: 0x7fff, c: 2147483647, exp: []byte{0x81, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=0x7fff/c=-2147483648", inst: CMPL, baseReg: RegAX, offset: 0x7fff, c: -2147483648, exp: []byte{0x81, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=AX/offset=-0x8000/c=0", inst: CMPL, baseReg: RegAX, offset: -0x8000, c: 0, exp: []byte{0x83, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x0}},
|
|
{name: "CMPL/base=AX/offset=-0x8000/c=1", inst: CMPL, baseReg: RegAX, offset: -0x8000, c: 1, exp: []byte{0x83, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x1}},
|
|
{name: "CMPL/base=AX/offset=-0x8000/c=-1", inst: CMPL, baseReg: RegAX, offset: -0x8000, c: -1, exp: []byte{0x83, 0xb8, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "CMPL/base=AX/offset=-0x8000/c=100", inst: CMPL, baseReg: RegAX, offset: -0x8000, c: 100, exp: []byte{0x83, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x64}},
|
|
{name: "CMPL/base=AX/offset=-0x8000/c=-100", inst: CMPL, baseReg: RegAX, offset: -0x8000, c: -100, exp: []byte{0x83, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x9c}},
|
|
{name: "CMPL/base=AX/offset=-0x8000/c=127", inst: CMPL, baseReg: RegAX, offset: -0x8000, c: 127, exp: []byte{0x83, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=-0x8000/c=-128", inst: CMPL, baseReg: RegAX, offset: -0x8000, c: -128, exp: []byte{0x83, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x80}},
|
|
{name: "CMPL/base=AX/offset=-0x8000/c=32767", inst: CMPL, baseReg: RegAX, offset: -0x8000, c: 32767, exp: []byte{0x81, 0xb8, 0x0, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=AX/offset=-0x8000/c=-32768", inst: CMPL, baseReg: RegAX, offset: -0x8000, c: -32768, exp: []byte{0x81, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=AX/offset=-0x8000/c=1048576", inst: CMPL, baseReg: RegAX, offset: -0x8000, c: 1048576, exp: []byte{0x81, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=AX/offset=-0x8000/c=-1048576", inst: CMPL, baseReg: RegAX, offset: -0x8000, c: -1048576, exp: []byte{0x81, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=AX/offset=-0x8000/c=2147483647", inst: CMPL, baseReg: RegAX, offset: -0x8000, c: 2147483647, exp: []byte{0x81, 0xb8, 0x0, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=AX/offset=-0x8000/c=-2147483648", inst: CMPL, baseReg: RegAX, offset: -0x8000, c: -2147483648, exp: []byte{0x81, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=R8/offset=0x0/c=0", inst: CMPL, baseReg: RegR8, offset: 0x0, c: 0, exp: []byte{0x41, 0x83, 0x38, 0x0}},
|
|
{name: "CMPL/base=R8/offset=0x0/c=1", inst: CMPL, baseReg: RegR8, offset: 0x0, c: 1, exp: []byte{0x41, 0x83, 0x38, 0x1}},
|
|
{name: "CMPL/base=R8/offset=0x0/c=-1", inst: CMPL, baseReg: RegR8, offset: 0x0, c: -1, exp: []byte{0x41, 0x83, 0x38, 0xff}},
|
|
{name: "CMPL/base=R8/offset=0x0/c=100", inst: CMPL, baseReg: RegR8, offset: 0x0, c: 100, exp: []byte{0x41, 0x83, 0x38, 0x64}},
|
|
{name: "CMPL/base=R8/offset=0x0/c=-100", inst: CMPL, baseReg: RegR8, offset: 0x0, c: -100, exp: []byte{0x41, 0x83, 0x38, 0x9c}},
|
|
{name: "CMPL/base=R8/offset=0x0/c=127", inst: CMPL, baseReg: RegR8, offset: 0x0, c: 127, exp: []byte{0x41, 0x83, 0x38, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=0x0/c=-128", inst: CMPL, baseReg: RegR8, offset: 0x0, c: -128, exp: []byte{0x41, 0x83, 0x38, 0x80}},
|
|
{name: "CMPL/base=R8/offset=0x0/c=32767", inst: CMPL, baseReg: RegR8, offset: 0x0, c: 32767, exp: []byte{0x41, 0x81, 0x38, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=R8/offset=0x0/c=-32768", inst: CMPL, baseReg: RegR8, offset: 0x0, c: -32768, exp: []byte{0x41, 0x81, 0x38, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=R8/offset=0x0/c=1048576", inst: CMPL, baseReg: RegR8, offset: 0x0, c: 1048576, exp: []byte{0x41, 0x81, 0x38, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=R8/offset=0x0/c=-1048576", inst: CMPL, baseReg: RegR8, offset: 0x0, c: -1048576, exp: []byte{0x41, 0x81, 0x38, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=R8/offset=0x0/c=2147483647", inst: CMPL, baseReg: RegR8, offset: 0x0, c: 2147483647, exp: []byte{0x41, 0x81, 0x38, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=0x0/c=-2147483648", inst: CMPL, baseReg: RegR8, offset: 0x0, c: -2147483648, exp: []byte{0x41, 0x81, 0x38, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=R8/offset=0x1/c=0", inst: CMPL, baseReg: RegR8, offset: 0x1, c: 0, exp: []byte{0x41, 0x83, 0x78, 0x1, 0x0}},
|
|
{name: "CMPL/base=R8/offset=0x1/c=1", inst: CMPL, baseReg: RegR8, offset: 0x1, c: 1, exp: []byte{0x41, 0x83, 0x78, 0x1, 0x1}},
|
|
{name: "CMPL/base=R8/offset=0x1/c=-1", inst: CMPL, baseReg: RegR8, offset: 0x1, c: -1, exp: []byte{0x41, 0x83, 0x78, 0x1, 0xff}},
|
|
{name: "CMPL/base=R8/offset=0x1/c=100", inst: CMPL, baseReg: RegR8, offset: 0x1, c: 100, exp: []byte{0x41, 0x83, 0x78, 0x1, 0x64}},
|
|
{name: "CMPL/base=R8/offset=0x1/c=-100", inst: CMPL, baseReg: RegR8, offset: 0x1, c: -100, exp: []byte{0x41, 0x83, 0x78, 0x1, 0x9c}},
|
|
{name: "CMPL/base=R8/offset=0x1/c=127", inst: CMPL, baseReg: RegR8, offset: 0x1, c: 127, exp: []byte{0x41, 0x83, 0x78, 0x1, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=0x1/c=-128", inst: CMPL, baseReg: RegR8, offset: 0x1, c: -128, exp: []byte{0x41, 0x83, 0x78, 0x1, 0x80}},
|
|
{name: "CMPL/base=R8/offset=0x1/c=32767", inst: CMPL, baseReg: RegR8, offset: 0x1, c: 32767, exp: []byte{0x41, 0x81, 0x78, 0x1, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=R8/offset=0x1/c=-32768", inst: CMPL, baseReg: RegR8, offset: 0x1, c: -32768, exp: []byte{0x41, 0x81, 0x78, 0x1, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=R8/offset=0x1/c=1048576", inst: CMPL, baseReg: RegR8, offset: 0x1, c: 1048576, exp: []byte{0x41, 0x81, 0x78, 0x1, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=R8/offset=0x1/c=-1048576", inst: CMPL, baseReg: RegR8, offset: 0x1, c: -1048576, exp: []byte{0x41, 0x81, 0x78, 0x1, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=R8/offset=0x1/c=2147483647", inst: CMPL, baseReg: RegR8, offset: 0x1, c: 2147483647, exp: []byte{0x41, 0x81, 0x78, 0x1, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=0x1/c=-2147483648", inst: CMPL, baseReg: RegR8, offset: 0x1, c: -2147483648, exp: []byte{0x41, 0x81, 0x78, 0x1, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=R8/offset=-0x1/c=0", inst: CMPL, baseReg: RegR8, offset: -0x1, c: 0, exp: []byte{0x41, 0x83, 0x78, 0xff, 0x0}},
|
|
{name: "CMPL/base=R8/offset=-0x1/c=1", inst: CMPL, baseReg: RegR8, offset: -0x1, c: 1, exp: []byte{0x41, 0x83, 0x78, 0xff, 0x1}},
|
|
{name: "CMPL/base=R8/offset=-0x1/c=-1", inst: CMPL, baseReg: RegR8, offset: -0x1, c: -1, exp: []byte{0x41, 0x83, 0x78, 0xff, 0xff}},
|
|
{name: "CMPL/base=R8/offset=-0x1/c=100", inst: CMPL, baseReg: RegR8, offset: -0x1, c: 100, exp: []byte{0x41, 0x83, 0x78, 0xff, 0x64}},
|
|
{name: "CMPL/base=R8/offset=-0x1/c=-100", inst: CMPL, baseReg: RegR8, offset: -0x1, c: -100, exp: []byte{0x41, 0x83, 0x78, 0xff, 0x9c}},
|
|
{name: "CMPL/base=R8/offset=-0x1/c=127", inst: CMPL, baseReg: RegR8, offset: -0x1, c: 127, exp: []byte{0x41, 0x83, 0x78, 0xff, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=-0x1/c=-128", inst: CMPL, baseReg: RegR8, offset: -0x1, c: -128, exp: []byte{0x41, 0x83, 0x78, 0xff, 0x80}},
|
|
{name: "CMPL/base=R8/offset=-0x1/c=32767", inst: CMPL, baseReg: RegR8, offset: -0x1, c: 32767, exp: []byte{0x41, 0x81, 0x78, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=R8/offset=-0x1/c=-32768", inst: CMPL, baseReg: RegR8, offset: -0x1, c: -32768, exp: []byte{0x41, 0x81, 0x78, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=R8/offset=-0x1/c=1048576", inst: CMPL, baseReg: RegR8, offset: -0x1, c: 1048576, exp: []byte{0x41, 0x81, 0x78, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=R8/offset=-0x1/c=-1048576", inst: CMPL, baseReg: RegR8, offset: -0x1, c: -1048576, exp: []byte{0x41, 0x81, 0x78, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=R8/offset=-0x1/c=2147483647", inst: CMPL, baseReg: RegR8, offset: -0x1, c: 2147483647, exp: []byte{0x41, 0x81, 0x78, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=-0x1/c=-2147483648", inst: CMPL, baseReg: RegR8, offset: -0x1, c: -2147483648, exp: []byte{0x41, 0x81, 0x78, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=R8/offset=0x4db/c=0", inst: CMPL, baseReg: RegR8, offset: 0x4db, c: 0, exp: []byte{0x41, 0x83, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x0}},
|
|
{name: "CMPL/base=R8/offset=0x4db/c=1", inst: CMPL, baseReg: RegR8, offset: 0x4db, c: 1, exp: []byte{0x41, 0x83, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x1}},
|
|
{name: "CMPL/base=R8/offset=0x4db/c=-1", inst: CMPL, baseReg: RegR8, offset: 0x4db, c: -1, exp: []byte{0x41, 0x83, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0xff}},
|
|
{name: "CMPL/base=R8/offset=0x4db/c=100", inst: CMPL, baseReg: RegR8, offset: 0x4db, c: 100, exp: []byte{0x41, 0x83, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x64}},
|
|
{name: "CMPL/base=R8/offset=0x4db/c=-100", inst: CMPL, baseReg: RegR8, offset: 0x4db, c: -100, exp: []byte{0x41, 0x83, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x9c}},
|
|
{name: "CMPL/base=R8/offset=0x4db/c=127", inst: CMPL, baseReg: RegR8, offset: 0x4db, c: 127, exp: []byte{0x41, 0x83, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=0x4db/c=-128", inst: CMPL, baseReg: RegR8, offset: 0x4db, c: -128, exp: []byte{0x41, 0x83, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=R8/offset=0x4db/c=32767", inst: CMPL, baseReg: RegR8, offset: 0x4db, c: 32767, exp: []byte{0x41, 0x81, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=R8/offset=0x4db/c=-32768", inst: CMPL, baseReg: RegR8, offset: 0x4db, c: -32768, exp: []byte{0x41, 0x81, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=R8/offset=0x4db/c=1048576", inst: CMPL, baseReg: RegR8, offset: 0x4db, c: 1048576, exp: []byte{0x41, 0x81, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=R8/offset=0x4db/c=-1048576", inst: CMPL, baseReg: RegR8, offset: 0x4db, c: -1048576, exp: []byte{0x41, 0x81, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=R8/offset=0x4db/c=2147483647", inst: CMPL, baseReg: RegR8, offset: 0x4db, c: 2147483647, exp: []byte{0x41, 0x81, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=0x4db/c=-2147483648", inst: CMPL, baseReg: RegR8, offset: 0x4db, c: -2147483648, exp: []byte{0x41, 0x81, 0xb8, 0xdb, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=R8/offset=-0x4d2/c=0", inst: CMPL, baseReg: RegR8, offset: -0x4d2, c: 0, exp: []byte{0x41, 0x83, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x0}},
|
|
{name: "CMPL/base=R8/offset=-0x4d2/c=1", inst: CMPL, baseReg: RegR8, offset: -0x4d2, c: 1, exp: []byte{0x41, 0x83, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x1}},
|
|
{name: "CMPL/base=R8/offset=-0x4d2/c=-1", inst: CMPL, baseReg: RegR8, offset: -0x4d2, c: -1, exp: []byte{0x41, 0x83, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0xff}},
|
|
{name: "CMPL/base=R8/offset=-0x4d2/c=100", inst: CMPL, baseReg: RegR8, offset: -0x4d2, c: 100, exp: []byte{0x41, 0x83, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x64}},
|
|
{name: "CMPL/base=R8/offset=-0x4d2/c=-100", inst: CMPL, baseReg: RegR8, offset: -0x4d2, c: -100, exp: []byte{0x41, 0x83, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x9c}},
|
|
{name: "CMPL/base=R8/offset=-0x4d2/c=127", inst: CMPL, baseReg: RegR8, offset: -0x4d2, c: 127, exp: []byte{0x41, 0x83, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=-0x4d2/c=-128", inst: CMPL, baseReg: RegR8, offset: -0x4d2, c: -128, exp: []byte{0x41, 0x83, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x80}},
|
|
{name: "CMPL/base=R8/offset=-0x4d2/c=32767", inst: CMPL, baseReg: RegR8, offset: -0x4d2, c: 32767, exp: []byte{0x41, 0x81, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=R8/offset=-0x4d2/c=-32768", inst: CMPL, baseReg: RegR8, offset: -0x4d2, c: -32768, exp: []byte{0x41, 0x81, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=R8/offset=-0x4d2/c=1048576", inst: CMPL, baseReg: RegR8, offset: -0x4d2, c: 1048576, exp: []byte{0x41, 0x81, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=R8/offset=-0x4d2/c=-1048576", inst: CMPL, baseReg: RegR8, offset: -0x4d2, c: -1048576, exp: []byte{0x41, 0x81, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=R8/offset=-0x4d2/c=2147483647", inst: CMPL, baseReg: RegR8, offset: -0x4d2, c: 2147483647, exp: []byte{0x41, 0x81, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=-0x4d2/c=-2147483648", inst: CMPL, baseReg: RegR8, offset: -0x4d2, c: -2147483648, exp: []byte{0x41, 0x81, 0xb8, 0x2e, 0xfb, 0xff, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=R8/offset=0x7fffffff/c=0", inst: CMPL, baseReg: RegR8, offset: 0x7fffffff, c: 0, exp: []byte{0x41, 0x83, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x0}},
|
|
{name: "CMPL/base=R8/offset=0x7fffffff/c=1", inst: CMPL, baseReg: RegR8, offset: 0x7fffffff, c: 1, exp: []byte{0x41, 0x83, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x1}},
|
|
{name: "CMPL/base=R8/offset=0x7fffffff/c=-1", inst: CMPL, baseReg: RegR8, offset: 0x7fffffff, c: -1, exp: []byte{0x41, 0x83, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0xff}},
|
|
{name: "CMPL/base=R8/offset=0x7fffffff/c=100", inst: CMPL, baseReg: RegR8, offset: 0x7fffffff, c: 100, exp: []byte{0x41, 0x83, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x64}},
|
|
{name: "CMPL/base=R8/offset=0x7fffffff/c=-100", inst: CMPL, baseReg: RegR8, offset: 0x7fffffff, c: -100, exp: []byte{0x41, 0x83, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x9c}},
|
|
{name: "CMPL/base=R8/offset=0x7fffffff/c=127", inst: CMPL, baseReg: RegR8, offset: 0x7fffffff, c: 127, exp: []byte{0x41, 0x83, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=0x7fffffff/c=-128", inst: CMPL, baseReg: RegR8, offset: 0x7fffffff, c: -128, exp: []byte{0x41, 0x83, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x80}},
|
|
{name: "CMPL/base=R8/offset=0x7fffffff/c=32767", inst: CMPL, baseReg: RegR8, offset: 0x7fffffff, c: 32767, exp: []byte{0x41, 0x81, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=R8/offset=0x7fffffff/c=-32768", inst: CMPL, baseReg: RegR8, offset: 0x7fffffff, c: -32768, exp: []byte{0x41, 0x81, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=R8/offset=0x7fffffff/c=1048576", inst: CMPL, baseReg: RegR8, offset: 0x7fffffff, c: 1048576, exp: []byte{0x41, 0x81, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=R8/offset=0x7fffffff/c=-1048576", inst: CMPL, baseReg: RegR8, offset: 0x7fffffff, c: -1048576, exp: []byte{0x41, 0x81, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=R8/offset=0x7fffffff/c=2147483647", inst: CMPL, baseReg: RegR8, offset: 0x7fffffff, c: 2147483647, exp: []byte{0x41, 0x81, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=0x7fffffff/c=-2147483648", inst: CMPL, baseReg: RegR8, offset: 0x7fffffff, c: -2147483648, exp: []byte{0x41, 0x81, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=R8/offset=-0x80000000/c=0", inst: CMPL, baseReg: RegR8, offset: -0x80000000, c: 0, exp: []byte{0x41, 0x83, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x0}},
|
|
{name: "CMPL/base=R8/offset=-0x80000000/c=1", inst: CMPL, baseReg: RegR8, offset: -0x80000000, c: 1, exp: []byte{0x41, 0x83, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x1}},
|
|
{name: "CMPL/base=R8/offset=-0x80000000/c=-1", inst: CMPL, baseReg: RegR8, offset: -0x80000000, c: -1, exp: []byte{0x41, 0x83, 0xb8, 0x0, 0x0, 0x0, 0x80, 0xff}},
|
|
{name: "CMPL/base=R8/offset=-0x80000000/c=100", inst: CMPL, baseReg: RegR8, offset: -0x80000000, c: 100, exp: []byte{0x41, 0x83, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x64}},
|
|
{name: "CMPL/base=R8/offset=-0x80000000/c=-100", inst: CMPL, baseReg: RegR8, offset: -0x80000000, c: -100, exp: []byte{0x41, 0x83, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x9c}},
|
|
{name: "CMPL/base=R8/offset=-0x80000000/c=127", inst: CMPL, baseReg: RegR8, offset: -0x80000000, c: 127, exp: []byte{0x41, 0x83, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=-0x80000000/c=-128", inst: CMPL, baseReg: RegR8, offset: -0x80000000, c: -128, exp: []byte{0x41, 0x83, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x80}},
|
|
{name: "CMPL/base=R8/offset=-0x80000000/c=32767", inst: CMPL, baseReg: RegR8, offset: -0x80000000, c: 32767, exp: []byte{0x41, 0x81, 0xb8, 0x0, 0x0, 0x0, 0x80, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=R8/offset=-0x80000000/c=-32768", inst: CMPL, baseReg: RegR8, offset: -0x80000000, c: -32768, exp: []byte{0x41, 0x81, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=R8/offset=-0x80000000/c=1048576", inst: CMPL, baseReg: RegR8, offset: -0x80000000, c: 1048576, exp: []byte{0x41, 0x81, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=R8/offset=-0x80000000/c=-1048576", inst: CMPL, baseReg: RegR8, offset: -0x80000000, c: -1048576, exp: []byte{0x41, 0x81, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=R8/offset=-0x80000000/c=2147483647", inst: CMPL, baseReg: RegR8, offset: -0x80000000, c: 2147483647, exp: []byte{0x41, 0x81, 0xb8, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=-0x80000000/c=-2147483648", inst: CMPL, baseReg: RegR8, offset: -0x80000000, c: -2147483648, exp: []byte{0x41, 0x81, 0xb8, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=R8/offset=0x7fff/c=0", inst: CMPL, baseReg: RegR8, offset: 0x7fff, c: 0, exp: []byte{0x41, 0x83, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x0}},
|
|
{name: "CMPL/base=R8/offset=0x7fff/c=1", inst: CMPL, baseReg: RegR8, offset: 0x7fff, c: 1, exp: []byte{0x41, 0x83, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x1}},
|
|
{name: "CMPL/base=R8/offset=0x7fff/c=-1", inst: CMPL, baseReg: RegR8, offset: 0x7fff, c: -1, exp: []byte{0x41, 0x83, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0xff}},
|
|
{name: "CMPL/base=R8/offset=0x7fff/c=100", inst: CMPL, baseReg: RegR8, offset: 0x7fff, c: 100, exp: []byte{0x41, 0x83, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x64}},
|
|
{name: "CMPL/base=R8/offset=0x7fff/c=-100", inst: CMPL, baseReg: RegR8, offset: 0x7fff, c: -100, exp: []byte{0x41, 0x83, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x9c}},
|
|
{name: "CMPL/base=R8/offset=0x7fff/c=127", inst: CMPL, baseReg: RegR8, offset: 0x7fff, c: 127, exp: []byte{0x41, 0x83, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=0x7fff/c=-128", inst: CMPL, baseReg: RegR8, offset: 0x7fff, c: -128, exp: []byte{0x41, 0x83, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=R8/offset=0x7fff/c=32767", inst: CMPL, baseReg: RegR8, offset: 0x7fff, c: 32767, exp: []byte{0x41, 0x81, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=R8/offset=0x7fff/c=-32768", inst: CMPL, baseReg: RegR8, offset: 0x7fff, c: -32768, exp: []byte{0x41, 0x81, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=R8/offset=0x7fff/c=1048576", inst: CMPL, baseReg: RegR8, offset: 0x7fff, c: 1048576, exp: []byte{0x41, 0x81, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=R8/offset=0x7fff/c=-1048576", inst: CMPL, baseReg: RegR8, offset: 0x7fff, c: -1048576, exp: []byte{0x41, 0x81, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=R8/offset=0x7fff/c=2147483647", inst: CMPL, baseReg: RegR8, offset: 0x7fff, c: 2147483647, exp: []byte{0x41, 0x81, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=0x7fff/c=-2147483648", inst: CMPL, baseReg: RegR8, offset: 0x7fff, c: -2147483648, exp: []byte{0x41, 0x81, 0xb8, 0xff, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80}},
|
|
{name: "CMPL/base=R8/offset=-0x8000/c=0", inst: CMPL, baseReg: RegR8, offset: -0x8000, c: 0, exp: []byte{0x41, 0x83, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x0}},
|
|
{name: "CMPL/base=R8/offset=-0x8000/c=1", inst: CMPL, baseReg: RegR8, offset: -0x8000, c: 1, exp: []byte{0x41, 0x83, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x1}},
|
|
{name: "CMPL/base=R8/offset=-0x8000/c=-1", inst: CMPL, baseReg: RegR8, offset: -0x8000, c: -1, exp: []byte{0x41, 0x83, 0xb8, 0x0, 0x80, 0xff, 0xff, 0xff}},
|
|
{name: "CMPL/base=R8/offset=-0x8000/c=100", inst: CMPL, baseReg: RegR8, offset: -0x8000, c: 100, exp: []byte{0x41, 0x83, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x64}},
|
|
{name: "CMPL/base=R8/offset=-0x8000/c=-100", inst: CMPL, baseReg: RegR8, offset: -0x8000, c: -100, exp: []byte{0x41, 0x83, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x9c}},
|
|
{name: "CMPL/base=R8/offset=-0x8000/c=127", inst: CMPL, baseReg: RegR8, offset: -0x8000, c: 127, exp: []byte{0x41, 0x83, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=-0x8000/c=-128", inst: CMPL, baseReg: RegR8, offset: -0x8000, c: -128, exp: []byte{0x41, 0x83, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x80}},
|
|
{name: "CMPL/base=R8/offset=-0x8000/c=32767", inst: CMPL, baseReg: RegR8, offset: -0x8000, c: 32767, exp: []byte{0x41, 0x81, 0xb8, 0x0, 0x80, 0xff, 0xff, 0xff, 0x7f, 0x0, 0x0}},
|
|
{name: "CMPL/base=R8/offset=-0x8000/c=-32768", inst: CMPL, baseReg: RegR8, offset: -0x8000, c: -32768, exp: []byte{0x41, 0x81, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x0, 0x80, 0xff, 0xff}},
|
|
{name: "CMPL/base=R8/offset=-0x8000/c=1048576", inst: CMPL, baseReg: RegR8, offset: -0x8000, c: 1048576, exp: []byte{0x41, 0x81, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x10, 0x0}},
|
|
{name: "CMPL/base=R8/offset=-0x8000/c=-1048576", inst: CMPL, baseReg: RegR8, offset: -0x8000, c: -1048576, exp: []byte{0x41, 0x81, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0xf0, 0xff}},
|
|
{name: "CMPL/base=R8/offset=-0x8000/c=2147483647", inst: CMPL, baseReg: RegR8, offset: -0x8000, c: 2147483647, exp: []byte{0x41, 0x81, 0xb8, 0x0, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f}},
|
|
{name: "CMPL/base=R8/offset=-0x8000/c=-2147483648", inst: CMPL, baseReg: RegR8, offset: -0x8000, c: -2147483648, exp: []byte{0x41, 0x81, 0xb8, 0x0, 0x80, 0xff, 0xff, 0x0, 0x0, 0x0, 0x80}},
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
a := NewAssembler()
|
|
err := a.encodeMemoryToConst(&nodeImpl{
|
|
instruction: tc.inst,
|
|
types: operandTypesMemoryToConst, srcReg: tc.baseReg, srcConst: tc.offset, dstConst: tc.c,
|
|
})
|
|
require.NoError(t, err, tc.name)
|
|
require.Equal(t, tc.exp, a.buf.Bytes(), tc.name)
|
|
}
|
|
}
|
|
|
|
func TestAssemblerImpl_ResolveForwardRelativeJumps(t *testing.T) {
|
|
t.Run("long jump", func(t *testing.T) {
|
|
t.Run("error", func(t *testing.T) {
|
|
originOffset, targetOffset := uint64(0), uint64(math.MaxInt64)
|
|
origin := &nodeImpl{instruction: JMP, offsetInBinaryField: originOffset}
|
|
target := &nodeImpl{offsetInBinaryField: targetOffset, jumpOrigins: map[*nodeImpl]struct{}{origin: {}}}
|
|
a := NewAssembler()
|
|
err := a.ResolveForwardRelativeJumps(target)
|
|
require.EqualError(t, err, "too large jump offset 9223372036854775802 for encoding JMP")
|
|
})
|
|
t.Run("ok", func(t *testing.T) {
|
|
originOffset := uint64(0)
|
|
tests := []struct {
|
|
instruction asm.Instruction
|
|
targetOffset uint64
|
|
expectedOffsetFromEIP int32
|
|
writtenOffsetIndexInBinary int
|
|
}{
|
|
{
|
|
instruction: JMP, targetOffset: 1234,
|
|
writtenOffsetIndexInBinary: 1, // JMP has one opcode byte for long jump.
|
|
expectedOffsetFromEIP: 1234 - 5, // the instruction length of long relative jmp.
|
|
},
|
|
{
|
|
instruction: JCC, targetOffset: 1234,
|
|
writtenOffsetIndexInBinary: 2, // Conditional jumps has two opcode for long jump.
|
|
expectedOffsetFromEIP: 1234 - 6, // the instruction length of long relative JCC
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
tc := tt
|
|
origin := &nodeImpl{instruction: tc.instruction, offsetInBinaryField: originOffset}
|
|
target := &nodeImpl{offsetInBinaryField: tc.targetOffset, jumpOrigins: map[*nodeImpl]struct{}{origin: {}}}
|
|
a := NewAssembler()
|
|
|
|
// Grow the capacity of buffer so that we could put the offset.
|
|
a.buf.Write([]byte{0, 0, 0, 0, 0, 0}) // Relative long jumps are at most 6 bytes.
|
|
|
|
err := a.ResolveForwardRelativeJumps(target)
|
|
require.NoError(t, err)
|
|
|
|
actual := binary.LittleEndian.Uint32(a.buf.Bytes()[tc.writtenOffsetIndexInBinary:])
|
|
require.Equal(t, tc.expectedOffsetFromEIP, int32(actual))
|
|
}
|
|
})
|
|
})
|
|
t.Run("short jump", func(t *testing.T) {
|
|
t.Run("reassemble", func(t *testing.T) {
|
|
originOffset := uint64(0)
|
|
tests := []struct {
|
|
instruction asm.Instruction
|
|
targetOffset uint64
|
|
}{
|
|
{
|
|
instruction: JMP,
|
|
targetOffset: 10000,
|
|
},
|
|
{
|
|
instruction: JMP,
|
|
// Relative jump offset = 130 - len(JMP instruction bytes) = 130 - 2 = 128 > math.MaxInt8.
|
|
targetOffset: 130,
|
|
},
|
|
{
|
|
instruction: JCC,
|
|
targetOffset: 10000,
|
|
},
|
|
{
|
|
instruction: JCC,
|
|
// Relative jump offset = 130 - len(JCC instruction bytes) = 130 -2 = 128 > math.MaxInt8.
|
|
targetOffset: 130,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
tc := tt
|
|
origin := &nodeImpl{instruction: tc.instruction, offsetInBinaryField: originOffset, flag: nodeFlagShortForwardJump}
|
|
target := &nodeImpl{offsetInBinaryField: tc.targetOffset, jumpOrigins: map[*nodeImpl]struct{}{origin: {}}}
|
|
origin.jumpTarget = target
|
|
|
|
a := NewAssembler()
|
|
err := a.ResolveForwardRelativeJumps(target)
|
|
require.NoError(t, err)
|
|
|
|
require.True(t, a.forceReAssemble)
|
|
require.True(t, origin.flag&nodeFlagShortForwardJump == 0)
|
|
}
|
|
})
|
|
t.Run("ok", func(t *testing.T) {
|
|
originOffset := uint64(0)
|
|
tests := []struct {
|
|
instruction asm.Instruction
|
|
targetOffset uint64
|
|
expectedOffsetFromEIP byte
|
|
}{
|
|
{
|
|
instruction: JMP, targetOffset: 129,
|
|
expectedOffsetFromEIP: 129 - 2, // short jumps are of 2 bytes.
|
|
},
|
|
{
|
|
instruction: JCC, targetOffset: 129,
|
|
expectedOffsetFromEIP: 129 - 2, // short jumps are of 2 bytes.
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
tc := tt
|
|
origin := &nodeImpl{instruction: tc.instruction, offsetInBinaryField: originOffset, flag: nodeFlagShortForwardJump}
|
|
target := &nodeImpl{offsetInBinaryField: tc.targetOffset, jumpOrigins: map[*nodeImpl]struct{}{origin: {}}}
|
|
origin.jumpTarget = target
|
|
|
|
a := NewAssembler()
|
|
|
|
// Grow the capacity of buffer so that we could put the offset.
|
|
a.buf.Write([]byte{0, 0}) // Relative short jumps are of 2 bytes.
|
|
|
|
err := a.ResolveForwardRelativeJumps(target)
|
|
require.NoError(t, err)
|
|
|
|
actual := a.buf.Bytes()[1] // For short jumps, the opcode has one opcode so the offset is writte at 2nd byte.
|
|
require.Equal(t, tc.expectedOffsetFromEIP, actual)
|
|
}
|
|
})
|
|
})
|
|
}
|