github.com/bananabytelabs/wazero@v0.0.0-20240105073314-54b22a776da8/internal/asm/amd64/impl_7_test.go (about) 1 package amd64 2 3 import ( 4 "fmt" 5 "math" 6 "testing" 7 8 "github.com/bananabytelabs/wazero/internal/asm" 9 "github.com/bananabytelabs/wazero/internal/testing/require" 10 ) 11 12 func TestAssemblerImpl_Assemble_NOPPadding_fusedJumps(t *testing.T) { 13 tests := []struct { 14 name string 15 setupFn func(assembler Assembler) 16 jmpInstToExpectedBytes map[string][]byte 17 }{ 18 { 19 name: "CMPL(register to const)", 20 setupFn: func(assembler Assembler) { 21 assembler.CompileRegisterToConst(CMPL, RegAX, math.MaxInt16) 22 }, 23 jmpInstToExpectedBytes: map[string][]uint8{ 24 "JCC": {0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x55, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x4e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x47, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x40, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x35, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x2e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x27, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x20, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x15, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0xe, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x7, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x0, 0xc3}, 25 "JCS": {0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x55, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x4e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x47, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x40, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x35, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x2e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x27, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x20, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x15, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0xe, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x7, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x0, 0xc3}, 26 "JEQ": {0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x55, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x4e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x47, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x40, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x35, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x2e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x27, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x20, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x15, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0xe, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x7, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x0, 0xc3}, 27 "JGE": {0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x55, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x4e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x47, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x40, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x35, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x2e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x27, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x20, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x15, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0xe, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x7, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x0, 0xc3}, 28 "JGT": {0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x55, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x4e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x47, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x40, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x35, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x2e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x27, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x20, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x15, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0xe, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x7, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x0, 0xc3}, 29 "JHI": {0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x55, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x4e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x47, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x40, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x35, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x2e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x27, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x20, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x15, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0xe, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x7, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x0, 0xc3}, 30 "JLE": {0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x55, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x4e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x47, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x40, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x35, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x2e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x27, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x20, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x15, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0xe, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x7, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x0, 0xc3}, 31 "JLS": {0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x55, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x4e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x47, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x40, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x35, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x2e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x27, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x20, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x15, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0xe, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x7, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x0, 0xc3}, 32 "JLT": {0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x55, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x4e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x47, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x40, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x35, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x2e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x27, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x20, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x15, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0xe, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x7, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x0, 0xc3}, 33 "JMI": {0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x4d, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x46, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x3f, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x38, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x31, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x2a, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x23, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x1c, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x15, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0xe, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x7, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x0, 0xc3}, 34 "JNE": {0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x55, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x4e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x47, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x40, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x35, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x2e, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x27, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x20, 0xf, 0x1f, 0x40, 0x0, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x15, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0xe, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x7, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x0, 0xc3}, 35 "JPC": {0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x4d, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x46, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x3f, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x38, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x31, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x2a, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x23, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x1c, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x15, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0xe, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x7, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x0, 0xc3}, 36 "JPS": {0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x4d, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x46, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x3f, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x38, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x31, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x2a, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x23, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x1c, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x15, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0xe, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x7, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x0, 0xc3}, 37 }, 38 }, 39 { 40 name: "CMPL(memory to const)", 41 setupFn: func(assembler Assembler) { 42 assembler.CompileMemoryToConst(CMPL, RegAX, 1, 10) 43 }, 44 jmpInstToExpectedBytes: map[string][]uint8{ 45 "JCC": {0x83, 0x78, 0x1, 0xa, 0x73, 0x42, 0x83, 0x78, 0x1, 0xa, 0x73, 0x3c, 0x83, 0x78, 0x1, 0xa, 0x73, 0x36, 0x83, 0x78, 0x1, 0xa, 0x73, 0x30, 0x83, 0x78, 0x1, 0xa, 0x73, 0x2a, 0x83, 0x78, 0x1, 0xa, 0x73, 0x24, 0x83, 0x78, 0x1, 0xa, 0x73, 0x1e, 0x83, 0x78, 0x1, 0xa, 0x73, 0x18, 0x83, 0x78, 0x1, 0xa, 0x73, 0x12, 0x83, 0x78, 0x1, 0xa, 0x73, 0xc, 0x83, 0x78, 0x1, 0xa, 0x73, 0x6, 0x83, 0x78, 0x1, 0xa, 0x73, 0x0, 0xc3}, 46 "JCS": {0x83, 0x78, 0x1, 0xa, 0x72, 0x42, 0x83, 0x78, 0x1, 0xa, 0x72, 0x3c, 0x83, 0x78, 0x1, 0xa, 0x72, 0x36, 0x83, 0x78, 0x1, 0xa, 0x72, 0x30, 0x83, 0x78, 0x1, 0xa, 0x72, 0x2a, 0x83, 0x78, 0x1, 0xa, 0x72, 0x24, 0x83, 0x78, 0x1, 0xa, 0x72, 0x1e, 0x83, 0x78, 0x1, 0xa, 0x72, 0x18, 0x83, 0x78, 0x1, 0xa, 0x72, 0x12, 0x83, 0x78, 0x1, 0xa, 0x72, 0xc, 0x83, 0x78, 0x1, 0xa, 0x72, 0x6, 0x83, 0x78, 0x1, 0xa, 0x72, 0x0, 0xc3}, 47 "JEQ": {0x83, 0x78, 0x1, 0xa, 0x74, 0x42, 0x83, 0x78, 0x1, 0xa, 0x74, 0x3c, 0x83, 0x78, 0x1, 0xa, 0x74, 0x36, 0x83, 0x78, 0x1, 0xa, 0x74, 0x30, 0x83, 0x78, 0x1, 0xa, 0x74, 0x2a, 0x83, 0x78, 0x1, 0xa, 0x74, 0x24, 0x83, 0x78, 0x1, 0xa, 0x74, 0x1e, 0x83, 0x78, 0x1, 0xa, 0x74, 0x18, 0x83, 0x78, 0x1, 0xa, 0x74, 0x12, 0x83, 0x78, 0x1, 0xa, 0x74, 0xc, 0x83, 0x78, 0x1, 0xa, 0x74, 0x6, 0x83, 0x78, 0x1, 0xa, 0x74, 0x0, 0xc3}, 48 "JGE": {0x83, 0x78, 0x1, 0xa, 0x7d, 0x42, 0x83, 0x78, 0x1, 0xa, 0x7d, 0x3c, 0x83, 0x78, 0x1, 0xa, 0x7d, 0x36, 0x83, 0x78, 0x1, 0xa, 0x7d, 0x30, 0x83, 0x78, 0x1, 0xa, 0x7d, 0x2a, 0x83, 0x78, 0x1, 0xa, 0x7d, 0x24, 0x83, 0x78, 0x1, 0xa, 0x7d, 0x1e, 0x83, 0x78, 0x1, 0xa, 0x7d, 0x18, 0x83, 0x78, 0x1, 0xa, 0x7d, 0x12, 0x83, 0x78, 0x1, 0xa, 0x7d, 0xc, 0x83, 0x78, 0x1, 0xa, 0x7d, 0x6, 0x83, 0x78, 0x1, 0xa, 0x7d, 0x0, 0xc3}, 49 "JGT": {0x83, 0x78, 0x1, 0xa, 0x7f, 0x42, 0x83, 0x78, 0x1, 0xa, 0x7f, 0x3c, 0x83, 0x78, 0x1, 0xa, 0x7f, 0x36, 0x83, 0x78, 0x1, 0xa, 0x7f, 0x30, 0x83, 0x78, 0x1, 0xa, 0x7f, 0x2a, 0x83, 0x78, 0x1, 0xa, 0x7f, 0x24, 0x83, 0x78, 0x1, 0xa, 0x7f, 0x1e, 0x83, 0x78, 0x1, 0xa, 0x7f, 0x18, 0x83, 0x78, 0x1, 0xa, 0x7f, 0x12, 0x83, 0x78, 0x1, 0xa, 0x7f, 0xc, 0x83, 0x78, 0x1, 0xa, 0x7f, 0x6, 0x83, 0x78, 0x1, 0xa, 0x7f, 0x0, 0xc3}, 50 "JHI": {0x83, 0x78, 0x1, 0xa, 0x77, 0x42, 0x83, 0x78, 0x1, 0xa, 0x77, 0x3c, 0x83, 0x78, 0x1, 0xa, 0x77, 0x36, 0x83, 0x78, 0x1, 0xa, 0x77, 0x30, 0x83, 0x78, 0x1, 0xa, 0x77, 0x2a, 0x83, 0x78, 0x1, 0xa, 0x77, 0x24, 0x83, 0x78, 0x1, 0xa, 0x77, 0x1e, 0x83, 0x78, 0x1, 0xa, 0x77, 0x18, 0x83, 0x78, 0x1, 0xa, 0x77, 0x12, 0x83, 0x78, 0x1, 0xa, 0x77, 0xc, 0x83, 0x78, 0x1, 0xa, 0x77, 0x6, 0x83, 0x78, 0x1, 0xa, 0x77, 0x0, 0xc3}, 51 "JLE": {0x83, 0x78, 0x1, 0xa, 0x7e, 0x42, 0x83, 0x78, 0x1, 0xa, 0x7e, 0x3c, 0x83, 0x78, 0x1, 0xa, 0x7e, 0x36, 0x83, 0x78, 0x1, 0xa, 0x7e, 0x30, 0x83, 0x78, 0x1, 0xa, 0x7e, 0x2a, 0x83, 0x78, 0x1, 0xa, 0x7e, 0x24, 0x83, 0x78, 0x1, 0xa, 0x7e, 0x1e, 0x83, 0x78, 0x1, 0xa, 0x7e, 0x18, 0x83, 0x78, 0x1, 0xa, 0x7e, 0x12, 0x83, 0x78, 0x1, 0xa, 0x7e, 0xc, 0x83, 0x78, 0x1, 0xa, 0x7e, 0x6, 0x83, 0x78, 0x1, 0xa, 0x7e, 0x0, 0xc3}, 52 "JLS": {0x83, 0x78, 0x1, 0xa, 0x76, 0x42, 0x83, 0x78, 0x1, 0xa, 0x76, 0x3c, 0x83, 0x78, 0x1, 0xa, 0x76, 0x36, 0x83, 0x78, 0x1, 0xa, 0x76, 0x30, 0x83, 0x78, 0x1, 0xa, 0x76, 0x2a, 0x83, 0x78, 0x1, 0xa, 0x76, 0x24, 0x83, 0x78, 0x1, 0xa, 0x76, 0x1e, 0x83, 0x78, 0x1, 0xa, 0x76, 0x18, 0x83, 0x78, 0x1, 0xa, 0x76, 0x12, 0x83, 0x78, 0x1, 0xa, 0x76, 0xc, 0x83, 0x78, 0x1, 0xa, 0x76, 0x6, 0x83, 0x78, 0x1, 0xa, 0x76, 0x0, 0xc3}, 53 "JLT": {0x83, 0x78, 0x1, 0xa, 0x7c, 0x42, 0x83, 0x78, 0x1, 0xa, 0x7c, 0x3c, 0x83, 0x78, 0x1, 0xa, 0x7c, 0x36, 0x83, 0x78, 0x1, 0xa, 0x7c, 0x30, 0x83, 0x78, 0x1, 0xa, 0x7c, 0x2a, 0x83, 0x78, 0x1, 0xa, 0x7c, 0x24, 0x83, 0x78, 0x1, 0xa, 0x7c, 0x1e, 0x83, 0x78, 0x1, 0xa, 0x7c, 0x18, 0x83, 0x78, 0x1, 0xa, 0x7c, 0x12, 0x83, 0x78, 0x1, 0xa, 0x7c, 0xc, 0x83, 0x78, 0x1, 0xa, 0x7c, 0x6, 0x83, 0x78, 0x1, 0xa, 0x7c, 0x0, 0xc3}, 54 "JMI": {0x83, 0x78, 0x1, 0xa, 0x78, 0x42, 0x83, 0x78, 0x1, 0xa, 0x78, 0x3c, 0x83, 0x78, 0x1, 0xa, 0x78, 0x36, 0x83, 0x78, 0x1, 0xa, 0x78, 0x30, 0x83, 0x78, 0x1, 0xa, 0x78, 0x2a, 0x83, 0x78, 0x1, 0xa, 0x78, 0x24, 0x83, 0x78, 0x1, 0xa, 0x78, 0x1e, 0x83, 0x78, 0x1, 0xa, 0x78, 0x18, 0x83, 0x78, 0x1, 0xa, 0x78, 0x12, 0x83, 0x78, 0x1, 0xa, 0x78, 0xc, 0x83, 0x78, 0x1, 0xa, 0x78, 0x6, 0x83, 0x78, 0x1, 0xa, 0x78, 0x0, 0xc3}, 55 "JNE": {0x83, 0x78, 0x1, 0xa, 0x75, 0x42, 0x83, 0x78, 0x1, 0xa, 0x75, 0x3c, 0x83, 0x78, 0x1, 0xa, 0x75, 0x36, 0x83, 0x78, 0x1, 0xa, 0x75, 0x30, 0x83, 0x78, 0x1, 0xa, 0x75, 0x2a, 0x83, 0x78, 0x1, 0xa, 0x75, 0x24, 0x83, 0x78, 0x1, 0xa, 0x75, 0x1e, 0x83, 0x78, 0x1, 0xa, 0x75, 0x18, 0x83, 0x78, 0x1, 0xa, 0x75, 0x12, 0x83, 0x78, 0x1, 0xa, 0x75, 0xc, 0x83, 0x78, 0x1, 0xa, 0x75, 0x6, 0x83, 0x78, 0x1, 0xa, 0x75, 0x0, 0xc3}, 56 "JPC": {0x83, 0x78, 0x1, 0xa, 0x7b, 0x42, 0x83, 0x78, 0x1, 0xa, 0x7b, 0x3c, 0x83, 0x78, 0x1, 0xa, 0x7b, 0x36, 0x83, 0x78, 0x1, 0xa, 0x7b, 0x30, 0x83, 0x78, 0x1, 0xa, 0x7b, 0x2a, 0x83, 0x78, 0x1, 0xa, 0x7b, 0x24, 0x83, 0x78, 0x1, 0xa, 0x7b, 0x1e, 0x83, 0x78, 0x1, 0xa, 0x7b, 0x18, 0x83, 0x78, 0x1, 0xa, 0x7b, 0x12, 0x83, 0x78, 0x1, 0xa, 0x7b, 0xc, 0x83, 0x78, 0x1, 0xa, 0x7b, 0x6, 0x83, 0x78, 0x1, 0xa, 0x7b, 0x0, 0xc3}, 57 "JPS": {0x83, 0x78, 0x1, 0xa, 0x7a, 0x42, 0x83, 0x78, 0x1, 0xa, 0x7a, 0x3c, 0x83, 0x78, 0x1, 0xa, 0x7a, 0x36, 0x83, 0x78, 0x1, 0xa, 0x7a, 0x30, 0x83, 0x78, 0x1, 0xa, 0x7a, 0x2a, 0x83, 0x78, 0x1, 0xa, 0x7a, 0x24, 0x83, 0x78, 0x1, 0xa, 0x7a, 0x1e, 0x83, 0x78, 0x1, 0xa, 0x7a, 0x18, 0x83, 0x78, 0x1, 0xa, 0x7a, 0x12, 0x83, 0x78, 0x1, 0xa, 0x7a, 0xc, 0x83, 0x78, 0x1, 0xa, 0x7a, 0x6, 0x83, 0x78, 0x1, 0xa, 0x7a, 0x0, 0xc3}, 58 }, 59 }, 60 { 61 name: "CMPL(register to register)", 62 setupFn: func(assembler Assembler) { 63 assembler.CompileRegisterToRegister(CMPL, RegR14, RegR10) 64 }, 65 jmpInstToExpectedBytes: map[string][]uint8{ 66 "JCC": {0x45, 0x39, 0xd6, 0x73, 0x39, 0x45, 0x39, 0xd6, 0x73, 0x34, 0x45, 0x39, 0xd6, 0x73, 0x2f, 0x45, 0x39, 0xd6, 0x73, 0x2a, 0x45, 0x39, 0xd6, 0x73, 0x25, 0x45, 0x39, 0xd6, 0x73, 0x20, 0x66, 0x90, 0x45, 0x39, 0xd6, 0x73, 0x19, 0x45, 0x39, 0xd6, 0x73, 0x14, 0x45, 0x39, 0xd6, 0x73, 0xf, 0x45, 0x39, 0xd6, 0x73, 0xa, 0x45, 0x39, 0xd6, 0x73, 0x5, 0x45, 0x39, 0xd6, 0x73, 0x0, 0xc3}, 67 "JCS": {0x45, 0x39, 0xd6, 0x72, 0x39, 0x45, 0x39, 0xd6, 0x72, 0x34, 0x45, 0x39, 0xd6, 0x72, 0x2f, 0x45, 0x39, 0xd6, 0x72, 0x2a, 0x45, 0x39, 0xd6, 0x72, 0x25, 0x45, 0x39, 0xd6, 0x72, 0x20, 0x66, 0x90, 0x45, 0x39, 0xd6, 0x72, 0x19, 0x45, 0x39, 0xd6, 0x72, 0x14, 0x45, 0x39, 0xd6, 0x72, 0xf, 0x45, 0x39, 0xd6, 0x72, 0xa, 0x45, 0x39, 0xd6, 0x72, 0x5, 0x45, 0x39, 0xd6, 0x72, 0x0, 0xc3}, 68 "JEQ": {0x45, 0x39, 0xd6, 0x74, 0x39, 0x45, 0x39, 0xd6, 0x74, 0x34, 0x45, 0x39, 0xd6, 0x74, 0x2f, 0x45, 0x39, 0xd6, 0x74, 0x2a, 0x45, 0x39, 0xd6, 0x74, 0x25, 0x45, 0x39, 0xd6, 0x74, 0x20, 0x66, 0x90, 0x45, 0x39, 0xd6, 0x74, 0x19, 0x45, 0x39, 0xd6, 0x74, 0x14, 0x45, 0x39, 0xd6, 0x74, 0xf, 0x45, 0x39, 0xd6, 0x74, 0xa, 0x45, 0x39, 0xd6, 0x74, 0x5, 0x45, 0x39, 0xd6, 0x74, 0x0, 0xc3}, 69 "JGE": {0x45, 0x39, 0xd6, 0x7d, 0x39, 0x45, 0x39, 0xd6, 0x7d, 0x34, 0x45, 0x39, 0xd6, 0x7d, 0x2f, 0x45, 0x39, 0xd6, 0x7d, 0x2a, 0x45, 0x39, 0xd6, 0x7d, 0x25, 0x45, 0x39, 0xd6, 0x7d, 0x20, 0x66, 0x90, 0x45, 0x39, 0xd6, 0x7d, 0x19, 0x45, 0x39, 0xd6, 0x7d, 0x14, 0x45, 0x39, 0xd6, 0x7d, 0xf, 0x45, 0x39, 0xd6, 0x7d, 0xa, 0x45, 0x39, 0xd6, 0x7d, 0x5, 0x45, 0x39, 0xd6, 0x7d, 0x0, 0xc3}, 70 "JGT": {0x45, 0x39, 0xd6, 0x7f, 0x39, 0x45, 0x39, 0xd6, 0x7f, 0x34, 0x45, 0x39, 0xd6, 0x7f, 0x2f, 0x45, 0x39, 0xd6, 0x7f, 0x2a, 0x45, 0x39, 0xd6, 0x7f, 0x25, 0x45, 0x39, 0xd6, 0x7f, 0x20, 0x66, 0x90, 0x45, 0x39, 0xd6, 0x7f, 0x19, 0x45, 0x39, 0xd6, 0x7f, 0x14, 0x45, 0x39, 0xd6, 0x7f, 0xf, 0x45, 0x39, 0xd6, 0x7f, 0xa, 0x45, 0x39, 0xd6, 0x7f, 0x5, 0x45, 0x39, 0xd6, 0x7f, 0x0, 0xc3}, 71 "JHI": {0x45, 0x39, 0xd6, 0x77, 0x39, 0x45, 0x39, 0xd6, 0x77, 0x34, 0x45, 0x39, 0xd6, 0x77, 0x2f, 0x45, 0x39, 0xd6, 0x77, 0x2a, 0x45, 0x39, 0xd6, 0x77, 0x25, 0x45, 0x39, 0xd6, 0x77, 0x20, 0x66, 0x90, 0x45, 0x39, 0xd6, 0x77, 0x19, 0x45, 0x39, 0xd6, 0x77, 0x14, 0x45, 0x39, 0xd6, 0x77, 0xf, 0x45, 0x39, 0xd6, 0x77, 0xa, 0x45, 0x39, 0xd6, 0x77, 0x5, 0x45, 0x39, 0xd6, 0x77, 0x0, 0xc3}, 72 "JLE": {0x45, 0x39, 0xd6, 0x7e, 0x39, 0x45, 0x39, 0xd6, 0x7e, 0x34, 0x45, 0x39, 0xd6, 0x7e, 0x2f, 0x45, 0x39, 0xd6, 0x7e, 0x2a, 0x45, 0x39, 0xd6, 0x7e, 0x25, 0x45, 0x39, 0xd6, 0x7e, 0x20, 0x66, 0x90, 0x45, 0x39, 0xd6, 0x7e, 0x19, 0x45, 0x39, 0xd6, 0x7e, 0x14, 0x45, 0x39, 0xd6, 0x7e, 0xf, 0x45, 0x39, 0xd6, 0x7e, 0xa, 0x45, 0x39, 0xd6, 0x7e, 0x5, 0x45, 0x39, 0xd6, 0x7e, 0x0, 0xc3}, 73 "JLS": {0x45, 0x39, 0xd6, 0x76, 0x39, 0x45, 0x39, 0xd6, 0x76, 0x34, 0x45, 0x39, 0xd6, 0x76, 0x2f, 0x45, 0x39, 0xd6, 0x76, 0x2a, 0x45, 0x39, 0xd6, 0x76, 0x25, 0x45, 0x39, 0xd6, 0x76, 0x20, 0x66, 0x90, 0x45, 0x39, 0xd6, 0x76, 0x19, 0x45, 0x39, 0xd6, 0x76, 0x14, 0x45, 0x39, 0xd6, 0x76, 0xf, 0x45, 0x39, 0xd6, 0x76, 0xa, 0x45, 0x39, 0xd6, 0x76, 0x5, 0x45, 0x39, 0xd6, 0x76, 0x0, 0xc3}, 74 "JLT": {0x45, 0x39, 0xd6, 0x7c, 0x39, 0x45, 0x39, 0xd6, 0x7c, 0x34, 0x45, 0x39, 0xd6, 0x7c, 0x2f, 0x45, 0x39, 0xd6, 0x7c, 0x2a, 0x45, 0x39, 0xd6, 0x7c, 0x25, 0x45, 0x39, 0xd6, 0x7c, 0x20, 0x66, 0x90, 0x45, 0x39, 0xd6, 0x7c, 0x19, 0x45, 0x39, 0xd6, 0x7c, 0x14, 0x45, 0x39, 0xd6, 0x7c, 0xf, 0x45, 0x39, 0xd6, 0x7c, 0xa, 0x45, 0x39, 0xd6, 0x7c, 0x5, 0x45, 0x39, 0xd6, 0x7c, 0x0, 0xc3}, 75 "JMI": {0x45, 0x39, 0xd6, 0x78, 0x37, 0x45, 0x39, 0xd6, 0x78, 0x32, 0x45, 0x39, 0xd6, 0x78, 0x2d, 0x45, 0x39, 0xd6, 0x78, 0x28, 0x45, 0x39, 0xd6, 0x78, 0x23, 0x45, 0x39, 0xd6, 0x78, 0x1e, 0x45, 0x39, 0xd6, 0x78, 0x19, 0x45, 0x39, 0xd6, 0x78, 0x14, 0x45, 0x39, 0xd6, 0x78, 0xf, 0x45, 0x39, 0xd6, 0x78, 0xa, 0x45, 0x39, 0xd6, 0x78, 0x5, 0x45, 0x39, 0xd6, 0x78, 0x0, 0xc3}, 76 "JNE": {0x45, 0x39, 0xd6, 0x75, 0x39, 0x45, 0x39, 0xd6, 0x75, 0x34, 0x45, 0x39, 0xd6, 0x75, 0x2f, 0x45, 0x39, 0xd6, 0x75, 0x2a, 0x45, 0x39, 0xd6, 0x75, 0x25, 0x45, 0x39, 0xd6, 0x75, 0x20, 0x66, 0x90, 0x45, 0x39, 0xd6, 0x75, 0x19, 0x45, 0x39, 0xd6, 0x75, 0x14, 0x45, 0x39, 0xd6, 0x75, 0xf, 0x45, 0x39, 0xd6, 0x75, 0xa, 0x45, 0x39, 0xd6, 0x75, 0x5, 0x45, 0x39, 0xd6, 0x75, 0x0, 0xc3}, 77 "JPC": {0x45, 0x39, 0xd6, 0x7b, 0x37, 0x45, 0x39, 0xd6, 0x7b, 0x32, 0x45, 0x39, 0xd6, 0x7b, 0x2d, 0x45, 0x39, 0xd6, 0x7b, 0x28, 0x45, 0x39, 0xd6, 0x7b, 0x23, 0x45, 0x39, 0xd6, 0x7b, 0x1e, 0x45, 0x39, 0xd6, 0x7b, 0x19, 0x45, 0x39, 0xd6, 0x7b, 0x14, 0x45, 0x39, 0xd6, 0x7b, 0xf, 0x45, 0x39, 0xd6, 0x7b, 0xa, 0x45, 0x39, 0xd6, 0x7b, 0x5, 0x45, 0x39, 0xd6, 0x7b, 0x0, 0xc3}, 78 "JPS": {0x45, 0x39, 0xd6, 0x7a, 0x37, 0x45, 0x39, 0xd6, 0x7a, 0x32, 0x45, 0x39, 0xd6, 0x7a, 0x2d, 0x45, 0x39, 0xd6, 0x7a, 0x28, 0x45, 0x39, 0xd6, 0x7a, 0x23, 0x45, 0x39, 0xd6, 0x7a, 0x1e, 0x45, 0x39, 0xd6, 0x7a, 0x19, 0x45, 0x39, 0xd6, 0x7a, 0x14, 0x45, 0x39, 0xd6, 0x7a, 0xf, 0x45, 0x39, 0xd6, 0x7a, 0xa, 0x45, 0x39, 0xd6, 0x7a, 0x5, 0x45, 0x39, 0xd6, 0x7a, 0x0, 0xc3}, 79 }, 80 }, 81 { 82 name: "CMPQ(register to const)", 83 setupFn: func(assembler Assembler) { 84 assembler.CompileRegisterToConst(CMPQ, RegAX, math.MaxInt16) 85 }, 86 jmpInstToExpectedBytes: map[string][]uint8{ 87 "JCC": {0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x70, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x68, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x60, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x50, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x48, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x40, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x30, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x28, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x20, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x10, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x8, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x0, 0xc3}, 88 "JCS": {0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x70, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x68, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x60, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x50, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x48, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x40, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x30, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x28, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x20, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x10, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x8, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x0, 0xc3}, 89 "JEQ": {0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x70, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x68, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x60, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x50, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x48, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x40, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x30, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x28, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x20, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x10, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x8, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x0, 0xc3}, 90 "JGE": {0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x70, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x68, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x60, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x50, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x48, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x40, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x30, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x28, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x20, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x10, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x8, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x0, 0xc3}, 91 "JGT": {0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x70, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x68, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x60, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x50, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x48, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x40, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x30, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x28, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x20, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x10, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x8, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x0, 0xc3}, 92 "JHI": {0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x70, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x68, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x60, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x50, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x48, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x40, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x30, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x28, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x20, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x10, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x8, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x0, 0xc3}, 93 "JLE": {0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x70, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x68, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x60, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x50, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x48, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x40, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x30, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x28, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x20, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x10, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x8, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x0, 0xc3}, 94 "JLS": {0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x70, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x68, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x60, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x50, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x48, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x40, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x30, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x28, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x20, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x10, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x8, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x0, 0xc3}, 95 "JLT": {0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x70, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x68, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x60, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x50, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x48, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x40, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x30, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x28, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x20, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x10, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x8, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x0, 0xc3}, 96 "JMI": {0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x5a, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x52, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x4a, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x66, 0x90, 0x78, 0x40, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x38, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x30, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x28, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x20, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x18, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x10, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x8, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x0, 0xc3}, 97 "JNE": {0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x70, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x68, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x60, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x50, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x48, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x40, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x30, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x28, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x20, 0xf, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x10, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x8, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x0, 0xc3}, 98 "JPC": {0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x5a, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x52, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x4a, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x66, 0x90, 0x7b, 0x40, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x38, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x30, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x28, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x20, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x18, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x10, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x8, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x0, 0xc3}, 99 "JPS": {0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x5a, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x52, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x4a, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x66, 0x90, 0x7a, 0x40, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x38, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x30, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x28, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x20, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x18, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x10, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x8, 0x48, 0x3d, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x0, 0xc3}, 100 }, 101 }, 102 { 103 name: "CMPQ(register to register)", 104 setupFn: func(assembler Assembler) { 105 assembler.CompileRegisterToRegister(CMPQ, RegR14, RegR10) 106 }, 107 jmpInstToExpectedBytes: map[string][]uint8{ 108 "JCC": {0x4d, 0x39, 0xd6, 0x73, 0x39, 0x4d, 0x39, 0xd6, 0x73, 0x34, 0x4d, 0x39, 0xd6, 0x73, 0x2f, 0x4d, 0x39, 0xd6, 0x73, 0x2a, 0x4d, 0x39, 0xd6, 0x73, 0x25, 0x4d, 0x39, 0xd6, 0x73, 0x20, 0x66, 0x90, 0x4d, 0x39, 0xd6, 0x73, 0x19, 0x4d, 0x39, 0xd6, 0x73, 0x14, 0x4d, 0x39, 0xd6, 0x73, 0xf, 0x4d, 0x39, 0xd6, 0x73, 0xa, 0x4d, 0x39, 0xd6, 0x73, 0x5, 0x4d, 0x39, 0xd6, 0x73, 0x0, 0xc3}, 109 "JCS": {0x4d, 0x39, 0xd6, 0x72, 0x39, 0x4d, 0x39, 0xd6, 0x72, 0x34, 0x4d, 0x39, 0xd6, 0x72, 0x2f, 0x4d, 0x39, 0xd6, 0x72, 0x2a, 0x4d, 0x39, 0xd6, 0x72, 0x25, 0x4d, 0x39, 0xd6, 0x72, 0x20, 0x66, 0x90, 0x4d, 0x39, 0xd6, 0x72, 0x19, 0x4d, 0x39, 0xd6, 0x72, 0x14, 0x4d, 0x39, 0xd6, 0x72, 0xf, 0x4d, 0x39, 0xd6, 0x72, 0xa, 0x4d, 0x39, 0xd6, 0x72, 0x5, 0x4d, 0x39, 0xd6, 0x72, 0x0, 0xc3}, 110 "JEQ": {0x4d, 0x39, 0xd6, 0x74, 0x39, 0x4d, 0x39, 0xd6, 0x74, 0x34, 0x4d, 0x39, 0xd6, 0x74, 0x2f, 0x4d, 0x39, 0xd6, 0x74, 0x2a, 0x4d, 0x39, 0xd6, 0x74, 0x25, 0x4d, 0x39, 0xd6, 0x74, 0x20, 0x66, 0x90, 0x4d, 0x39, 0xd6, 0x74, 0x19, 0x4d, 0x39, 0xd6, 0x74, 0x14, 0x4d, 0x39, 0xd6, 0x74, 0xf, 0x4d, 0x39, 0xd6, 0x74, 0xa, 0x4d, 0x39, 0xd6, 0x74, 0x5, 0x4d, 0x39, 0xd6, 0x74, 0x0, 0xc3}, 111 "JGE": {0x4d, 0x39, 0xd6, 0x7d, 0x39, 0x4d, 0x39, 0xd6, 0x7d, 0x34, 0x4d, 0x39, 0xd6, 0x7d, 0x2f, 0x4d, 0x39, 0xd6, 0x7d, 0x2a, 0x4d, 0x39, 0xd6, 0x7d, 0x25, 0x4d, 0x39, 0xd6, 0x7d, 0x20, 0x66, 0x90, 0x4d, 0x39, 0xd6, 0x7d, 0x19, 0x4d, 0x39, 0xd6, 0x7d, 0x14, 0x4d, 0x39, 0xd6, 0x7d, 0xf, 0x4d, 0x39, 0xd6, 0x7d, 0xa, 0x4d, 0x39, 0xd6, 0x7d, 0x5, 0x4d, 0x39, 0xd6, 0x7d, 0x0, 0xc3}, 112 "JGT": {0x4d, 0x39, 0xd6, 0x7f, 0x39, 0x4d, 0x39, 0xd6, 0x7f, 0x34, 0x4d, 0x39, 0xd6, 0x7f, 0x2f, 0x4d, 0x39, 0xd6, 0x7f, 0x2a, 0x4d, 0x39, 0xd6, 0x7f, 0x25, 0x4d, 0x39, 0xd6, 0x7f, 0x20, 0x66, 0x90, 0x4d, 0x39, 0xd6, 0x7f, 0x19, 0x4d, 0x39, 0xd6, 0x7f, 0x14, 0x4d, 0x39, 0xd6, 0x7f, 0xf, 0x4d, 0x39, 0xd6, 0x7f, 0xa, 0x4d, 0x39, 0xd6, 0x7f, 0x5, 0x4d, 0x39, 0xd6, 0x7f, 0x0, 0xc3}, 113 "JHI": {0x4d, 0x39, 0xd6, 0x77, 0x39, 0x4d, 0x39, 0xd6, 0x77, 0x34, 0x4d, 0x39, 0xd6, 0x77, 0x2f, 0x4d, 0x39, 0xd6, 0x77, 0x2a, 0x4d, 0x39, 0xd6, 0x77, 0x25, 0x4d, 0x39, 0xd6, 0x77, 0x20, 0x66, 0x90, 0x4d, 0x39, 0xd6, 0x77, 0x19, 0x4d, 0x39, 0xd6, 0x77, 0x14, 0x4d, 0x39, 0xd6, 0x77, 0xf, 0x4d, 0x39, 0xd6, 0x77, 0xa, 0x4d, 0x39, 0xd6, 0x77, 0x5, 0x4d, 0x39, 0xd6, 0x77, 0x0, 0xc3}, 114 "JLE": {0x4d, 0x39, 0xd6, 0x7e, 0x39, 0x4d, 0x39, 0xd6, 0x7e, 0x34, 0x4d, 0x39, 0xd6, 0x7e, 0x2f, 0x4d, 0x39, 0xd6, 0x7e, 0x2a, 0x4d, 0x39, 0xd6, 0x7e, 0x25, 0x4d, 0x39, 0xd6, 0x7e, 0x20, 0x66, 0x90, 0x4d, 0x39, 0xd6, 0x7e, 0x19, 0x4d, 0x39, 0xd6, 0x7e, 0x14, 0x4d, 0x39, 0xd6, 0x7e, 0xf, 0x4d, 0x39, 0xd6, 0x7e, 0xa, 0x4d, 0x39, 0xd6, 0x7e, 0x5, 0x4d, 0x39, 0xd6, 0x7e, 0x0, 0xc3}, 115 "JLS": {0x4d, 0x39, 0xd6, 0x76, 0x39, 0x4d, 0x39, 0xd6, 0x76, 0x34, 0x4d, 0x39, 0xd6, 0x76, 0x2f, 0x4d, 0x39, 0xd6, 0x76, 0x2a, 0x4d, 0x39, 0xd6, 0x76, 0x25, 0x4d, 0x39, 0xd6, 0x76, 0x20, 0x66, 0x90, 0x4d, 0x39, 0xd6, 0x76, 0x19, 0x4d, 0x39, 0xd6, 0x76, 0x14, 0x4d, 0x39, 0xd6, 0x76, 0xf, 0x4d, 0x39, 0xd6, 0x76, 0xa, 0x4d, 0x39, 0xd6, 0x76, 0x5, 0x4d, 0x39, 0xd6, 0x76, 0x0, 0xc3}, 116 "JLT": {0x4d, 0x39, 0xd6, 0x7c, 0x39, 0x4d, 0x39, 0xd6, 0x7c, 0x34, 0x4d, 0x39, 0xd6, 0x7c, 0x2f, 0x4d, 0x39, 0xd6, 0x7c, 0x2a, 0x4d, 0x39, 0xd6, 0x7c, 0x25, 0x4d, 0x39, 0xd6, 0x7c, 0x20, 0x66, 0x90, 0x4d, 0x39, 0xd6, 0x7c, 0x19, 0x4d, 0x39, 0xd6, 0x7c, 0x14, 0x4d, 0x39, 0xd6, 0x7c, 0xf, 0x4d, 0x39, 0xd6, 0x7c, 0xa, 0x4d, 0x39, 0xd6, 0x7c, 0x5, 0x4d, 0x39, 0xd6, 0x7c, 0x0, 0xc3}, 117 "JMI": {0x4d, 0x39, 0xd6, 0x78, 0x37, 0x4d, 0x39, 0xd6, 0x78, 0x32, 0x4d, 0x39, 0xd6, 0x78, 0x2d, 0x4d, 0x39, 0xd6, 0x78, 0x28, 0x4d, 0x39, 0xd6, 0x78, 0x23, 0x4d, 0x39, 0xd6, 0x78, 0x1e, 0x4d, 0x39, 0xd6, 0x78, 0x19, 0x4d, 0x39, 0xd6, 0x78, 0x14, 0x4d, 0x39, 0xd6, 0x78, 0xf, 0x4d, 0x39, 0xd6, 0x78, 0xa, 0x4d, 0x39, 0xd6, 0x78, 0x5, 0x4d, 0x39, 0xd6, 0x78, 0x0, 0xc3}, 118 "JNE": {0x4d, 0x39, 0xd6, 0x75, 0x39, 0x4d, 0x39, 0xd6, 0x75, 0x34, 0x4d, 0x39, 0xd6, 0x75, 0x2f, 0x4d, 0x39, 0xd6, 0x75, 0x2a, 0x4d, 0x39, 0xd6, 0x75, 0x25, 0x4d, 0x39, 0xd6, 0x75, 0x20, 0x66, 0x90, 0x4d, 0x39, 0xd6, 0x75, 0x19, 0x4d, 0x39, 0xd6, 0x75, 0x14, 0x4d, 0x39, 0xd6, 0x75, 0xf, 0x4d, 0x39, 0xd6, 0x75, 0xa, 0x4d, 0x39, 0xd6, 0x75, 0x5, 0x4d, 0x39, 0xd6, 0x75, 0x0, 0xc3}, 119 "JPC": {0x4d, 0x39, 0xd6, 0x7b, 0x37, 0x4d, 0x39, 0xd6, 0x7b, 0x32, 0x4d, 0x39, 0xd6, 0x7b, 0x2d, 0x4d, 0x39, 0xd6, 0x7b, 0x28, 0x4d, 0x39, 0xd6, 0x7b, 0x23, 0x4d, 0x39, 0xd6, 0x7b, 0x1e, 0x4d, 0x39, 0xd6, 0x7b, 0x19, 0x4d, 0x39, 0xd6, 0x7b, 0x14, 0x4d, 0x39, 0xd6, 0x7b, 0xf, 0x4d, 0x39, 0xd6, 0x7b, 0xa, 0x4d, 0x39, 0xd6, 0x7b, 0x5, 0x4d, 0x39, 0xd6, 0x7b, 0x0, 0xc3}, 120 "JPS": {0x4d, 0x39, 0xd6, 0x7a, 0x37, 0x4d, 0x39, 0xd6, 0x7a, 0x32, 0x4d, 0x39, 0xd6, 0x7a, 0x2d, 0x4d, 0x39, 0xd6, 0x7a, 0x28, 0x4d, 0x39, 0xd6, 0x7a, 0x23, 0x4d, 0x39, 0xd6, 0x7a, 0x1e, 0x4d, 0x39, 0xd6, 0x7a, 0x19, 0x4d, 0x39, 0xd6, 0x7a, 0x14, 0x4d, 0x39, 0xd6, 0x7a, 0xf, 0x4d, 0x39, 0xd6, 0x7a, 0xa, 0x4d, 0x39, 0xd6, 0x7a, 0x5, 0x4d, 0x39, 0xd6, 0x7a, 0x0, 0xc3}, 121 }, 122 }, 123 { 124 name: "TESTL", 125 setupFn: func(assembler Assembler) { 126 assembler.CompileRegisterToRegister(TESTL, RegAX, RegAX) 127 }, 128 jmpInstToExpectedBytes: map[string][]uint8{ 129 "JCC": {0x85, 0xc0, 0x73, 0x30, 0x85, 0xc0, 0x73, 0x2c, 0x85, 0xc0, 0x73, 0x28, 0x85, 0xc0, 0x73, 0x24, 0x85, 0xc0, 0x73, 0x20, 0x85, 0xc0, 0x73, 0x1c, 0x85, 0xc0, 0x73, 0x18, 0xf, 0x1f, 0x40, 0x0, 0x85, 0xc0, 0x73, 0x10, 0x85, 0xc0, 0x73, 0xc, 0x85, 0xc0, 0x73, 0x8, 0x85, 0xc0, 0x73, 0x4, 0x85, 0xc0, 0x73, 0x0, 0xc3}, 130 "JCS": {0x85, 0xc0, 0x72, 0x30, 0x85, 0xc0, 0x72, 0x2c, 0x85, 0xc0, 0x72, 0x28, 0x85, 0xc0, 0x72, 0x24, 0x85, 0xc0, 0x72, 0x20, 0x85, 0xc0, 0x72, 0x1c, 0x85, 0xc0, 0x72, 0x18, 0xf, 0x1f, 0x40, 0x0, 0x85, 0xc0, 0x72, 0x10, 0x85, 0xc0, 0x72, 0xc, 0x85, 0xc0, 0x72, 0x8, 0x85, 0xc0, 0x72, 0x4, 0x85, 0xc0, 0x72, 0x0, 0xc3}, 131 "JEQ": {0x85, 0xc0, 0x74, 0x30, 0x85, 0xc0, 0x74, 0x2c, 0x85, 0xc0, 0x74, 0x28, 0x85, 0xc0, 0x74, 0x24, 0x85, 0xc0, 0x74, 0x20, 0x85, 0xc0, 0x74, 0x1c, 0x85, 0xc0, 0x74, 0x18, 0xf, 0x1f, 0x40, 0x0, 0x85, 0xc0, 0x74, 0x10, 0x85, 0xc0, 0x74, 0xc, 0x85, 0xc0, 0x74, 0x8, 0x85, 0xc0, 0x74, 0x4, 0x85, 0xc0, 0x74, 0x0, 0xc3}, 132 "JGE": {0x85, 0xc0, 0x7d, 0x30, 0x85, 0xc0, 0x7d, 0x2c, 0x85, 0xc0, 0x7d, 0x28, 0x85, 0xc0, 0x7d, 0x24, 0x85, 0xc0, 0x7d, 0x20, 0x85, 0xc0, 0x7d, 0x1c, 0x85, 0xc0, 0x7d, 0x18, 0xf, 0x1f, 0x40, 0x0, 0x85, 0xc0, 0x7d, 0x10, 0x85, 0xc0, 0x7d, 0xc, 0x85, 0xc0, 0x7d, 0x8, 0x85, 0xc0, 0x7d, 0x4, 0x85, 0xc0, 0x7d, 0x0, 0xc3}, 133 "JGT": {0x85, 0xc0, 0x7f, 0x30, 0x85, 0xc0, 0x7f, 0x2c, 0x85, 0xc0, 0x7f, 0x28, 0x85, 0xc0, 0x7f, 0x24, 0x85, 0xc0, 0x7f, 0x20, 0x85, 0xc0, 0x7f, 0x1c, 0x85, 0xc0, 0x7f, 0x18, 0xf, 0x1f, 0x40, 0x0, 0x85, 0xc0, 0x7f, 0x10, 0x85, 0xc0, 0x7f, 0xc, 0x85, 0xc0, 0x7f, 0x8, 0x85, 0xc0, 0x7f, 0x4, 0x85, 0xc0, 0x7f, 0x0, 0xc3}, 134 "JHI": {0x85, 0xc0, 0x77, 0x30, 0x85, 0xc0, 0x77, 0x2c, 0x85, 0xc0, 0x77, 0x28, 0x85, 0xc0, 0x77, 0x24, 0x85, 0xc0, 0x77, 0x20, 0x85, 0xc0, 0x77, 0x1c, 0x85, 0xc0, 0x77, 0x18, 0xf, 0x1f, 0x40, 0x0, 0x85, 0xc0, 0x77, 0x10, 0x85, 0xc0, 0x77, 0xc, 0x85, 0xc0, 0x77, 0x8, 0x85, 0xc0, 0x77, 0x4, 0x85, 0xc0, 0x77, 0x0, 0xc3}, 135 "JLE": {0x85, 0xc0, 0x7e, 0x30, 0x85, 0xc0, 0x7e, 0x2c, 0x85, 0xc0, 0x7e, 0x28, 0x85, 0xc0, 0x7e, 0x24, 0x85, 0xc0, 0x7e, 0x20, 0x85, 0xc0, 0x7e, 0x1c, 0x85, 0xc0, 0x7e, 0x18, 0xf, 0x1f, 0x40, 0x0, 0x85, 0xc0, 0x7e, 0x10, 0x85, 0xc0, 0x7e, 0xc, 0x85, 0xc0, 0x7e, 0x8, 0x85, 0xc0, 0x7e, 0x4, 0x85, 0xc0, 0x7e, 0x0, 0xc3}, 136 "JLS": {0x85, 0xc0, 0x76, 0x30, 0x85, 0xc0, 0x76, 0x2c, 0x85, 0xc0, 0x76, 0x28, 0x85, 0xc0, 0x76, 0x24, 0x85, 0xc0, 0x76, 0x20, 0x85, 0xc0, 0x76, 0x1c, 0x85, 0xc0, 0x76, 0x18, 0xf, 0x1f, 0x40, 0x0, 0x85, 0xc0, 0x76, 0x10, 0x85, 0xc0, 0x76, 0xc, 0x85, 0xc0, 0x76, 0x8, 0x85, 0xc0, 0x76, 0x4, 0x85, 0xc0, 0x76, 0x0, 0xc3}, 137 "JLT": {0x85, 0xc0, 0x7c, 0x30, 0x85, 0xc0, 0x7c, 0x2c, 0x85, 0xc0, 0x7c, 0x28, 0x85, 0xc0, 0x7c, 0x24, 0x85, 0xc0, 0x7c, 0x20, 0x85, 0xc0, 0x7c, 0x1c, 0x85, 0xc0, 0x7c, 0x18, 0xf, 0x1f, 0x40, 0x0, 0x85, 0xc0, 0x7c, 0x10, 0x85, 0xc0, 0x7c, 0xc, 0x85, 0xc0, 0x7c, 0x8, 0x85, 0xc0, 0x7c, 0x4, 0x85, 0xc0, 0x7c, 0x0, 0xc3}, 138 "JMI": {0x85, 0xc0, 0x78, 0x30, 0x85, 0xc0, 0x78, 0x2c, 0x85, 0xc0, 0x78, 0x28, 0x85, 0xc0, 0x78, 0x24, 0x85, 0xc0, 0x78, 0x20, 0x85, 0xc0, 0x78, 0x1c, 0x85, 0xc0, 0x78, 0x18, 0xf, 0x1f, 0x40, 0x0, 0x85, 0xc0, 0x78, 0x10, 0x85, 0xc0, 0x78, 0xc, 0x85, 0xc0, 0x78, 0x8, 0x85, 0xc0, 0x78, 0x4, 0x85, 0xc0, 0x78, 0x0, 0xc3}, 139 "JNE": {0x85, 0xc0, 0x75, 0x30, 0x85, 0xc0, 0x75, 0x2c, 0x85, 0xc0, 0x75, 0x28, 0x85, 0xc0, 0x75, 0x24, 0x85, 0xc0, 0x75, 0x20, 0x85, 0xc0, 0x75, 0x1c, 0x85, 0xc0, 0x75, 0x18, 0xf, 0x1f, 0x40, 0x0, 0x85, 0xc0, 0x75, 0x10, 0x85, 0xc0, 0x75, 0xc, 0x85, 0xc0, 0x75, 0x8, 0x85, 0xc0, 0x75, 0x4, 0x85, 0xc0, 0x75, 0x0, 0xc3}, 140 "JPC": {0x85, 0xc0, 0x7b, 0x30, 0x85, 0xc0, 0x7b, 0x2c, 0x85, 0xc0, 0x7b, 0x28, 0x85, 0xc0, 0x7b, 0x24, 0x85, 0xc0, 0x7b, 0x20, 0x85, 0xc0, 0x7b, 0x1c, 0x85, 0xc0, 0x7b, 0x18, 0xf, 0x1f, 0x40, 0x0, 0x85, 0xc0, 0x7b, 0x10, 0x85, 0xc0, 0x7b, 0xc, 0x85, 0xc0, 0x7b, 0x8, 0x85, 0xc0, 0x7b, 0x4, 0x85, 0xc0, 0x7b, 0x0, 0xc3}, 141 "JPS": {0x85, 0xc0, 0x7a, 0x30, 0x85, 0xc0, 0x7a, 0x2c, 0x85, 0xc0, 0x7a, 0x28, 0x85, 0xc0, 0x7a, 0x24, 0x85, 0xc0, 0x7a, 0x20, 0x85, 0xc0, 0x7a, 0x1c, 0x85, 0xc0, 0x7a, 0x18, 0xf, 0x1f, 0x40, 0x0, 0x85, 0xc0, 0x7a, 0x10, 0x85, 0xc0, 0x7a, 0xc, 0x85, 0xc0, 0x7a, 0x8, 0x85, 0xc0, 0x7a, 0x4, 0x85, 0xc0, 0x7a, 0x0, 0xc3}, 142 }, 143 }, 144 { 145 name: "TESTQ", 146 setupFn: func(assembler Assembler) { 147 assembler.CompileRegisterToRegister(TESTQ, RegAX, RegAX) 148 }, 149 jmpInstToExpectedBytes: map[string][]uint8{ 150 "JCC": {0x48, 0x85, 0xc0, 0x73, 0x39, 0x48, 0x85, 0xc0, 0x73, 0x34, 0x48, 0x85, 0xc0, 0x73, 0x2f, 0x48, 0x85, 0xc0, 0x73, 0x2a, 0x48, 0x85, 0xc0, 0x73, 0x25, 0x48, 0x85, 0xc0, 0x73, 0x20, 0x66, 0x90, 0x48, 0x85, 0xc0, 0x73, 0x19, 0x48, 0x85, 0xc0, 0x73, 0x14, 0x48, 0x85, 0xc0, 0x73, 0xf, 0x48, 0x85, 0xc0, 0x73, 0xa, 0x48, 0x85, 0xc0, 0x73, 0x5, 0x48, 0x85, 0xc0, 0x73, 0x0, 0xc3}, 151 "JCS": {0x48, 0x85, 0xc0, 0x72, 0x39, 0x48, 0x85, 0xc0, 0x72, 0x34, 0x48, 0x85, 0xc0, 0x72, 0x2f, 0x48, 0x85, 0xc0, 0x72, 0x2a, 0x48, 0x85, 0xc0, 0x72, 0x25, 0x48, 0x85, 0xc0, 0x72, 0x20, 0x66, 0x90, 0x48, 0x85, 0xc0, 0x72, 0x19, 0x48, 0x85, 0xc0, 0x72, 0x14, 0x48, 0x85, 0xc0, 0x72, 0xf, 0x48, 0x85, 0xc0, 0x72, 0xa, 0x48, 0x85, 0xc0, 0x72, 0x5, 0x48, 0x85, 0xc0, 0x72, 0x0, 0xc3}, 152 "JEQ": {0x48, 0x85, 0xc0, 0x74, 0x39, 0x48, 0x85, 0xc0, 0x74, 0x34, 0x48, 0x85, 0xc0, 0x74, 0x2f, 0x48, 0x85, 0xc0, 0x74, 0x2a, 0x48, 0x85, 0xc0, 0x74, 0x25, 0x48, 0x85, 0xc0, 0x74, 0x20, 0x66, 0x90, 0x48, 0x85, 0xc0, 0x74, 0x19, 0x48, 0x85, 0xc0, 0x74, 0x14, 0x48, 0x85, 0xc0, 0x74, 0xf, 0x48, 0x85, 0xc0, 0x74, 0xa, 0x48, 0x85, 0xc0, 0x74, 0x5, 0x48, 0x85, 0xc0, 0x74, 0x0, 0xc3}, 153 "JGE": {0x48, 0x85, 0xc0, 0x7d, 0x39, 0x48, 0x85, 0xc0, 0x7d, 0x34, 0x48, 0x85, 0xc0, 0x7d, 0x2f, 0x48, 0x85, 0xc0, 0x7d, 0x2a, 0x48, 0x85, 0xc0, 0x7d, 0x25, 0x48, 0x85, 0xc0, 0x7d, 0x20, 0x66, 0x90, 0x48, 0x85, 0xc0, 0x7d, 0x19, 0x48, 0x85, 0xc0, 0x7d, 0x14, 0x48, 0x85, 0xc0, 0x7d, 0xf, 0x48, 0x85, 0xc0, 0x7d, 0xa, 0x48, 0x85, 0xc0, 0x7d, 0x5, 0x48, 0x85, 0xc0, 0x7d, 0x0, 0xc3}, 154 "JGT": {0x48, 0x85, 0xc0, 0x7f, 0x39, 0x48, 0x85, 0xc0, 0x7f, 0x34, 0x48, 0x85, 0xc0, 0x7f, 0x2f, 0x48, 0x85, 0xc0, 0x7f, 0x2a, 0x48, 0x85, 0xc0, 0x7f, 0x25, 0x48, 0x85, 0xc0, 0x7f, 0x20, 0x66, 0x90, 0x48, 0x85, 0xc0, 0x7f, 0x19, 0x48, 0x85, 0xc0, 0x7f, 0x14, 0x48, 0x85, 0xc0, 0x7f, 0xf, 0x48, 0x85, 0xc0, 0x7f, 0xa, 0x48, 0x85, 0xc0, 0x7f, 0x5, 0x48, 0x85, 0xc0, 0x7f, 0x0, 0xc3}, 155 "JHI": {0x48, 0x85, 0xc0, 0x77, 0x39, 0x48, 0x85, 0xc0, 0x77, 0x34, 0x48, 0x85, 0xc0, 0x77, 0x2f, 0x48, 0x85, 0xc0, 0x77, 0x2a, 0x48, 0x85, 0xc0, 0x77, 0x25, 0x48, 0x85, 0xc0, 0x77, 0x20, 0x66, 0x90, 0x48, 0x85, 0xc0, 0x77, 0x19, 0x48, 0x85, 0xc0, 0x77, 0x14, 0x48, 0x85, 0xc0, 0x77, 0xf, 0x48, 0x85, 0xc0, 0x77, 0xa, 0x48, 0x85, 0xc0, 0x77, 0x5, 0x48, 0x85, 0xc0, 0x77, 0x0, 0xc3}, 156 "JLE": {0x48, 0x85, 0xc0, 0x7e, 0x39, 0x48, 0x85, 0xc0, 0x7e, 0x34, 0x48, 0x85, 0xc0, 0x7e, 0x2f, 0x48, 0x85, 0xc0, 0x7e, 0x2a, 0x48, 0x85, 0xc0, 0x7e, 0x25, 0x48, 0x85, 0xc0, 0x7e, 0x20, 0x66, 0x90, 0x48, 0x85, 0xc0, 0x7e, 0x19, 0x48, 0x85, 0xc0, 0x7e, 0x14, 0x48, 0x85, 0xc0, 0x7e, 0xf, 0x48, 0x85, 0xc0, 0x7e, 0xa, 0x48, 0x85, 0xc0, 0x7e, 0x5, 0x48, 0x85, 0xc0, 0x7e, 0x0, 0xc3}, 157 "JLS": {0x48, 0x85, 0xc0, 0x76, 0x39, 0x48, 0x85, 0xc0, 0x76, 0x34, 0x48, 0x85, 0xc0, 0x76, 0x2f, 0x48, 0x85, 0xc0, 0x76, 0x2a, 0x48, 0x85, 0xc0, 0x76, 0x25, 0x48, 0x85, 0xc0, 0x76, 0x20, 0x66, 0x90, 0x48, 0x85, 0xc0, 0x76, 0x19, 0x48, 0x85, 0xc0, 0x76, 0x14, 0x48, 0x85, 0xc0, 0x76, 0xf, 0x48, 0x85, 0xc0, 0x76, 0xa, 0x48, 0x85, 0xc0, 0x76, 0x5, 0x48, 0x85, 0xc0, 0x76, 0x0, 0xc3}, 158 "JLT": {0x48, 0x85, 0xc0, 0x7c, 0x39, 0x48, 0x85, 0xc0, 0x7c, 0x34, 0x48, 0x85, 0xc0, 0x7c, 0x2f, 0x48, 0x85, 0xc0, 0x7c, 0x2a, 0x48, 0x85, 0xc0, 0x7c, 0x25, 0x48, 0x85, 0xc0, 0x7c, 0x20, 0x66, 0x90, 0x48, 0x85, 0xc0, 0x7c, 0x19, 0x48, 0x85, 0xc0, 0x7c, 0x14, 0x48, 0x85, 0xc0, 0x7c, 0xf, 0x48, 0x85, 0xc0, 0x7c, 0xa, 0x48, 0x85, 0xc0, 0x7c, 0x5, 0x48, 0x85, 0xc0, 0x7c, 0x0, 0xc3}, 159 "JMI": {0x48, 0x85, 0xc0, 0x78, 0x39, 0x48, 0x85, 0xc0, 0x78, 0x34, 0x48, 0x85, 0xc0, 0x78, 0x2f, 0x48, 0x85, 0xc0, 0x78, 0x2a, 0x48, 0x85, 0xc0, 0x78, 0x25, 0x48, 0x85, 0xc0, 0x78, 0x20, 0x66, 0x90, 0x48, 0x85, 0xc0, 0x78, 0x19, 0x48, 0x85, 0xc0, 0x78, 0x14, 0x48, 0x85, 0xc0, 0x78, 0xf, 0x48, 0x85, 0xc0, 0x78, 0xa, 0x48, 0x85, 0xc0, 0x78, 0x5, 0x48, 0x85, 0xc0, 0x78, 0x0, 0xc3}, 160 "JNE": {0x48, 0x85, 0xc0, 0x75, 0x39, 0x48, 0x85, 0xc0, 0x75, 0x34, 0x48, 0x85, 0xc0, 0x75, 0x2f, 0x48, 0x85, 0xc0, 0x75, 0x2a, 0x48, 0x85, 0xc0, 0x75, 0x25, 0x48, 0x85, 0xc0, 0x75, 0x20, 0x66, 0x90, 0x48, 0x85, 0xc0, 0x75, 0x19, 0x48, 0x85, 0xc0, 0x75, 0x14, 0x48, 0x85, 0xc0, 0x75, 0xf, 0x48, 0x85, 0xc0, 0x75, 0xa, 0x48, 0x85, 0xc0, 0x75, 0x5, 0x48, 0x85, 0xc0, 0x75, 0x0, 0xc3}, 161 "JPC": {0x48, 0x85, 0xc0, 0x7b, 0x39, 0x48, 0x85, 0xc0, 0x7b, 0x34, 0x48, 0x85, 0xc0, 0x7b, 0x2f, 0x48, 0x85, 0xc0, 0x7b, 0x2a, 0x48, 0x85, 0xc0, 0x7b, 0x25, 0x48, 0x85, 0xc0, 0x7b, 0x20, 0x66, 0x90, 0x48, 0x85, 0xc0, 0x7b, 0x19, 0x48, 0x85, 0xc0, 0x7b, 0x14, 0x48, 0x85, 0xc0, 0x7b, 0xf, 0x48, 0x85, 0xc0, 0x7b, 0xa, 0x48, 0x85, 0xc0, 0x7b, 0x5, 0x48, 0x85, 0xc0, 0x7b, 0x0, 0xc3}, 162 "JPS": {0x48, 0x85, 0xc0, 0x7a, 0x39, 0x48, 0x85, 0xc0, 0x7a, 0x34, 0x48, 0x85, 0xc0, 0x7a, 0x2f, 0x48, 0x85, 0xc0, 0x7a, 0x2a, 0x48, 0x85, 0xc0, 0x7a, 0x25, 0x48, 0x85, 0xc0, 0x7a, 0x20, 0x66, 0x90, 0x48, 0x85, 0xc0, 0x7a, 0x19, 0x48, 0x85, 0xc0, 0x7a, 0x14, 0x48, 0x85, 0xc0, 0x7a, 0xf, 0x48, 0x85, 0xc0, 0x7a, 0xa, 0x48, 0x85, 0xc0, 0x7a, 0x5, 0x48, 0x85, 0xc0, 0x7a, 0x0, 0xc3}, 163 }, 164 }, 165 { 166 name: "ADDL (register to register)", 167 setupFn: func(assembler Assembler) { 168 assembler.CompileRegisterToRegister(ADDL, RegR10, RegAX) 169 }, 170 jmpInstToExpectedBytes: map[string][]uint8{ 171 "JCC": {0x44, 0x1, 0xd0, 0x73, 0x39, 0x44, 0x1, 0xd0, 0x73, 0x34, 0x44, 0x1, 0xd0, 0x73, 0x2f, 0x44, 0x1, 0xd0, 0x73, 0x2a, 0x44, 0x1, 0xd0, 0x73, 0x25, 0x44, 0x1, 0xd0, 0x73, 0x20, 0x66, 0x90, 0x44, 0x1, 0xd0, 0x73, 0x19, 0x44, 0x1, 0xd0, 0x73, 0x14, 0x44, 0x1, 0xd0, 0x73, 0xf, 0x44, 0x1, 0xd0, 0x73, 0xa, 0x44, 0x1, 0xd0, 0x73, 0x5, 0x44, 0x1, 0xd0, 0x73, 0x0, 0xc3}, 172 "JCS": {0x44, 0x1, 0xd0, 0x72, 0x39, 0x44, 0x1, 0xd0, 0x72, 0x34, 0x44, 0x1, 0xd0, 0x72, 0x2f, 0x44, 0x1, 0xd0, 0x72, 0x2a, 0x44, 0x1, 0xd0, 0x72, 0x25, 0x44, 0x1, 0xd0, 0x72, 0x20, 0x66, 0x90, 0x44, 0x1, 0xd0, 0x72, 0x19, 0x44, 0x1, 0xd0, 0x72, 0x14, 0x44, 0x1, 0xd0, 0x72, 0xf, 0x44, 0x1, 0xd0, 0x72, 0xa, 0x44, 0x1, 0xd0, 0x72, 0x5, 0x44, 0x1, 0xd0, 0x72, 0x0, 0xc3}, 173 "JEQ": {0x44, 0x1, 0xd0, 0x74, 0x39, 0x44, 0x1, 0xd0, 0x74, 0x34, 0x44, 0x1, 0xd0, 0x74, 0x2f, 0x44, 0x1, 0xd0, 0x74, 0x2a, 0x44, 0x1, 0xd0, 0x74, 0x25, 0x44, 0x1, 0xd0, 0x74, 0x20, 0x66, 0x90, 0x44, 0x1, 0xd0, 0x74, 0x19, 0x44, 0x1, 0xd0, 0x74, 0x14, 0x44, 0x1, 0xd0, 0x74, 0xf, 0x44, 0x1, 0xd0, 0x74, 0xa, 0x44, 0x1, 0xd0, 0x74, 0x5, 0x44, 0x1, 0xd0, 0x74, 0x0, 0xc3}, 174 "JGE": {0x44, 0x1, 0xd0, 0x7d, 0x39, 0x44, 0x1, 0xd0, 0x7d, 0x34, 0x44, 0x1, 0xd0, 0x7d, 0x2f, 0x44, 0x1, 0xd0, 0x7d, 0x2a, 0x44, 0x1, 0xd0, 0x7d, 0x25, 0x44, 0x1, 0xd0, 0x7d, 0x20, 0x66, 0x90, 0x44, 0x1, 0xd0, 0x7d, 0x19, 0x44, 0x1, 0xd0, 0x7d, 0x14, 0x44, 0x1, 0xd0, 0x7d, 0xf, 0x44, 0x1, 0xd0, 0x7d, 0xa, 0x44, 0x1, 0xd0, 0x7d, 0x5, 0x44, 0x1, 0xd0, 0x7d, 0x0, 0xc3}, 175 "JGT": {0x44, 0x1, 0xd0, 0x7f, 0x39, 0x44, 0x1, 0xd0, 0x7f, 0x34, 0x44, 0x1, 0xd0, 0x7f, 0x2f, 0x44, 0x1, 0xd0, 0x7f, 0x2a, 0x44, 0x1, 0xd0, 0x7f, 0x25, 0x44, 0x1, 0xd0, 0x7f, 0x20, 0x66, 0x90, 0x44, 0x1, 0xd0, 0x7f, 0x19, 0x44, 0x1, 0xd0, 0x7f, 0x14, 0x44, 0x1, 0xd0, 0x7f, 0xf, 0x44, 0x1, 0xd0, 0x7f, 0xa, 0x44, 0x1, 0xd0, 0x7f, 0x5, 0x44, 0x1, 0xd0, 0x7f, 0x0, 0xc3}, 176 "JHI": {0x44, 0x1, 0xd0, 0x77, 0x39, 0x44, 0x1, 0xd0, 0x77, 0x34, 0x44, 0x1, 0xd0, 0x77, 0x2f, 0x44, 0x1, 0xd0, 0x77, 0x2a, 0x44, 0x1, 0xd0, 0x77, 0x25, 0x44, 0x1, 0xd0, 0x77, 0x20, 0x66, 0x90, 0x44, 0x1, 0xd0, 0x77, 0x19, 0x44, 0x1, 0xd0, 0x77, 0x14, 0x44, 0x1, 0xd0, 0x77, 0xf, 0x44, 0x1, 0xd0, 0x77, 0xa, 0x44, 0x1, 0xd0, 0x77, 0x5, 0x44, 0x1, 0xd0, 0x77, 0x0, 0xc3}, 177 "JLE": {0x44, 0x1, 0xd0, 0x7e, 0x39, 0x44, 0x1, 0xd0, 0x7e, 0x34, 0x44, 0x1, 0xd0, 0x7e, 0x2f, 0x44, 0x1, 0xd0, 0x7e, 0x2a, 0x44, 0x1, 0xd0, 0x7e, 0x25, 0x44, 0x1, 0xd0, 0x7e, 0x20, 0x66, 0x90, 0x44, 0x1, 0xd0, 0x7e, 0x19, 0x44, 0x1, 0xd0, 0x7e, 0x14, 0x44, 0x1, 0xd0, 0x7e, 0xf, 0x44, 0x1, 0xd0, 0x7e, 0xa, 0x44, 0x1, 0xd0, 0x7e, 0x5, 0x44, 0x1, 0xd0, 0x7e, 0x0, 0xc3}, 178 "JLS": {0x44, 0x1, 0xd0, 0x76, 0x39, 0x44, 0x1, 0xd0, 0x76, 0x34, 0x44, 0x1, 0xd0, 0x76, 0x2f, 0x44, 0x1, 0xd0, 0x76, 0x2a, 0x44, 0x1, 0xd0, 0x76, 0x25, 0x44, 0x1, 0xd0, 0x76, 0x20, 0x66, 0x90, 0x44, 0x1, 0xd0, 0x76, 0x19, 0x44, 0x1, 0xd0, 0x76, 0x14, 0x44, 0x1, 0xd0, 0x76, 0xf, 0x44, 0x1, 0xd0, 0x76, 0xa, 0x44, 0x1, 0xd0, 0x76, 0x5, 0x44, 0x1, 0xd0, 0x76, 0x0, 0xc3}, 179 "JLT": {0x44, 0x1, 0xd0, 0x7c, 0x39, 0x44, 0x1, 0xd0, 0x7c, 0x34, 0x44, 0x1, 0xd0, 0x7c, 0x2f, 0x44, 0x1, 0xd0, 0x7c, 0x2a, 0x44, 0x1, 0xd0, 0x7c, 0x25, 0x44, 0x1, 0xd0, 0x7c, 0x20, 0x66, 0x90, 0x44, 0x1, 0xd0, 0x7c, 0x19, 0x44, 0x1, 0xd0, 0x7c, 0x14, 0x44, 0x1, 0xd0, 0x7c, 0xf, 0x44, 0x1, 0xd0, 0x7c, 0xa, 0x44, 0x1, 0xd0, 0x7c, 0x5, 0x44, 0x1, 0xd0, 0x7c, 0x0, 0xc3}, 180 "JMI": {0x44, 0x1, 0xd0, 0x78, 0x37, 0x44, 0x1, 0xd0, 0x78, 0x32, 0x44, 0x1, 0xd0, 0x78, 0x2d, 0x44, 0x1, 0xd0, 0x78, 0x28, 0x44, 0x1, 0xd0, 0x78, 0x23, 0x44, 0x1, 0xd0, 0x78, 0x1e, 0x44, 0x1, 0xd0, 0x78, 0x19, 0x44, 0x1, 0xd0, 0x78, 0x14, 0x44, 0x1, 0xd0, 0x78, 0xf, 0x44, 0x1, 0xd0, 0x78, 0xa, 0x44, 0x1, 0xd0, 0x78, 0x5, 0x44, 0x1, 0xd0, 0x78, 0x0, 0xc3}, 181 "JNE": {0x44, 0x1, 0xd0, 0x75, 0x39, 0x44, 0x1, 0xd0, 0x75, 0x34, 0x44, 0x1, 0xd0, 0x75, 0x2f, 0x44, 0x1, 0xd0, 0x75, 0x2a, 0x44, 0x1, 0xd0, 0x75, 0x25, 0x44, 0x1, 0xd0, 0x75, 0x20, 0x66, 0x90, 0x44, 0x1, 0xd0, 0x75, 0x19, 0x44, 0x1, 0xd0, 0x75, 0x14, 0x44, 0x1, 0xd0, 0x75, 0xf, 0x44, 0x1, 0xd0, 0x75, 0xa, 0x44, 0x1, 0xd0, 0x75, 0x5, 0x44, 0x1, 0xd0, 0x75, 0x0, 0xc3}, 182 "JPC": {0x44, 0x1, 0xd0, 0x7b, 0x37, 0x44, 0x1, 0xd0, 0x7b, 0x32, 0x44, 0x1, 0xd0, 0x7b, 0x2d, 0x44, 0x1, 0xd0, 0x7b, 0x28, 0x44, 0x1, 0xd0, 0x7b, 0x23, 0x44, 0x1, 0xd0, 0x7b, 0x1e, 0x44, 0x1, 0xd0, 0x7b, 0x19, 0x44, 0x1, 0xd0, 0x7b, 0x14, 0x44, 0x1, 0xd0, 0x7b, 0xf, 0x44, 0x1, 0xd0, 0x7b, 0xa, 0x44, 0x1, 0xd0, 0x7b, 0x5, 0x44, 0x1, 0xd0, 0x7b, 0x0, 0xc3}, 183 "JPS": {0x44, 0x1, 0xd0, 0x7a, 0x37, 0x44, 0x1, 0xd0, 0x7a, 0x32, 0x44, 0x1, 0xd0, 0x7a, 0x2d, 0x44, 0x1, 0xd0, 0x7a, 0x28, 0x44, 0x1, 0xd0, 0x7a, 0x23, 0x44, 0x1, 0xd0, 0x7a, 0x1e, 0x44, 0x1, 0xd0, 0x7a, 0x19, 0x44, 0x1, 0xd0, 0x7a, 0x14, 0x44, 0x1, 0xd0, 0x7a, 0xf, 0x44, 0x1, 0xd0, 0x7a, 0xa, 0x44, 0x1, 0xd0, 0x7a, 0x5, 0x44, 0x1, 0xd0, 0x7a, 0x0, 0xc3}, 184 }, 185 }, 186 { 187 name: "ADDL(memory to register)", 188 setupFn: func(assembler Assembler) { 189 assembler.CompileMemoryToRegister(ADDL, RegR10, 1234, RegAX) 190 }, 191 jmpInstToExpectedBytes: map[string][]uint8{ 192 "JCC": {0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x72, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x69, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x52, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x49, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x32, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x29, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x12, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x9, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x0, 0xc3}, 193 "JCS": {0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x72, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x69, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x52, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x49, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x32, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x29, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x12, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x9, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x0, 0xc3}, 194 "JEQ": {0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x72, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x69, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x52, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x49, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x32, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x29, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x12, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x9, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x0, 0xc3}, 195 "JGE": {0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x72, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x69, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x52, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x49, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x32, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x29, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x12, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x9, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x0, 0xc3}, 196 "JGT": {0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x72, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x69, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x52, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x49, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x32, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x29, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x12, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x9, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x0, 0xc3}, 197 "JHI": {0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x72, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x69, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x52, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x49, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x32, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x29, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x12, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x9, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x0, 0xc3}, 198 "JLE": {0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x72, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x69, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x52, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x49, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x32, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x29, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x12, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x9, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x0, 0xc3}, 199 "JLS": {0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x72, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x69, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x52, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x49, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x32, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x29, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x12, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x9, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x0, 0xc3}, 200 "JLT": {0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x72, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x69, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x52, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x49, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x32, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x29, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x12, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x9, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x0, 0xc3}, 201 "JMI": {0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x63, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x5a, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x51, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x48, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x3f, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x36, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x2d, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x24, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x1b, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x12, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x9, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x0, 0xc3}, 202 "JNE": {0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x72, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x69, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x52, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x49, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x32, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x29, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x12, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x9, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x0, 0xc3}, 203 "JPC": {0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x63, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x5a, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x51, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x48, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x3f, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x36, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x2d, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x24, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x1b, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x12, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x9, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x0, 0xc3}, 204 "JPS": {0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x63, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x5a, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x51, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x48, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x3f, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x36, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x2d, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x24, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x1b, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x12, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x9, 0x41, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x0, 0xc3}, 205 }, 206 }, 207 { 208 name: "ADDQ (register to register)", 209 setupFn: func(assembler Assembler) { 210 assembler.CompileRegisterToRegister(ADDQ, RegR10, RegAX) 211 }, 212 jmpInstToExpectedBytes: map[string][]uint8{ 213 "JCC": {0x4c, 0x1, 0xd0, 0x73, 0x39, 0x4c, 0x1, 0xd0, 0x73, 0x34, 0x4c, 0x1, 0xd0, 0x73, 0x2f, 0x4c, 0x1, 0xd0, 0x73, 0x2a, 0x4c, 0x1, 0xd0, 0x73, 0x25, 0x4c, 0x1, 0xd0, 0x73, 0x20, 0x66, 0x90, 0x4c, 0x1, 0xd0, 0x73, 0x19, 0x4c, 0x1, 0xd0, 0x73, 0x14, 0x4c, 0x1, 0xd0, 0x73, 0xf, 0x4c, 0x1, 0xd0, 0x73, 0xa, 0x4c, 0x1, 0xd0, 0x73, 0x5, 0x4c, 0x1, 0xd0, 0x73, 0x0, 0xc3}, 214 "JCS": {0x4c, 0x1, 0xd0, 0x72, 0x39, 0x4c, 0x1, 0xd0, 0x72, 0x34, 0x4c, 0x1, 0xd0, 0x72, 0x2f, 0x4c, 0x1, 0xd0, 0x72, 0x2a, 0x4c, 0x1, 0xd0, 0x72, 0x25, 0x4c, 0x1, 0xd0, 0x72, 0x20, 0x66, 0x90, 0x4c, 0x1, 0xd0, 0x72, 0x19, 0x4c, 0x1, 0xd0, 0x72, 0x14, 0x4c, 0x1, 0xd0, 0x72, 0xf, 0x4c, 0x1, 0xd0, 0x72, 0xa, 0x4c, 0x1, 0xd0, 0x72, 0x5, 0x4c, 0x1, 0xd0, 0x72, 0x0, 0xc3}, 215 "JEQ": {0x4c, 0x1, 0xd0, 0x74, 0x39, 0x4c, 0x1, 0xd0, 0x74, 0x34, 0x4c, 0x1, 0xd0, 0x74, 0x2f, 0x4c, 0x1, 0xd0, 0x74, 0x2a, 0x4c, 0x1, 0xd0, 0x74, 0x25, 0x4c, 0x1, 0xd0, 0x74, 0x20, 0x66, 0x90, 0x4c, 0x1, 0xd0, 0x74, 0x19, 0x4c, 0x1, 0xd0, 0x74, 0x14, 0x4c, 0x1, 0xd0, 0x74, 0xf, 0x4c, 0x1, 0xd0, 0x74, 0xa, 0x4c, 0x1, 0xd0, 0x74, 0x5, 0x4c, 0x1, 0xd0, 0x74, 0x0, 0xc3}, 216 "JGE": {0x4c, 0x1, 0xd0, 0x7d, 0x39, 0x4c, 0x1, 0xd0, 0x7d, 0x34, 0x4c, 0x1, 0xd0, 0x7d, 0x2f, 0x4c, 0x1, 0xd0, 0x7d, 0x2a, 0x4c, 0x1, 0xd0, 0x7d, 0x25, 0x4c, 0x1, 0xd0, 0x7d, 0x20, 0x66, 0x90, 0x4c, 0x1, 0xd0, 0x7d, 0x19, 0x4c, 0x1, 0xd0, 0x7d, 0x14, 0x4c, 0x1, 0xd0, 0x7d, 0xf, 0x4c, 0x1, 0xd0, 0x7d, 0xa, 0x4c, 0x1, 0xd0, 0x7d, 0x5, 0x4c, 0x1, 0xd0, 0x7d, 0x0, 0xc3}, 217 "JGT": {0x4c, 0x1, 0xd0, 0x7f, 0x39, 0x4c, 0x1, 0xd0, 0x7f, 0x34, 0x4c, 0x1, 0xd0, 0x7f, 0x2f, 0x4c, 0x1, 0xd0, 0x7f, 0x2a, 0x4c, 0x1, 0xd0, 0x7f, 0x25, 0x4c, 0x1, 0xd0, 0x7f, 0x20, 0x66, 0x90, 0x4c, 0x1, 0xd0, 0x7f, 0x19, 0x4c, 0x1, 0xd0, 0x7f, 0x14, 0x4c, 0x1, 0xd0, 0x7f, 0xf, 0x4c, 0x1, 0xd0, 0x7f, 0xa, 0x4c, 0x1, 0xd0, 0x7f, 0x5, 0x4c, 0x1, 0xd0, 0x7f, 0x0, 0xc3}, 218 "JHI": {0x4c, 0x1, 0xd0, 0x77, 0x39, 0x4c, 0x1, 0xd0, 0x77, 0x34, 0x4c, 0x1, 0xd0, 0x77, 0x2f, 0x4c, 0x1, 0xd0, 0x77, 0x2a, 0x4c, 0x1, 0xd0, 0x77, 0x25, 0x4c, 0x1, 0xd0, 0x77, 0x20, 0x66, 0x90, 0x4c, 0x1, 0xd0, 0x77, 0x19, 0x4c, 0x1, 0xd0, 0x77, 0x14, 0x4c, 0x1, 0xd0, 0x77, 0xf, 0x4c, 0x1, 0xd0, 0x77, 0xa, 0x4c, 0x1, 0xd0, 0x77, 0x5, 0x4c, 0x1, 0xd0, 0x77, 0x0, 0xc3}, 219 "JLE": {0x4c, 0x1, 0xd0, 0x7e, 0x39, 0x4c, 0x1, 0xd0, 0x7e, 0x34, 0x4c, 0x1, 0xd0, 0x7e, 0x2f, 0x4c, 0x1, 0xd0, 0x7e, 0x2a, 0x4c, 0x1, 0xd0, 0x7e, 0x25, 0x4c, 0x1, 0xd0, 0x7e, 0x20, 0x66, 0x90, 0x4c, 0x1, 0xd0, 0x7e, 0x19, 0x4c, 0x1, 0xd0, 0x7e, 0x14, 0x4c, 0x1, 0xd0, 0x7e, 0xf, 0x4c, 0x1, 0xd0, 0x7e, 0xa, 0x4c, 0x1, 0xd0, 0x7e, 0x5, 0x4c, 0x1, 0xd0, 0x7e, 0x0, 0xc3}, 220 "JLS": {0x4c, 0x1, 0xd0, 0x76, 0x39, 0x4c, 0x1, 0xd0, 0x76, 0x34, 0x4c, 0x1, 0xd0, 0x76, 0x2f, 0x4c, 0x1, 0xd0, 0x76, 0x2a, 0x4c, 0x1, 0xd0, 0x76, 0x25, 0x4c, 0x1, 0xd0, 0x76, 0x20, 0x66, 0x90, 0x4c, 0x1, 0xd0, 0x76, 0x19, 0x4c, 0x1, 0xd0, 0x76, 0x14, 0x4c, 0x1, 0xd0, 0x76, 0xf, 0x4c, 0x1, 0xd0, 0x76, 0xa, 0x4c, 0x1, 0xd0, 0x76, 0x5, 0x4c, 0x1, 0xd0, 0x76, 0x0, 0xc3}, 221 "JLT": {0x4c, 0x1, 0xd0, 0x7c, 0x39, 0x4c, 0x1, 0xd0, 0x7c, 0x34, 0x4c, 0x1, 0xd0, 0x7c, 0x2f, 0x4c, 0x1, 0xd0, 0x7c, 0x2a, 0x4c, 0x1, 0xd0, 0x7c, 0x25, 0x4c, 0x1, 0xd0, 0x7c, 0x20, 0x66, 0x90, 0x4c, 0x1, 0xd0, 0x7c, 0x19, 0x4c, 0x1, 0xd0, 0x7c, 0x14, 0x4c, 0x1, 0xd0, 0x7c, 0xf, 0x4c, 0x1, 0xd0, 0x7c, 0xa, 0x4c, 0x1, 0xd0, 0x7c, 0x5, 0x4c, 0x1, 0xd0, 0x7c, 0x0, 0xc3}, 222 "JMI": {0x4c, 0x1, 0xd0, 0x78, 0x37, 0x4c, 0x1, 0xd0, 0x78, 0x32, 0x4c, 0x1, 0xd0, 0x78, 0x2d, 0x4c, 0x1, 0xd0, 0x78, 0x28, 0x4c, 0x1, 0xd0, 0x78, 0x23, 0x4c, 0x1, 0xd0, 0x78, 0x1e, 0x4c, 0x1, 0xd0, 0x78, 0x19, 0x4c, 0x1, 0xd0, 0x78, 0x14, 0x4c, 0x1, 0xd0, 0x78, 0xf, 0x4c, 0x1, 0xd0, 0x78, 0xa, 0x4c, 0x1, 0xd0, 0x78, 0x5, 0x4c, 0x1, 0xd0, 0x78, 0x0, 0xc3}, 223 "JNE": {0x4c, 0x1, 0xd0, 0x75, 0x39, 0x4c, 0x1, 0xd0, 0x75, 0x34, 0x4c, 0x1, 0xd0, 0x75, 0x2f, 0x4c, 0x1, 0xd0, 0x75, 0x2a, 0x4c, 0x1, 0xd0, 0x75, 0x25, 0x4c, 0x1, 0xd0, 0x75, 0x20, 0x66, 0x90, 0x4c, 0x1, 0xd0, 0x75, 0x19, 0x4c, 0x1, 0xd0, 0x75, 0x14, 0x4c, 0x1, 0xd0, 0x75, 0xf, 0x4c, 0x1, 0xd0, 0x75, 0xa, 0x4c, 0x1, 0xd0, 0x75, 0x5, 0x4c, 0x1, 0xd0, 0x75, 0x0, 0xc3}, 224 "JPC": {0x4c, 0x1, 0xd0, 0x7b, 0x37, 0x4c, 0x1, 0xd0, 0x7b, 0x32, 0x4c, 0x1, 0xd0, 0x7b, 0x2d, 0x4c, 0x1, 0xd0, 0x7b, 0x28, 0x4c, 0x1, 0xd0, 0x7b, 0x23, 0x4c, 0x1, 0xd0, 0x7b, 0x1e, 0x4c, 0x1, 0xd0, 0x7b, 0x19, 0x4c, 0x1, 0xd0, 0x7b, 0x14, 0x4c, 0x1, 0xd0, 0x7b, 0xf, 0x4c, 0x1, 0xd0, 0x7b, 0xa, 0x4c, 0x1, 0xd0, 0x7b, 0x5, 0x4c, 0x1, 0xd0, 0x7b, 0x0, 0xc3}, 225 "JPS": {0x4c, 0x1, 0xd0, 0x7a, 0x37, 0x4c, 0x1, 0xd0, 0x7a, 0x32, 0x4c, 0x1, 0xd0, 0x7a, 0x2d, 0x4c, 0x1, 0xd0, 0x7a, 0x28, 0x4c, 0x1, 0xd0, 0x7a, 0x23, 0x4c, 0x1, 0xd0, 0x7a, 0x1e, 0x4c, 0x1, 0xd0, 0x7a, 0x19, 0x4c, 0x1, 0xd0, 0x7a, 0x14, 0x4c, 0x1, 0xd0, 0x7a, 0xf, 0x4c, 0x1, 0xd0, 0x7a, 0xa, 0x4c, 0x1, 0xd0, 0x7a, 0x5, 0x4c, 0x1, 0xd0, 0x7a, 0x0, 0xc3}, 226 }, 227 }, 228 { 229 name: "ADDQ(memory to register)", 230 setupFn: func(assembler Assembler) { 231 assembler.CompileMemoryToRegister(ADDQ, RegR10, 1234, RegAX) 232 }, 233 jmpInstToExpectedBytes: map[string][]uint8{ 234 "JCC": {0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x72, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x69, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x52, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x49, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x32, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x29, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x12, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x9, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x0, 0xc3}, 235 "JCS": {0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x72, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x69, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x52, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x49, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x32, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x29, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x12, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x9, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x0, 0xc3}, 236 "JEQ": {0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x72, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x69, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x52, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x49, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x32, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x29, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x12, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x9, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x0, 0xc3}, 237 "JGE": {0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x72, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x69, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x52, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x49, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x32, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x29, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x12, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x9, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x0, 0xc3}, 238 "JGT": {0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x72, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x69, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x52, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x49, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x32, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x29, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x12, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x9, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x0, 0xc3}, 239 "JHI": {0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x72, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x69, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x52, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x49, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x32, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x29, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x12, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x9, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x0, 0xc3}, 240 "JLE": {0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x72, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x69, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x52, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x49, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x32, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x29, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x12, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x9, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x0, 0xc3}, 241 "JLS": {0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x72, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x69, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x52, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x49, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x32, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x29, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x12, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x9, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x0, 0xc3}, 242 "JLT": {0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x72, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x69, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x52, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x49, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x32, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x29, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x12, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x9, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x0, 0xc3}, 243 "JMI": {0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x63, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x5a, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x51, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x48, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x3f, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x36, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x2d, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x24, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x1b, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x12, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x9, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x0, 0xc3}, 244 "JNE": {0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x72, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x69, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x52, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x49, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x32, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x29, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x12, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x9, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x0, 0xc3}, 245 "JPC": {0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x63, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x5a, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x51, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x48, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x3f, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x36, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x2d, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x24, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x1b, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x12, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x9, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x0, 0xc3}, 246 "JPS": {0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x63, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x5a, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x51, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x48, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x3f, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x36, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x2d, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x24, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x1b, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x12, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x9, 0x49, 0x3, 0x82, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x0, 0xc3}, 247 }, 248 }, 249 { 250 name: "ADDQ(const to register)", 251 setupFn: func(assembler Assembler) { 252 assembler.CompileConstToRegister(ADDQ, 1234, RegR10) 253 }, 254 jmpInstToExpectedBytes: map[string][]uint8{ 255 "JCC": {0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x72, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x69, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x52, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x49, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x32, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x29, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x12, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x9, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x73, 0x0, 0xc3}, 256 "JCS": {0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x72, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x69, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x52, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x49, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x32, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x29, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x12, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x9, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x72, 0x0, 0xc3}, 257 "JEQ": {0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x72, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x69, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x52, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x49, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x32, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x29, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x12, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x9, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x74, 0x0, 0xc3}, 258 "JGE": {0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x72, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x69, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x52, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x49, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x32, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x29, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x12, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x9, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7d, 0x0, 0xc3}, 259 "JGT": {0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x72, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x69, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x52, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x49, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x32, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x29, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x12, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x9, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7f, 0x0, 0xc3}, 260 "JHI": {0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x72, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x69, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x52, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x49, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x32, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x29, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x12, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x9, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x77, 0x0, 0xc3}, 261 "JLE": {0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x72, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x69, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x52, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x49, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x32, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x29, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x12, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x9, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7e, 0x0, 0xc3}, 262 "JLS": {0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x72, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x69, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x52, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x49, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x32, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x29, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x12, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x9, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x76, 0x0, 0xc3}, 263 "JLT": {0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x72, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x69, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x52, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x49, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x32, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x29, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x12, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x9, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7c, 0x0, 0xc3}, 264 "JMI": {0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x63, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x5a, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x51, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x48, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x3f, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x36, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x2d, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x24, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x1b, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x12, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x9, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x78, 0x0, 0xc3}, 265 "JNE": {0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x72, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x69, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x52, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x49, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x32, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x29, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x12, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x9, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x75, 0x0, 0xc3}, 266 "JPC": {0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x63, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x5a, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x51, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x48, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x3f, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x36, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x2d, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x24, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x1b, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x12, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x9, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7b, 0x0, 0xc3}, 267 "JPS": {0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x63, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x5a, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x51, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x48, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x3f, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x36, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x2d, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x24, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x1b, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x12, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x9, 0x49, 0x81, 0xc2, 0xd2, 0x4, 0x0, 0x0, 0x7a, 0x0, 0xc3}, 268 }, 269 }, 270 { 271 name: "SUBL", 272 setupFn: func(assembler Assembler) { 273 assembler.CompileRegisterToRegister(SUBL, RegR10, RegAX) 274 }, 275 jmpInstToExpectedBytes: map[string][]uint8{ 276 "JCC": {0x44, 0x29, 0xd0, 0x73, 0x39, 0x44, 0x29, 0xd0, 0x73, 0x34, 0x44, 0x29, 0xd0, 0x73, 0x2f, 0x44, 0x29, 0xd0, 0x73, 0x2a, 0x44, 0x29, 0xd0, 0x73, 0x25, 0x44, 0x29, 0xd0, 0x73, 0x20, 0x66, 0x90, 0x44, 0x29, 0xd0, 0x73, 0x19, 0x44, 0x29, 0xd0, 0x73, 0x14, 0x44, 0x29, 0xd0, 0x73, 0xf, 0x44, 0x29, 0xd0, 0x73, 0xa, 0x44, 0x29, 0xd0, 0x73, 0x5, 0x44, 0x29, 0xd0, 0x73, 0x0, 0xc3}, 277 "JCS": {0x44, 0x29, 0xd0, 0x72, 0x39, 0x44, 0x29, 0xd0, 0x72, 0x34, 0x44, 0x29, 0xd0, 0x72, 0x2f, 0x44, 0x29, 0xd0, 0x72, 0x2a, 0x44, 0x29, 0xd0, 0x72, 0x25, 0x44, 0x29, 0xd0, 0x72, 0x20, 0x66, 0x90, 0x44, 0x29, 0xd0, 0x72, 0x19, 0x44, 0x29, 0xd0, 0x72, 0x14, 0x44, 0x29, 0xd0, 0x72, 0xf, 0x44, 0x29, 0xd0, 0x72, 0xa, 0x44, 0x29, 0xd0, 0x72, 0x5, 0x44, 0x29, 0xd0, 0x72, 0x0, 0xc3}, 278 "JEQ": {0x44, 0x29, 0xd0, 0x74, 0x39, 0x44, 0x29, 0xd0, 0x74, 0x34, 0x44, 0x29, 0xd0, 0x74, 0x2f, 0x44, 0x29, 0xd0, 0x74, 0x2a, 0x44, 0x29, 0xd0, 0x74, 0x25, 0x44, 0x29, 0xd0, 0x74, 0x20, 0x66, 0x90, 0x44, 0x29, 0xd0, 0x74, 0x19, 0x44, 0x29, 0xd0, 0x74, 0x14, 0x44, 0x29, 0xd0, 0x74, 0xf, 0x44, 0x29, 0xd0, 0x74, 0xa, 0x44, 0x29, 0xd0, 0x74, 0x5, 0x44, 0x29, 0xd0, 0x74, 0x0, 0xc3}, 279 "JGE": {0x44, 0x29, 0xd0, 0x7d, 0x39, 0x44, 0x29, 0xd0, 0x7d, 0x34, 0x44, 0x29, 0xd0, 0x7d, 0x2f, 0x44, 0x29, 0xd0, 0x7d, 0x2a, 0x44, 0x29, 0xd0, 0x7d, 0x25, 0x44, 0x29, 0xd0, 0x7d, 0x20, 0x66, 0x90, 0x44, 0x29, 0xd0, 0x7d, 0x19, 0x44, 0x29, 0xd0, 0x7d, 0x14, 0x44, 0x29, 0xd0, 0x7d, 0xf, 0x44, 0x29, 0xd0, 0x7d, 0xa, 0x44, 0x29, 0xd0, 0x7d, 0x5, 0x44, 0x29, 0xd0, 0x7d, 0x0, 0xc3}, 280 "JGT": {0x44, 0x29, 0xd0, 0x7f, 0x39, 0x44, 0x29, 0xd0, 0x7f, 0x34, 0x44, 0x29, 0xd0, 0x7f, 0x2f, 0x44, 0x29, 0xd0, 0x7f, 0x2a, 0x44, 0x29, 0xd0, 0x7f, 0x25, 0x44, 0x29, 0xd0, 0x7f, 0x20, 0x66, 0x90, 0x44, 0x29, 0xd0, 0x7f, 0x19, 0x44, 0x29, 0xd0, 0x7f, 0x14, 0x44, 0x29, 0xd0, 0x7f, 0xf, 0x44, 0x29, 0xd0, 0x7f, 0xa, 0x44, 0x29, 0xd0, 0x7f, 0x5, 0x44, 0x29, 0xd0, 0x7f, 0x0, 0xc3}, 281 "JHI": {0x44, 0x29, 0xd0, 0x77, 0x39, 0x44, 0x29, 0xd0, 0x77, 0x34, 0x44, 0x29, 0xd0, 0x77, 0x2f, 0x44, 0x29, 0xd0, 0x77, 0x2a, 0x44, 0x29, 0xd0, 0x77, 0x25, 0x44, 0x29, 0xd0, 0x77, 0x20, 0x66, 0x90, 0x44, 0x29, 0xd0, 0x77, 0x19, 0x44, 0x29, 0xd0, 0x77, 0x14, 0x44, 0x29, 0xd0, 0x77, 0xf, 0x44, 0x29, 0xd0, 0x77, 0xa, 0x44, 0x29, 0xd0, 0x77, 0x5, 0x44, 0x29, 0xd0, 0x77, 0x0, 0xc3}, 282 "JLE": {0x44, 0x29, 0xd0, 0x7e, 0x39, 0x44, 0x29, 0xd0, 0x7e, 0x34, 0x44, 0x29, 0xd0, 0x7e, 0x2f, 0x44, 0x29, 0xd0, 0x7e, 0x2a, 0x44, 0x29, 0xd0, 0x7e, 0x25, 0x44, 0x29, 0xd0, 0x7e, 0x20, 0x66, 0x90, 0x44, 0x29, 0xd0, 0x7e, 0x19, 0x44, 0x29, 0xd0, 0x7e, 0x14, 0x44, 0x29, 0xd0, 0x7e, 0xf, 0x44, 0x29, 0xd0, 0x7e, 0xa, 0x44, 0x29, 0xd0, 0x7e, 0x5, 0x44, 0x29, 0xd0, 0x7e, 0x0, 0xc3}, 283 "JLS": {0x44, 0x29, 0xd0, 0x76, 0x39, 0x44, 0x29, 0xd0, 0x76, 0x34, 0x44, 0x29, 0xd0, 0x76, 0x2f, 0x44, 0x29, 0xd0, 0x76, 0x2a, 0x44, 0x29, 0xd0, 0x76, 0x25, 0x44, 0x29, 0xd0, 0x76, 0x20, 0x66, 0x90, 0x44, 0x29, 0xd0, 0x76, 0x19, 0x44, 0x29, 0xd0, 0x76, 0x14, 0x44, 0x29, 0xd0, 0x76, 0xf, 0x44, 0x29, 0xd0, 0x76, 0xa, 0x44, 0x29, 0xd0, 0x76, 0x5, 0x44, 0x29, 0xd0, 0x76, 0x0, 0xc3}, 284 "JLT": {0x44, 0x29, 0xd0, 0x7c, 0x39, 0x44, 0x29, 0xd0, 0x7c, 0x34, 0x44, 0x29, 0xd0, 0x7c, 0x2f, 0x44, 0x29, 0xd0, 0x7c, 0x2a, 0x44, 0x29, 0xd0, 0x7c, 0x25, 0x44, 0x29, 0xd0, 0x7c, 0x20, 0x66, 0x90, 0x44, 0x29, 0xd0, 0x7c, 0x19, 0x44, 0x29, 0xd0, 0x7c, 0x14, 0x44, 0x29, 0xd0, 0x7c, 0xf, 0x44, 0x29, 0xd0, 0x7c, 0xa, 0x44, 0x29, 0xd0, 0x7c, 0x5, 0x44, 0x29, 0xd0, 0x7c, 0x0, 0xc3}, 285 "JMI": {0x44, 0x29, 0xd0, 0x78, 0x37, 0x44, 0x29, 0xd0, 0x78, 0x32, 0x44, 0x29, 0xd0, 0x78, 0x2d, 0x44, 0x29, 0xd0, 0x78, 0x28, 0x44, 0x29, 0xd0, 0x78, 0x23, 0x44, 0x29, 0xd0, 0x78, 0x1e, 0x44, 0x29, 0xd0, 0x78, 0x19, 0x44, 0x29, 0xd0, 0x78, 0x14, 0x44, 0x29, 0xd0, 0x78, 0xf, 0x44, 0x29, 0xd0, 0x78, 0xa, 0x44, 0x29, 0xd0, 0x78, 0x5, 0x44, 0x29, 0xd0, 0x78, 0x0, 0xc3}, 286 "JNE": {0x44, 0x29, 0xd0, 0x75, 0x39, 0x44, 0x29, 0xd0, 0x75, 0x34, 0x44, 0x29, 0xd0, 0x75, 0x2f, 0x44, 0x29, 0xd0, 0x75, 0x2a, 0x44, 0x29, 0xd0, 0x75, 0x25, 0x44, 0x29, 0xd0, 0x75, 0x20, 0x66, 0x90, 0x44, 0x29, 0xd0, 0x75, 0x19, 0x44, 0x29, 0xd0, 0x75, 0x14, 0x44, 0x29, 0xd0, 0x75, 0xf, 0x44, 0x29, 0xd0, 0x75, 0xa, 0x44, 0x29, 0xd0, 0x75, 0x5, 0x44, 0x29, 0xd0, 0x75, 0x0, 0xc3}, 287 "JPC": {0x44, 0x29, 0xd0, 0x7b, 0x37, 0x44, 0x29, 0xd0, 0x7b, 0x32, 0x44, 0x29, 0xd0, 0x7b, 0x2d, 0x44, 0x29, 0xd0, 0x7b, 0x28, 0x44, 0x29, 0xd0, 0x7b, 0x23, 0x44, 0x29, 0xd0, 0x7b, 0x1e, 0x44, 0x29, 0xd0, 0x7b, 0x19, 0x44, 0x29, 0xd0, 0x7b, 0x14, 0x44, 0x29, 0xd0, 0x7b, 0xf, 0x44, 0x29, 0xd0, 0x7b, 0xa, 0x44, 0x29, 0xd0, 0x7b, 0x5, 0x44, 0x29, 0xd0, 0x7b, 0x0, 0xc3}, 288 "JPS": {0x44, 0x29, 0xd0, 0x7a, 0x37, 0x44, 0x29, 0xd0, 0x7a, 0x32, 0x44, 0x29, 0xd0, 0x7a, 0x2d, 0x44, 0x29, 0xd0, 0x7a, 0x28, 0x44, 0x29, 0xd0, 0x7a, 0x23, 0x44, 0x29, 0xd0, 0x7a, 0x1e, 0x44, 0x29, 0xd0, 0x7a, 0x19, 0x44, 0x29, 0xd0, 0x7a, 0x14, 0x44, 0x29, 0xd0, 0x7a, 0xf, 0x44, 0x29, 0xd0, 0x7a, 0xa, 0x44, 0x29, 0xd0, 0x7a, 0x5, 0x44, 0x29, 0xd0, 0x7a, 0x0, 0xc3}, 289 }, 290 }, 291 { 292 name: "SUBQ (register to register)", 293 setupFn: func(assembler Assembler) { 294 assembler.CompileRegisterToRegister(SUBQ, RegR10, RegAX) 295 }, 296 jmpInstToExpectedBytes: map[string][]uint8{ 297 "JCC": {0x4c, 0x29, 0xd0, 0x73, 0x39, 0x4c, 0x29, 0xd0, 0x73, 0x34, 0x4c, 0x29, 0xd0, 0x73, 0x2f, 0x4c, 0x29, 0xd0, 0x73, 0x2a, 0x4c, 0x29, 0xd0, 0x73, 0x25, 0x4c, 0x29, 0xd0, 0x73, 0x20, 0x66, 0x90, 0x4c, 0x29, 0xd0, 0x73, 0x19, 0x4c, 0x29, 0xd0, 0x73, 0x14, 0x4c, 0x29, 0xd0, 0x73, 0xf, 0x4c, 0x29, 0xd0, 0x73, 0xa, 0x4c, 0x29, 0xd0, 0x73, 0x5, 0x4c, 0x29, 0xd0, 0x73, 0x0, 0xc3}, 298 "JCS": {0x4c, 0x29, 0xd0, 0x72, 0x39, 0x4c, 0x29, 0xd0, 0x72, 0x34, 0x4c, 0x29, 0xd0, 0x72, 0x2f, 0x4c, 0x29, 0xd0, 0x72, 0x2a, 0x4c, 0x29, 0xd0, 0x72, 0x25, 0x4c, 0x29, 0xd0, 0x72, 0x20, 0x66, 0x90, 0x4c, 0x29, 0xd0, 0x72, 0x19, 0x4c, 0x29, 0xd0, 0x72, 0x14, 0x4c, 0x29, 0xd0, 0x72, 0xf, 0x4c, 0x29, 0xd0, 0x72, 0xa, 0x4c, 0x29, 0xd0, 0x72, 0x5, 0x4c, 0x29, 0xd0, 0x72, 0x0, 0xc3}, 299 "JEQ": {0x4c, 0x29, 0xd0, 0x74, 0x39, 0x4c, 0x29, 0xd0, 0x74, 0x34, 0x4c, 0x29, 0xd0, 0x74, 0x2f, 0x4c, 0x29, 0xd0, 0x74, 0x2a, 0x4c, 0x29, 0xd0, 0x74, 0x25, 0x4c, 0x29, 0xd0, 0x74, 0x20, 0x66, 0x90, 0x4c, 0x29, 0xd0, 0x74, 0x19, 0x4c, 0x29, 0xd0, 0x74, 0x14, 0x4c, 0x29, 0xd0, 0x74, 0xf, 0x4c, 0x29, 0xd0, 0x74, 0xa, 0x4c, 0x29, 0xd0, 0x74, 0x5, 0x4c, 0x29, 0xd0, 0x74, 0x0, 0xc3}, 300 "JGE": {0x4c, 0x29, 0xd0, 0x7d, 0x39, 0x4c, 0x29, 0xd0, 0x7d, 0x34, 0x4c, 0x29, 0xd0, 0x7d, 0x2f, 0x4c, 0x29, 0xd0, 0x7d, 0x2a, 0x4c, 0x29, 0xd0, 0x7d, 0x25, 0x4c, 0x29, 0xd0, 0x7d, 0x20, 0x66, 0x90, 0x4c, 0x29, 0xd0, 0x7d, 0x19, 0x4c, 0x29, 0xd0, 0x7d, 0x14, 0x4c, 0x29, 0xd0, 0x7d, 0xf, 0x4c, 0x29, 0xd0, 0x7d, 0xa, 0x4c, 0x29, 0xd0, 0x7d, 0x5, 0x4c, 0x29, 0xd0, 0x7d, 0x0, 0xc3}, 301 "JGT": {0x4c, 0x29, 0xd0, 0x7f, 0x39, 0x4c, 0x29, 0xd0, 0x7f, 0x34, 0x4c, 0x29, 0xd0, 0x7f, 0x2f, 0x4c, 0x29, 0xd0, 0x7f, 0x2a, 0x4c, 0x29, 0xd0, 0x7f, 0x25, 0x4c, 0x29, 0xd0, 0x7f, 0x20, 0x66, 0x90, 0x4c, 0x29, 0xd0, 0x7f, 0x19, 0x4c, 0x29, 0xd0, 0x7f, 0x14, 0x4c, 0x29, 0xd0, 0x7f, 0xf, 0x4c, 0x29, 0xd0, 0x7f, 0xa, 0x4c, 0x29, 0xd0, 0x7f, 0x5, 0x4c, 0x29, 0xd0, 0x7f, 0x0, 0xc3}, 302 "JHI": {0x4c, 0x29, 0xd0, 0x77, 0x39, 0x4c, 0x29, 0xd0, 0x77, 0x34, 0x4c, 0x29, 0xd0, 0x77, 0x2f, 0x4c, 0x29, 0xd0, 0x77, 0x2a, 0x4c, 0x29, 0xd0, 0x77, 0x25, 0x4c, 0x29, 0xd0, 0x77, 0x20, 0x66, 0x90, 0x4c, 0x29, 0xd0, 0x77, 0x19, 0x4c, 0x29, 0xd0, 0x77, 0x14, 0x4c, 0x29, 0xd0, 0x77, 0xf, 0x4c, 0x29, 0xd0, 0x77, 0xa, 0x4c, 0x29, 0xd0, 0x77, 0x5, 0x4c, 0x29, 0xd0, 0x77, 0x0, 0xc3}, 303 "JLE": {0x4c, 0x29, 0xd0, 0x7e, 0x39, 0x4c, 0x29, 0xd0, 0x7e, 0x34, 0x4c, 0x29, 0xd0, 0x7e, 0x2f, 0x4c, 0x29, 0xd0, 0x7e, 0x2a, 0x4c, 0x29, 0xd0, 0x7e, 0x25, 0x4c, 0x29, 0xd0, 0x7e, 0x20, 0x66, 0x90, 0x4c, 0x29, 0xd0, 0x7e, 0x19, 0x4c, 0x29, 0xd0, 0x7e, 0x14, 0x4c, 0x29, 0xd0, 0x7e, 0xf, 0x4c, 0x29, 0xd0, 0x7e, 0xa, 0x4c, 0x29, 0xd0, 0x7e, 0x5, 0x4c, 0x29, 0xd0, 0x7e, 0x0, 0xc3}, 304 "JLS": {0x4c, 0x29, 0xd0, 0x76, 0x39, 0x4c, 0x29, 0xd0, 0x76, 0x34, 0x4c, 0x29, 0xd0, 0x76, 0x2f, 0x4c, 0x29, 0xd0, 0x76, 0x2a, 0x4c, 0x29, 0xd0, 0x76, 0x25, 0x4c, 0x29, 0xd0, 0x76, 0x20, 0x66, 0x90, 0x4c, 0x29, 0xd0, 0x76, 0x19, 0x4c, 0x29, 0xd0, 0x76, 0x14, 0x4c, 0x29, 0xd0, 0x76, 0xf, 0x4c, 0x29, 0xd0, 0x76, 0xa, 0x4c, 0x29, 0xd0, 0x76, 0x5, 0x4c, 0x29, 0xd0, 0x76, 0x0, 0xc3}, 305 "JLT": {0x4c, 0x29, 0xd0, 0x7c, 0x39, 0x4c, 0x29, 0xd0, 0x7c, 0x34, 0x4c, 0x29, 0xd0, 0x7c, 0x2f, 0x4c, 0x29, 0xd0, 0x7c, 0x2a, 0x4c, 0x29, 0xd0, 0x7c, 0x25, 0x4c, 0x29, 0xd0, 0x7c, 0x20, 0x66, 0x90, 0x4c, 0x29, 0xd0, 0x7c, 0x19, 0x4c, 0x29, 0xd0, 0x7c, 0x14, 0x4c, 0x29, 0xd0, 0x7c, 0xf, 0x4c, 0x29, 0xd0, 0x7c, 0xa, 0x4c, 0x29, 0xd0, 0x7c, 0x5, 0x4c, 0x29, 0xd0, 0x7c, 0x0, 0xc3}, 306 "JMI": {0x4c, 0x29, 0xd0, 0x78, 0x37, 0x4c, 0x29, 0xd0, 0x78, 0x32, 0x4c, 0x29, 0xd0, 0x78, 0x2d, 0x4c, 0x29, 0xd0, 0x78, 0x28, 0x4c, 0x29, 0xd0, 0x78, 0x23, 0x4c, 0x29, 0xd0, 0x78, 0x1e, 0x4c, 0x29, 0xd0, 0x78, 0x19, 0x4c, 0x29, 0xd0, 0x78, 0x14, 0x4c, 0x29, 0xd0, 0x78, 0xf, 0x4c, 0x29, 0xd0, 0x78, 0xa, 0x4c, 0x29, 0xd0, 0x78, 0x5, 0x4c, 0x29, 0xd0, 0x78, 0x0, 0xc3}, 307 "JNE": {0x4c, 0x29, 0xd0, 0x75, 0x39, 0x4c, 0x29, 0xd0, 0x75, 0x34, 0x4c, 0x29, 0xd0, 0x75, 0x2f, 0x4c, 0x29, 0xd0, 0x75, 0x2a, 0x4c, 0x29, 0xd0, 0x75, 0x25, 0x4c, 0x29, 0xd0, 0x75, 0x20, 0x66, 0x90, 0x4c, 0x29, 0xd0, 0x75, 0x19, 0x4c, 0x29, 0xd0, 0x75, 0x14, 0x4c, 0x29, 0xd0, 0x75, 0xf, 0x4c, 0x29, 0xd0, 0x75, 0xa, 0x4c, 0x29, 0xd0, 0x75, 0x5, 0x4c, 0x29, 0xd0, 0x75, 0x0, 0xc3}, 308 "JPC": {0x4c, 0x29, 0xd0, 0x7b, 0x37, 0x4c, 0x29, 0xd0, 0x7b, 0x32, 0x4c, 0x29, 0xd0, 0x7b, 0x2d, 0x4c, 0x29, 0xd0, 0x7b, 0x28, 0x4c, 0x29, 0xd0, 0x7b, 0x23, 0x4c, 0x29, 0xd0, 0x7b, 0x1e, 0x4c, 0x29, 0xd0, 0x7b, 0x19, 0x4c, 0x29, 0xd0, 0x7b, 0x14, 0x4c, 0x29, 0xd0, 0x7b, 0xf, 0x4c, 0x29, 0xd0, 0x7b, 0xa, 0x4c, 0x29, 0xd0, 0x7b, 0x5, 0x4c, 0x29, 0xd0, 0x7b, 0x0, 0xc3}, 309 "JPS": {0x4c, 0x29, 0xd0, 0x7a, 0x37, 0x4c, 0x29, 0xd0, 0x7a, 0x32, 0x4c, 0x29, 0xd0, 0x7a, 0x2d, 0x4c, 0x29, 0xd0, 0x7a, 0x28, 0x4c, 0x29, 0xd0, 0x7a, 0x23, 0x4c, 0x29, 0xd0, 0x7a, 0x1e, 0x4c, 0x29, 0xd0, 0x7a, 0x19, 0x4c, 0x29, 0xd0, 0x7a, 0x14, 0x4c, 0x29, 0xd0, 0x7a, 0xf, 0x4c, 0x29, 0xd0, 0x7a, 0xa, 0x4c, 0x29, 0xd0, 0x7a, 0x5, 0x4c, 0x29, 0xd0, 0x7a, 0x0, 0xc3}, 310 }, 311 }, 312 { 313 name: "SUBQ (memory to register)", 314 setupFn: func(assembler Assembler) { 315 assembler.CompileMemoryToRegister(SUBQ, RegR10, math.MaxInt16, RegAX) 316 }, 317 jmpInstToExpectedBytes: map[string][]uint8{ 318 "JCC": {0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x72, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x69, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x52, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x49, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x32, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x29, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x12, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x9, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x73, 0x0, 0xc3}, 319 "JCS": {0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x72, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x69, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x52, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x49, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x32, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x29, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x12, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x9, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x72, 0x0, 0xc3}, 320 "JEQ": {0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x72, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x69, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x52, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x49, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x32, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x29, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x12, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x9, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x74, 0x0, 0xc3}, 321 "JGE": {0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x72, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x69, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x52, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x49, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x32, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x29, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x12, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x9, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7d, 0x0, 0xc3}, 322 "JGT": {0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x72, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x69, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x52, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x49, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x32, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x29, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x12, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x9, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7f, 0x0, 0xc3}, 323 "JHI": {0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x72, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x69, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x52, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x49, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x32, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x29, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x12, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x9, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x77, 0x0, 0xc3}, 324 "JLE": {0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x72, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x69, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x52, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x49, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x32, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x29, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x12, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x9, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7e, 0x0, 0xc3}, 325 "JLS": {0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x72, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x69, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x52, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x49, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x32, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x29, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x12, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x9, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x76, 0x0, 0xc3}, 326 "JLT": {0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x72, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x69, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x52, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x49, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x32, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x29, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x12, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x9, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7c, 0x0, 0xc3}, 327 "JMI": {0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x63, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x5a, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x51, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x48, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x3f, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x36, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x2d, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x24, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x1b, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x12, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x9, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x78, 0x0, 0xc3}, 328 "JNE": {0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x72, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x69, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x60, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x52, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x49, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x40, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x32, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x29, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x20, 0xf, 0x1f, 0x44, 0x0, 0x0, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x12, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x9, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x75, 0x0, 0xc3}, 329 "JPC": {0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x63, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x5a, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x51, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x48, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x3f, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x36, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x2d, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x24, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x1b, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x12, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x9, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7b, 0x0, 0xc3}, 330 "JPS": {0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x63, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x5a, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x51, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x48, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x3f, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x36, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x2d, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x24, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x1b, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x12, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x9, 0x49, 0x2b, 0x82, 0xff, 0x7f, 0x0, 0x0, 0x7a, 0x0, 0xc3}, 331 }, 332 }, 333 { 334 name: "ANDL", 335 setupFn: func(assembler Assembler) { 336 assembler.CompileRegisterToRegister(ANDL, RegR10, RegAX) 337 }, 338 jmpInstToExpectedBytes: map[string][]uint8{ 339 "JCC": {0x44, 0x21, 0xd0, 0x73, 0x39, 0x44, 0x21, 0xd0, 0x73, 0x34, 0x44, 0x21, 0xd0, 0x73, 0x2f, 0x44, 0x21, 0xd0, 0x73, 0x2a, 0x44, 0x21, 0xd0, 0x73, 0x25, 0x44, 0x21, 0xd0, 0x73, 0x20, 0x66, 0x90, 0x44, 0x21, 0xd0, 0x73, 0x19, 0x44, 0x21, 0xd0, 0x73, 0x14, 0x44, 0x21, 0xd0, 0x73, 0xf, 0x44, 0x21, 0xd0, 0x73, 0xa, 0x44, 0x21, 0xd0, 0x73, 0x5, 0x44, 0x21, 0xd0, 0x73, 0x0, 0xc3}, 340 "JCS": {0x44, 0x21, 0xd0, 0x72, 0x39, 0x44, 0x21, 0xd0, 0x72, 0x34, 0x44, 0x21, 0xd0, 0x72, 0x2f, 0x44, 0x21, 0xd0, 0x72, 0x2a, 0x44, 0x21, 0xd0, 0x72, 0x25, 0x44, 0x21, 0xd0, 0x72, 0x20, 0x66, 0x90, 0x44, 0x21, 0xd0, 0x72, 0x19, 0x44, 0x21, 0xd0, 0x72, 0x14, 0x44, 0x21, 0xd0, 0x72, 0xf, 0x44, 0x21, 0xd0, 0x72, 0xa, 0x44, 0x21, 0xd0, 0x72, 0x5, 0x44, 0x21, 0xd0, 0x72, 0x0, 0xc3}, 341 "JEQ": {0x44, 0x21, 0xd0, 0x74, 0x39, 0x44, 0x21, 0xd0, 0x74, 0x34, 0x44, 0x21, 0xd0, 0x74, 0x2f, 0x44, 0x21, 0xd0, 0x74, 0x2a, 0x44, 0x21, 0xd0, 0x74, 0x25, 0x44, 0x21, 0xd0, 0x74, 0x20, 0x66, 0x90, 0x44, 0x21, 0xd0, 0x74, 0x19, 0x44, 0x21, 0xd0, 0x74, 0x14, 0x44, 0x21, 0xd0, 0x74, 0xf, 0x44, 0x21, 0xd0, 0x74, 0xa, 0x44, 0x21, 0xd0, 0x74, 0x5, 0x44, 0x21, 0xd0, 0x74, 0x0, 0xc3}, 342 "JGE": {0x44, 0x21, 0xd0, 0x7d, 0x39, 0x44, 0x21, 0xd0, 0x7d, 0x34, 0x44, 0x21, 0xd0, 0x7d, 0x2f, 0x44, 0x21, 0xd0, 0x7d, 0x2a, 0x44, 0x21, 0xd0, 0x7d, 0x25, 0x44, 0x21, 0xd0, 0x7d, 0x20, 0x66, 0x90, 0x44, 0x21, 0xd0, 0x7d, 0x19, 0x44, 0x21, 0xd0, 0x7d, 0x14, 0x44, 0x21, 0xd0, 0x7d, 0xf, 0x44, 0x21, 0xd0, 0x7d, 0xa, 0x44, 0x21, 0xd0, 0x7d, 0x5, 0x44, 0x21, 0xd0, 0x7d, 0x0, 0xc3}, 343 "JGT": {0x44, 0x21, 0xd0, 0x7f, 0x39, 0x44, 0x21, 0xd0, 0x7f, 0x34, 0x44, 0x21, 0xd0, 0x7f, 0x2f, 0x44, 0x21, 0xd0, 0x7f, 0x2a, 0x44, 0x21, 0xd0, 0x7f, 0x25, 0x44, 0x21, 0xd0, 0x7f, 0x20, 0x66, 0x90, 0x44, 0x21, 0xd0, 0x7f, 0x19, 0x44, 0x21, 0xd0, 0x7f, 0x14, 0x44, 0x21, 0xd0, 0x7f, 0xf, 0x44, 0x21, 0xd0, 0x7f, 0xa, 0x44, 0x21, 0xd0, 0x7f, 0x5, 0x44, 0x21, 0xd0, 0x7f, 0x0, 0xc3}, 344 "JHI": {0x44, 0x21, 0xd0, 0x77, 0x39, 0x44, 0x21, 0xd0, 0x77, 0x34, 0x44, 0x21, 0xd0, 0x77, 0x2f, 0x44, 0x21, 0xd0, 0x77, 0x2a, 0x44, 0x21, 0xd0, 0x77, 0x25, 0x44, 0x21, 0xd0, 0x77, 0x20, 0x66, 0x90, 0x44, 0x21, 0xd0, 0x77, 0x19, 0x44, 0x21, 0xd0, 0x77, 0x14, 0x44, 0x21, 0xd0, 0x77, 0xf, 0x44, 0x21, 0xd0, 0x77, 0xa, 0x44, 0x21, 0xd0, 0x77, 0x5, 0x44, 0x21, 0xd0, 0x77, 0x0, 0xc3}, 345 "JLE": {0x44, 0x21, 0xd0, 0x7e, 0x39, 0x44, 0x21, 0xd0, 0x7e, 0x34, 0x44, 0x21, 0xd0, 0x7e, 0x2f, 0x44, 0x21, 0xd0, 0x7e, 0x2a, 0x44, 0x21, 0xd0, 0x7e, 0x25, 0x44, 0x21, 0xd0, 0x7e, 0x20, 0x66, 0x90, 0x44, 0x21, 0xd0, 0x7e, 0x19, 0x44, 0x21, 0xd0, 0x7e, 0x14, 0x44, 0x21, 0xd0, 0x7e, 0xf, 0x44, 0x21, 0xd0, 0x7e, 0xa, 0x44, 0x21, 0xd0, 0x7e, 0x5, 0x44, 0x21, 0xd0, 0x7e, 0x0, 0xc3}, 346 "JLS": {0x44, 0x21, 0xd0, 0x76, 0x39, 0x44, 0x21, 0xd0, 0x76, 0x34, 0x44, 0x21, 0xd0, 0x76, 0x2f, 0x44, 0x21, 0xd0, 0x76, 0x2a, 0x44, 0x21, 0xd0, 0x76, 0x25, 0x44, 0x21, 0xd0, 0x76, 0x20, 0x66, 0x90, 0x44, 0x21, 0xd0, 0x76, 0x19, 0x44, 0x21, 0xd0, 0x76, 0x14, 0x44, 0x21, 0xd0, 0x76, 0xf, 0x44, 0x21, 0xd0, 0x76, 0xa, 0x44, 0x21, 0xd0, 0x76, 0x5, 0x44, 0x21, 0xd0, 0x76, 0x0, 0xc3}, 347 "JLT": {0x44, 0x21, 0xd0, 0x7c, 0x39, 0x44, 0x21, 0xd0, 0x7c, 0x34, 0x44, 0x21, 0xd0, 0x7c, 0x2f, 0x44, 0x21, 0xd0, 0x7c, 0x2a, 0x44, 0x21, 0xd0, 0x7c, 0x25, 0x44, 0x21, 0xd0, 0x7c, 0x20, 0x66, 0x90, 0x44, 0x21, 0xd0, 0x7c, 0x19, 0x44, 0x21, 0xd0, 0x7c, 0x14, 0x44, 0x21, 0xd0, 0x7c, 0xf, 0x44, 0x21, 0xd0, 0x7c, 0xa, 0x44, 0x21, 0xd0, 0x7c, 0x5, 0x44, 0x21, 0xd0, 0x7c, 0x0, 0xc3}, 348 "JMI": {0x44, 0x21, 0xd0, 0x78, 0x39, 0x44, 0x21, 0xd0, 0x78, 0x34, 0x44, 0x21, 0xd0, 0x78, 0x2f, 0x44, 0x21, 0xd0, 0x78, 0x2a, 0x44, 0x21, 0xd0, 0x78, 0x25, 0x44, 0x21, 0xd0, 0x78, 0x20, 0x66, 0x90, 0x44, 0x21, 0xd0, 0x78, 0x19, 0x44, 0x21, 0xd0, 0x78, 0x14, 0x44, 0x21, 0xd0, 0x78, 0xf, 0x44, 0x21, 0xd0, 0x78, 0xa, 0x44, 0x21, 0xd0, 0x78, 0x5, 0x44, 0x21, 0xd0, 0x78, 0x0, 0xc3}, 349 "JNE": {0x44, 0x21, 0xd0, 0x75, 0x39, 0x44, 0x21, 0xd0, 0x75, 0x34, 0x44, 0x21, 0xd0, 0x75, 0x2f, 0x44, 0x21, 0xd0, 0x75, 0x2a, 0x44, 0x21, 0xd0, 0x75, 0x25, 0x44, 0x21, 0xd0, 0x75, 0x20, 0x66, 0x90, 0x44, 0x21, 0xd0, 0x75, 0x19, 0x44, 0x21, 0xd0, 0x75, 0x14, 0x44, 0x21, 0xd0, 0x75, 0xf, 0x44, 0x21, 0xd0, 0x75, 0xa, 0x44, 0x21, 0xd0, 0x75, 0x5, 0x44, 0x21, 0xd0, 0x75, 0x0, 0xc3}, 350 "JPC": {0x44, 0x21, 0xd0, 0x7b, 0x39, 0x44, 0x21, 0xd0, 0x7b, 0x34, 0x44, 0x21, 0xd0, 0x7b, 0x2f, 0x44, 0x21, 0xd0, 0x7b, 0x2a, 0x44, 0x21, 0xd0, 0x7b, 0x25, 0x44, 0x21, 0xd0, 0x7b, 0x20, 0x66, 0x90, 0x44, 0x21, 0xd0, 0x7b, 0x19, 0x44, 0x21, 0xd0, 0x7b, 0x14, 0x44, 0x21, 0xd0, 0x7b, 0xf, 0x44, 0x21, 0xd0, 0x7b, 0xa, 0x44, 0x21, 0xd0, 0x7b, 0x5, 0x44, 0x21, 0xd0, 0x7b, 0x0, 0xc3}, 351 "JPS": {0x44, 0x21, 0xd0, 0x7a, 0x39, 0x44, 0x21, 0xd0, 0x7a, 0x34, 0x44, 0x21, 0xd0, 0x7a, 0x2f, 0x44, 0x21, 0xd0, 0x7a, 0x2a, 0x44, 0x21, 0xd0, 0x7a, 0x25, 0x44, 0x21, 0xd0, 0x7a, 0x20, 0x66, 0x90, 0x44, 0x21, 0xd0, 0x7a, 0x19, 0x44, 0x21, 0xd0, 0x7a, 0x14, 0x44, 0x21, 0xd0, 0x7a, 0xf, 0x44, 0x21, 0xd0, 0x7a, 0xa, 0x44, 0x21, 0xd0, 0x7a, 0x5, 0x44, 0x21, 0xd0, 0x7a, 0x0, 0xc3}, 352 }, 353 }, 354 { 355 name: "ANDQ (register to register)", 356 setupFn: func(assembler Assembler) { 357 assembler.CompileRegisterToRegister(ANDQ, RegR10, RegAX) 358 }, 359 jmpInstToExpectedBytes: map[string][]uint8{ 360 "JCC": {0x4c, 0x21, 0xd0, 0x73, 0x39, 0x4c, 0x21, 0xd0, 0x73, 0x34, 0x4c, 0x21, 0xd0, 0x73, 0x2f, 0x4c, 0x21, 0xd0, 0x73, 0x2a, 0x4c, 0x21, 0xd0, 0x73, 0x25, 0x4c, 0x21, 0xd0, 0x73, 0x20, 0x66, 0x90, 0x4c, 0x21, 0xd0, 0x73, 0x19, 0x4c, 0x21, 0xd0, 0x73, 0x14, 0x4c, 0x21, 0xd0, 0x73, 0xf, 0x4c, 0x21, 0xd0, 0x73, 0xa, 0x4c, 0x21, 0xd0, 0x73, 0x5, 0x4c, 0x21, 0xd0, 0x73, 0x0, 0xc3}, 361 "JCS": {0x4c, 0x21, 0xd0, 0x72, 0x39, 0x4c, 0x21, 0xd0, 0x72, 0x34, 0x4c, 0x21, 0xd0, 0x72, 0x2f, 0x4c, 0x21, 0xd0, 0x72, 0x2a, 0x4c, 0x21, 0xd0, 0x72, 0x25, 0x4c, 0x21, 0xd0, 0x72, 0x20, 0x66, 0x90, 0x4c, 0x21, 0xd0, 0x72, 0x19, 0x4c, 0x21, 0xd0, 0x72, 0x14, 0x4c, 0x21, 0xd0, 0x72, 0xf, 0x4c, 0x21, 0xd0, 0x72, 0xa, 0x4c, 0x21, 0xd0, 0x72, 0x5, 0x4c, 0x21, 0xd0, 0x72, 0x0, 0xc3}, 362 "JEQ": {0x4c, 0x21, 0xd0, 0x74, 0x39, 0x4c, 0x21, 0xd0, 0x74, 0x34, 0x4c, 0x21, 0xd0, 0x74, 0x2f, 0x4c, 0x21, 0xd0, 0x74, 0x2a, 0x4c, 0x21, 0xd0, 0x74, 0x25, 0x4c, 0x21, 0xd0, 0x74, 0x20, 0x66, 0x90, 0x4c, 0x21, 0xd0, 0x74, 0x19, 0x4c, 0x21, 0xd0, 0x74, 0x14, 0x4c, 0x21, 0xd0, 0x74, 0xf, 0x4c, 0x21, 0xd0, 0x74, 0xa, 0x4c, 0x21, 0xd0, 0x74, 0x5, 0x4c, 0x21, 0xd0, 0x74, 0x0, 0xc3}, 363 "JGE": {0x4c, 0x21, 0xd0, 0x7d, 0x39, 0x4c, 0x21, 0xd0, 0x7d, 0x34, 0x4c, 0x21, 0xd0, 0x7d, 0x2f, 0x4c, 0x21, 0xd0, 0x7d, 0x2a, 0x4c, 0x21, 0xd0, 0x7d, 0x25, 0x4c, 0x21, 0xd0, 0x7d, 0x20, 0x66, 0x90, 0x4c, 0x21, 0xd0, 0x7d, 0x19, 0x4c, 0x21, 0xd0, 0x7d, 0x14, 0x4c, 0x21, 0xd0, 0x7d, 0xf, 0x4c, 0x21, 0xd0, 0x7d, 0xa, 0x4c, 0x21, 0xd0, 0x7d, 0x5, 0x4c, 0x21, 0xd0, 0x7d, 0x0, 0xc3}, 364 "JGT": {0x4c, 0x21, 0xd0, 0x7f, 0x39, 0x4c, 0x21, 0xd0, 0x7f, 0x34, 0x4c, 0x21, 0xd0, 0x7f, 0x2f, 0x4c, 0x21, 0xd0, 0x7f, 0x2a, 0x4c, 0x21, 0xd0, 0x7f, 0x25, 0x4c, 0x21, 0xd0, 0x7f, 0x20, 0x66, 0x90, 0x4c, 0x21, 0xd0, 0x7f, 0x19, 0x4c, 0x21, 0xd0, 0x7f, 0x14, 0x4c, 0x21, 0xd0, 0x7f, 0xf, 0x4c, 0x21, 0xd0, 0x7f, 0xa, 0x4c, 0x21, 0xd0, 0x7f, 0x5, 0x4c, 0x21, 0xd0, 0x7f, 0x0, 0xc3}, 365 "JHI": {0x4c, 0x21, 0xd0, 0x77, 0x39, 0x4c, 0x21, 0xd0, 0x77, 0x34, 0x4c, 0x21, 0xd0, 0x77, 0x2f, 0x4c, 0x21, 0xd0, 0x77, 0x2a, 0x4c, 0x21, 0xd0, 0x77, 0x25, 0x4c, 0x21, 0xd0, 0x77, 0x20, 0x66, 0x90, 0x4c, 0x21, 0xd0, 0x77, 0x19, 0x4c, 0x21, 0xd0, 0x77, 0x14, 0x4c, 0x21, 0xd0, 0x77, 0xf, 0x4c, 0x21, 0xd0, 0x77, 0xa, 0x4c, 0x21, 0xd0, 0x77, 0x5, 0x4c, 0x21, 0xd0, 0x77, 0x0, 0xc3}, 366 "JLE": {0x4c, 0x21, 0xd0, 0x7e, 0x39, 0x4c, 0x21, 0xd0, 0x7e, 0x34, 0x4c, 0x21, 0xd0, 0x7e, 0x2f, 0x4c, 0x21, 0xd0, 0x7e, 0x2a, 0x4c, 0x21, 0xd0, 0x7e, 0x25, 0x4c, 0x21, 0xd0, 0x7e, 0x20, 0x66, 0x90, 0x4c, 0x21, 0xd0, 0x7e, 0x19, 0x4c, 0x21, 0xd0, 0x7e, 0x14, 0x4c, 0x21, 0xd0, 0x7e, 0xf, 0x4c, 0x21, 0xd0, 0x7e, 0xa, 0x4c, 0x21, 0xd0, 0x7e, 0x5, 0x4c, 0x21, 0xd0, 0x7e, 0x0, 0xc3}, 367 "JLS": {0x4c, 0x21, 0xd0, 0x76, 0x39, 0x4c, 0x21, 0xd0, 0x76, 0x34, 0x4c, 0x21, 0xd0, 0x76, 0x2f, 0x4c, 0x21, 0xd0, 0x76, 0x2a, 0x4c, 0x21, 0xd0, 0x76, 0x25, 0x4c, 0x21, 0xd0, 0x76, 0x20, 0x66, 0x90, 0x4c, 0x21, 0xd0, 0x76, 0x19, 0x4c, 0x21, 0xd0, 0x76, 0x14, 0x4c, 0x21, 0xd0, 0x76, 0xf, 0x4c, 0x21, 0xd0, 0x76, 0xa, 0x4c, 0x21, 0xd0, 0x76, 0x5, 0x4c, 0x21, 0xd0, 0x76, 0x0, 0xc3}, 368 "JLT": {0x4c, 0x21, 0xd0, 0x7c, 0x39, 0x4c, 0x21, 0xd0, 0x7c, 0x34, 0x4c, 0x21, 0xd0, 0x7c, 0x2f, 0x4c, 0x21, 0xd0, 0x7c, 0x2a, 0x4c, 0x21, 0xd0, 0x7c, 0x25, 0x4c, 0x21, 0xd0, 0x7c, 0x20, 0x66, 0x90, 0x4c, 0x21, 0xd0, 0x7c, 0x19, 0x4c, 0x21, 0xd0, 0x7c, 0x14, 0x4c, 0x21, 0xd0, 0x7c, 0xf, 0x4c, 0x21, 0xd0, 0x7c, 0xa, 0x4c, 0x21, 0xd0, 0x7c, 0x5, 0x4c, 0x21, 0xd0, 0x7c, 0x0, 0xc3}, 369 "JMI": {0x4c, 0x21, 0xd0, 0x78, 0x39, 0x4c, 0x21, 0xd0, 0x78, 0x34, 0x4c, 0x21, 0xd0, 0x78, 0x2f, 0x4c, 0x21, 0xd0, 0x78, 0x2a, 0x4c, 0x21, 0xd0, 0x78, 0x25, 0x4c, 0x21, 0xd0, 0x78, 0x20, 0x66, 0x90, 0x4c, 0x21, 0xd0, 0x78, 0x19, 0x4c, 0x21, 0xd0, 0x78, 0x14, 0x4c, 0x21, 0xd0, 0x78, 0xf, 0x4c, 0x21, 0xd0, 0x78, 0xa, 0x4c, 0x21, 0xd0, 0x78, 0x5, 0x4c, 0x21, 0xd0, 0x78, 0x0, 0xc3}, 370 "JNE": {0x4c, 0x21, 0xd0, 0x75, 0x39, 0x4c, 0x21, 0xd0, 0x75, 0x34, 0x4c, 0x21, 0xd0, 0x75, 0x2f, 0x4c, 0x21, 0xd0, 0x75, 0x2a, 0x4c, 0x21, 0xd0, 0x75, 0x25, 0x4c, 0x21, 0xd0, 0x75, 0x20, 0x66, 0x90, 0x4c, 0x21, 0xd0, 0x75, 0x19, 0x4c, 0x21, 0xd0, 0x75, 0x14, 0x4c, 0x21, 0xd0, 0x75, 0xf, 0x4c, 0x21, 0xd0, 0x75, 0xa, 0x4c, 0x21, 0xd0, 0x75, 0x5, 0x4c, 0x21, 0xd0, 0x75, 0x0, 0xc3}, 371 "JPC": {0x4c, 0x21, 0xd0, 0x7b, 0x39, 0x4c, 0x21, 0xd0, 0x7b, 0x34, 0x4c, 0x21, 0xd0, 0x7b, 0x2f, 0x4c, 0x21, 0xd0, 0x7b, 0x2a, 0x4c, 0x21, 0xd0, 0x7b, 0x25, 0x4c, 0x21, 0xd0, 0x7b, 0x20, 0x66, 0x90, 0x4c, 0x21, 0xd0, 0x7b, 0x19, 0x4c, 0x21, 0xd0, 0x7b, 0x14, 0x4c, 0x21, 0xd0, 0x7b, 0xf, 0x4c, 0x21, 0xd0, 0x7b, 0xa, 0x4c, 0x21, 0xd0, 0x7b, 0x5, 0x4c, 0x21, 0xd0, 0x7b, 0x0, 0xc3}, 372 "JPS": {0x4c, 0x21, 0xd0, 0x7a, 0x39, 0x4c, 0x21, 0xd0, 0x7a, 0x34, 0x4c, 0x21, 0xd0, 0x7a, 0x2f, 0x4c, 0x21, 0xd0, 0x7a, 0x2a, 0x4c, 0x21, 0xd0, 0x7a, 0x25, 0x4c, 0x21, 0xd0, 0x7a, 0x20, 0x66, 0x90, 0x4c, 0x21, 0xd0, 0x7a, 0x19, 0x4c, 0x21, 0xd0, 0x7a, 0x14, 0x4c, 0x21, 0xd0, 0x7a, 0xf, 0x4c, 0x21, 0xd0, 0x7a, 0xa, 0x4c, 0x21, 0xd0, 0x7a, 0x5, 0x4c, 0x21, 0xd0, 0x7a, 0x0, 0xc3}, 373 }, 374 }, 375 { 376 name: "ANDQ (const to register)", 377 setupFn: func(assembler Assembler) { 378 assembler.CompileConstToRegister(ANDQ, -123, RegR10) 379 }, 380 jmpInstToExpectedBytes: map[string][]uint8{ 381 "JCC": {0x49, 0x83, 0xe2, 0x85, 0x73, 0x46, 0x49, 0x83, 0xe2, 0x85, 0x73, 0x40, 0x49, 0x83, 0xe2, 0x85, 0x73, 0x3a, 0x49, 0x83, 0xe2, 0x85, 0x73, 0x34, 0x49, 0x83, 0xe2, 0x85, 0x73, 0x2e, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x73, 0x26, 0x49, 0x83, 0xe2, 0x85, 0x73, 0x20, 0x49, 0x83, 0xe2, 0x85, 0x73, 0x1a, 0x49, 0x83, 0xe2, 0x85, 0x73, 0x14, 0x49, 0x83, 0xe2, 0x85, 0x73, 0xe, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x73, 0x6, 0x49, 0x83, 0xe2, 0x85, 0x73, 0x0, 0xc3}, 382 "JCS": {0x49, 0x83, 0xe2, 0x85, 0x72, 0x46, 0x49, 0x83, 0xe2, 0x85, 0x72, 0x40, 0x49, 0x83, 0xe2, 0x85, 0x72, 0x3a, 0x49, 0x83, 0xe2, 0x85, 0x72, 0x34, 0x49, 0x83, 0xe2, 0x85, 0x72, 0x2e, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x72, 0x26, 0x49, 0x83, 0xe2, 0x85, 0x72, 0x20, 0x49, 0x83, 0xe2, 0x85, 0x72, 0x1a, 0x49, 0x83, 0xe2, 0x85, 0x72, 0x14, 0x49, 0x83, 0xe2, 0x85, 0x72, 0xe, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x72, 0x6, 0x49, 0x83, 0xe2, 0x85, 0x72, 0x0, 0xc3}, 383 "JEQ": {0x49, 0x83, 0xe2, 0x85, 0x74, 0x46, 0x49, 0x83, 0xe2, 0x85, 0x74, 0x40, 0x49, 0x83, 0xe2, 0x85, 0x74, 0x3a, 0x49, 0x83, 0xe2, 0x85, 0x74, 0x34, 0x49, 0x83, 0xe2, 0x85, 0x74, 0x2e, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x74, 0x26, 0x49, 0x83, 0xe2, 0x85, 0x74, 0x20, 0x49, 0x83, 0xe2, 0x85, 0x74, 0x1a, 0x49, 0x83, 0xe2, 0x85, 0x74, 0x14, 0x49, 0x83, 0xe2, 0x85, 0x74, 0xe, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x74, 0x6, 0x49, 0x83, 0xe2, 0x85, 0x74, 0x0, 0xc3}, 384 "JGE": {0x49, 0x83, 0xe2, 0x85, 0x7d, 0x46, 0x49, 0x83, 0xe2, 0x85, 0x7d, 0x40, 0x49, 0x83, 0xe2, 0x85, 0x7d, 0x3a, 0x49, 0x83, 0xe2, 0x85, 0x7d, 0x34, 0x49, 0x83, 0xe2, 0x85, 0x7d, 0x2e, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x7d, 0x26, 0x49, 0x83, 0xe2, 0x85, 0x7d, 0x20, 0x49, 0x83, 0xe2, 0x85, 0x7d, 0x1a, 0x49, 0x83, 0xe2, 0x85, 0x7d, 0x14, 0x49, 0x83, 0xe2, 0x85, 0x7d, 0xe, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x7d, 0x6, 0x49, 0x83, 0xe2, 0x85, 0x7d, 0x0, 0xc3}, 385 "JGT": {0x49, 0x83, 0xe2, 0x85, 0x7f, 0x46, 0x49, 0x83, 0xe2, 0x85, 0x7f, 0x40, 0x49, 0x83, 0xe2, 0x85, 0x7f, 0x3a, 0x49, 0x83, 0xe2, 0x85, 0x7f, 0x34, 0x49, 0x83, 0xe2, 0x85, 0x7f, 0x2e, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x7f, 0x26, 0x49, 0x83, 0xe2, 0x85, 0x7f, 0x20, 0x49, 0x83, 0xe2, 0x85, 0x7f, 0x1a, 0x49, 0x83, 0xe2, 0x85, 0x7f, 0x14, 0x49, 0x83, 0xe2, 0x85, 0x7f, 0xe, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x7f, 0x6, 0x49, 0x83, 0xe2, 0x85, 0x7f, 0x0, 0xc3}, 386 "JHI": {0x49, 0x83, 0xe2, 0x85, 0x77, 0x46, 0x49, 0x83, 0xe2, 0x85, 0x77, 0x40, 0x49, 0x83, 0xe2, 0x85, 0x77, 0x3a, 0x49, 0x83, 0xe2, 0x85, 0x77, 0x34, 0x49, 0x83, 0xe2, 0x85, 0x77, 0x2e, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x77, 0x26, 0x49, 0x83, 0xe2, 0x85, 0x77, 0x20, 0x49, 0x83, 0xe2, 0x85, 0x77, 0x1a, 0x49, 0x83, 0xe2, 0x85, 0x77, 0x14, 0x49, 0x83, 0xe2, 0x85, 0x77, 0xe, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x77, 0x6, 0x49, 0x83, 0xe2, 0x85, 0x77, 0x0, 0xc3}, 387 "JLE": {0x49, 0x83, 0xe2, 0x85, 0x7e, 0x46, 0x49, 0x83, 0xe2, 0x85, 0x7e, 0x40, 0x49, 0x83, 0xe2, 0x85, 0x7e, 0x3a, 0x49, 0x83, 0xe2, 0x85, 0x7e, 0x34, 0x49, 0x83, 0xe2, 0x85, 0x7e, 0x2e, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x7e, 0x26, 0x49, 0x83, 0xe2, 0x85, 0x7e, 0x20, 0x49, 0x83, 0xe2, 0x85, 0x7e, 0x1a, 0x49, 0x83, 0xe2, 0x85, 0x7e, 0x14, 0x49, 0x83, 0xe2, 0x85, 0x7e, 0xe, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x7e, 0x6, 0x49, 0x83, 0xe2, 0x85, 0x7e, 0x0, 0xc3}, 388 "JLS": {0x49, 0x83, 0xe2, 0x85, 0x76, 0x46, 0x49, 0x83, 0xe2, 0x85, 0x76, 0x40, 0x49, 0x83, 0xe2, 0x85, 0x76, 0x3a, 0x49, 0x83, 0xe2, 0x85, 0x76, 0x34, 0x49, 0x83, 0xe2, 0x85, 0x76, 0x2e, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x76, 0x26, 0x49, 0x83, 0xe2, 0x85, 0x76, 0x20, 0x49, 0x83, 0xe2, 0x85, 0x76, 0x1a, 0x49, 0x83, 0xe2, 0x85, 0x76, 0x14, 0x49, 0x83, 0xe2, 0x85, 0x76, 0xe, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x76, 0x6, 0x49, 0x83, 0xe2, 0x85, 0x76, 0x0, 0xc3}, 389 "JLT": {0x49, 0x83, 0xe2, 0x85, 0x7c, 0x46, 0x49, 0x83, 0xe2, 0x85, 0x7c, 0x40, 0x49, 0x83, 0xe2, 0x85, 0x7c, 0x3a, 0x49, 0x83, 0xe2, 0x85, 0x7c, 0x34, 0x49, 0x83, 0xe2, 0x85, 0x7c, 0x2e, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x7c, 0x26, 0x49, 0x83, 0xe2, 0x85, 0x7c, 0x20, 0x49, 0x83, 0xe2, 0x85, 0x7c, 0x1a, 0x49, 0x83, 0xe2, 0x85, 0x7c, 0x14, 0x49, 0x83, 0xe2, 0x85, 0x7c, 0xe, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x7c, 0x6, 0x49, 0x83, 0xe2, 0x85, 0x7c, 0x0, 0xc3}, 390 "JMI": {0x49, 0x83, 0xe2, 0x85, 0x78, 0x46, 0x49, 0x83, 0xe2, 0x85, 0x78, 0x40, 0x49, 0x83, 0xe2, 0x85, 0x78, 0x3a, 0x49, 0x83, 0xe2, 0x85, 0x78, 0x34, 0x49, 0x83, 0xe2, 0x85, 0x78, 0x2e, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x78, 0x26, 0x49, 0x83, 0xe2, 0x85, 0x78, 0x20, 0x49, 0x83, 0xe2, 0x85, 0x78, 0x1a, 0x49, 0x83, 0xe2, 0x85, 0x78, 0x14, 0x49, 0x83, 0xe2, 0x85, 0x78, 0xe, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x78, 0x6, 0x49, 0x83, 0xe2, 0x85, 0x78, 0x0, 0xc3}, 391 "JNE": {0x49, 0x83, 0xe2, 0x85, 0x75, 0x46, 0x49, 0x83, 0xe2, 0x85, 0x75, 0x40, 0x49, 0x83, 0xe2, 0x85, 0x75, 0x3a, 0x49, 0x83, 0xe2, 0x85, 0x75, 0x34, 0x49, 0x83, 0xe2, 0x85, 0x75, 0x2e, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x75, 0x26, 0x49, 0x83, 0xe2, 0x85, 0x75, 0x20, 0x49, 0x83, 0xe2, 0x85, 0x75, 0x1a, 0x49, 0x83, 0xe2, 0x85, 0x75, 0x14, 0x49, 0x83, 0xe2, 0x85, 0x75, 0xe, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x75, 0x6, 0x49, 0x83, 0xe2, 0x85, 0x75, 0x0, 0xc3}, 392 "JPC": {0x49, 0x83, 0xe2, 0x85, 0x7b, 0x46, 0x49, 0x83, 0xe2, 0x85, 0x7b, 0x40, 0x49, 0x83, 0xe2, 0x85, 0x7b, 0x3a, 0x49, 0x83, 0xe2, 0x85, 0x7b, 0x34, 0x49, 0x83, 0xe2, 0x85, 0x7b, 0x2e, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x7b, 0x26, 0x49, 0x83, 0xe2, 0x85, 0x7b, 0x20, 0x49, 0x83, 0xe2, 0x85, 0x7b, 0x1a, 0x49, 0x83, 0xe2, 0x85, 0x7b, 0x14, 0x49, 0x83, 0xe2, 0x85, 0x7b, 0xe, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x7b, 0x6, 0x49, 0x83, 0xe2, 0x85, 0x7b, 0x0, 0xc3}, 393 "JPS": {0x49, 0x83, 0xe2, 0x85, 0x7a, 0x46, 0x49, 0x83, 0xe2, 0x85, 0x7a, 0x40, 0x49, 0x83, 0xe2, 0x85, 0x7a, 0x3a, 0x49, 0x83, 0xe2, 0x85, 0x7a, 0x34, 0x49, 0x83, 0xe2, 0x85, 0x7a, 0x2e, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x7a, 0x26, 0x49, 0x83, 0xe2, 0x85, 0x7a, 0x20, 0x49, 0x83, 0xe2, 0x85, 0x7a, 0x1a, 0x49, 0x83, 0xe2, 0x85, 0x7a, 0x14, 0x49, 0x83, 0xe2, 0x85, 0x7a, 0xe, 0x66, 0x90, 0x49, 0x83, 0xe2, 0x85, 0x7a, 0x6, 0x49, 0x83, 0xe2, 0x85, 0x7a, 0x0, 0xc3}, 394 }, 395 }, 396 { 397 name: "INCQ", 398 setupFn: func(assembler Assembler) { 399 assembler.CompileNoneToMemory(INCQ, RegR10, 123) 400 }, 401 jmpInstToExpectedBytes: map[string][]uint8{ 402 "JCC": {0x49, 0xff, 0x42, 0x7b, 0x73, 0x42, 0x49, 0xff, 0x42, 0x7b, 0x73, 0x3c, 0x49, 0xff, 0x42, 0x7b, 0x73, 0x36, 0x49, 0xff, 0x42, 0x7b, 0x73, 0x30, 0x49, 0xff, 0x42, 0x7b, 0x73, 0x2a, 0x49, 0xff, 0x42, 0x7b, 0x73, 0x24, 0x49, 0xff, 0x42, 0x7b, 0x73, 0x1e, 0x49, 0xff, 0x42, 0x7b, 0x73, 0x18, 0x49, 0xff, 0x42, 0x7b, 0x73, 0x12, 0x49, 0xff, 0x42, 0x7b, 0x73, 0xc, 0x49, 0xff, 0x42, 0x7b, 0x73, 0x6, 0x49, 0xff, 0x42, 0x7b, 0x73, 0x0, 0xc3}, 403 "JCS": {0x49, 0xff, 0x42, 0x7b, 0x72, 0x42, 0x49, 0xff, 0x42, 0x7b, 0x72, 0x3c, 0x49, 0xff, 0x42, 0x7b, 0x72, 0x36, 0x49, 0xff, 0x42, 0x7b, 0x72, 0x30, 0x49, 0xff, 0x42, 0x7b, 0x72, 0x2a, 0x49, 0xff, 0x42, 0x7b, 0x72, 0x24, 0x49, 0xff, 0x42, 0x7b, 0x72, 0x1e, 0x49, 0xff, 0x42, 0x7b, 0x72, 0x18, 0x49, 0xff, 0x42, 0x7b, 0x72, 0x12, 0x49, 0xff, 0x42, 0x7b, 0x72, 0xc, 0x49, 0xff, 0x42, 0x7b, 0x72, 0x6, 0x49, 0xff, 0x42, 0x7b, 0x72, 0x0, 0xc3}, 404 "JEQ": {0x49, 0xff, 0x42, 0x7b, 0x74, 0x46, 0x49, 0xff, 0x42, 0x7b, 0x74, 0x40, 0x49, 0xff, 0x42, 0x7b, 0x74, 0x3a, 0x49, 0xff, 0x42, 0x7b, 0x74, 0x34, 0x49, 0xff, 0x42, 0x7b, 0x74, 0x2e, 0x66, 0x90, 0x49, 0xff, 0x42, 0x7b, 0x74, 0x26, 0x49, 0xff, 0x42, 0x7b, 0x74, 0x20, 0x49, 0xff, 0x42, 0x7b, 0x74, 0x1a, 0x49, 0xff, 0x42, 0x7b, 0x74, 0x14, 0x49, 0xff, 0x42, 0x7b, 0x74, 0xe, 0x66, 0x90, 0x49, 0xff, 0x42, 0x7b, 0x74, 0x6, 0x49, 0xff, 0x42, 0x7b, 0x74, 0x0, 0xc3}, 405 "JGE": {0x49, 0xff, 0x42, 0x7b, 0x7d, 0x46, 0x49, 0xff, 0x42, 0x7b, 0x7d, 0x40, 0x49, 0xff, 0x42, 0x7b, 0x7d, 0x3a, 0x49, 0xff, 0x42, 0x7b, 0x7d, 0x34, 0x49, 0xff, 0x42, 0x7b, 0x7d, 0x2e, 0x66, 0x90, 0x49, 0xff, 0x42, 0x7b, 0x7d, 0x26, 0x49, 0xff, 0x42, 0x7b, 0x7d, 0x20, 0x49, 0xff, 0x42, 0x7b, 0x7d, 0x1a, 0x49, 0xff, 0x42, 0x7b, 0x7d, 0x14, 0x49, 0xff, 0x42, 0x7b, 0x7d, 0xe, 0x66, 0x90, 0x49, 0xff, 0x42, 0x7b, 0x7d, 0x6, 0x49, 0xff, 0x42, 0x7b, 0x7d, 0x0, 0xc3}, 406 "JGT": {0x49, 0xff, 0x42, 0x7b, 0x7f, 0x46, 0x49, 0xff, 0x42, 0x7b, 0x7f, 0x40, 0x49, 0xff, 0x42, 0x7b, 0x7f, 0x3a, 0x49, 0xff, 0x42, 0x7b, 0x7f, 0x34, 0x49, 0xff, 0x42, 0x7b, 0x7f, 0x2e, 0x66, 0x90, 0x49, 0xff, 0x42, 0x7b, 0x7f, 0x26, 0x49, 0xff, 0x42, 0x7b, 0x7f, 0x20, 0x49, 0xff, 0x42, 0x7b, 0x7f, 0x1a, 0x49, 0xff, 0x42, 0x7b, 0x7f, 0x14, 0x49, 0xff, 0x42, 0x7b, 0x7f, 0xe, 0x66, 0x90, 0x49, 0xff, 0x42, 0x7b, 0x7f, 0x6, 0x49, 0xff, 0x42, 0x7b, 0x7f, 0x0, 0xc3}, 407 "JHI": {0x49, 0xff, 0x42, 0x7b, 0x77, 0x42, 0x49, 0xff, 0x42, 0x7b, 0x77, 0x3c, 0x49, 0xff, 0x42, 0x7b, 0x77, 0x36, 0x49, 0xff, 0x42, 0x7b, 0x77, 0x30, 0x49, 0xff, 0x42, 0x7b, 0x77, 0x2a, 0x49, 0xff, 0x42, 0x7b, 0x77, 0x24, 0x49, 0xff, 0x42, 0x7b, 0x77, 0x1e, 0x49, 0xff, 0x42, 0x7b, 0x77, 0x18, 0x49, 0xff, 0x42, 0x7b, 0x77, 0x12, 0x49, 0xff, 0x42, 0x7b, 0x77, 0xc, 0x49, 0xff, 0x42, 0x7b, 0x77, 0x6, 0x49, 0xff, 0x42, 0x7b, 0x77, 0x0, 0xc3}, 408 "JLE": {0x49, 0xff, 0x42, 0x7b, 0x7e, 0x46, 0x49, 0xff, 0x42, 0x7b, 0x7e, 0x40, 0x49, 0xff, 0x42, 0x7b, 0x7e, 0x3a, 0x49, 0xff, 0x42, 0x7b, 0x7e, 0x34, 0x49, 0xff, 0x42, 0x7b, 0x7e, 0x2e, 0x66, 0x90, 0x49, 0xff, 0x42, 0x7b, 0x7e, 0x26, 0x49, 0xff, 0x42, 0x7b, 0x7e, 0x20, 0x49, 0xff, 0x42, 0x7b, 0x7e, 0x1a, 0x49, 0xff, 0x42, 0x7b, 0x7e, 0x14, 0x49, 0xff, 0x42, 0x7b, 0x7e, 0xe, 0x66, 0x90, 0x49, 0xff, 0x42, 0x7b, 0x7e, 0x6, 0x49, 0xff, 0x42, 0x7b, 0x7e, 0x0, 0xc3}, 409 "JLS": {0x49, 0xff, 0x42, 0x7b, 0x76, 0x42, 0x49, 0xff, 0x42, 0x7b, 0x76, 0x3c, 0x49, 0xff, 0x42, 0x7b, 0x76, 0x36, 0x49, 0xff, 0x42, 0x7b, 0x76, 0x30, 0x49, 0xff, 0x42, 0x7b, 0x76, 0x2a, 0x49, 0xff, 0x42, 0x7b, 0x76, 0x24, 0x49, 0xff, 0x42, 0x7b, 0x76, 0x1e, 0x49, 0xff, 0x42, 0x7b, 0x76, 0x18, 0x49, 0xff, 0x42, 0x7b, 0x76, 0x12, 0x49, 0xff, 0x42, 0x7b, 0x76, 0xc, 0x49, 0xff, 0x42, 0x7b, 0x76, 0x6, 0x49, 0xff, 0x42, 0x7b, 0x76, 0x0, 0xc3}, 410 "JLT": {0x49, 0xff, 0x42, 0x7b, 0x7c, 0x46, 0x49, 0xff, 0x42, 0x7b, 0x7c, 0x40, 0x49, 0xff, 0x42, 0x7b, 0x7c, 0x3a, 0x49, 0xff, 0x42, 0x7b, 0x7c, 0x34, 0x49, 0xff, 0x42, 0x7b, 0x7c, 0x2e, 0x66, 0x90, 0x49, 0xff, 0x42, 0x7b, 0x7c, 0x26, 0x49, 0xff, 0x42, 0x7b, 0x7c, 0x20, 0x49, 0xff, 0x42, 0x7b, 0x7c, 0x1a, 0x49, 0xff, 0x42, 0x7b, 0x7c, 0x14, 0x49, 0xff, 0x42, 0x7b, 0x7c, 0xe, 0x66, 0x90, 0x49, 0xff, 0x42, 0x7b, 0x7c, 0x6, 0x49, 0xff, 0x42, 0x7b, 0x7c, 0x0, 0xc3}, 411 "JMI": {0x49, 0xff, 0x42, 0x7b, 0x78, 0x42, 0x49, 0xff, 0x42, 0x7b, 0x78, 0x3c, 0x49, 0xff, 0x42, 0x7b, 0x78, 0x36, 0x49, 0xff, 0x42, 0x7b, 0x78, 0x30, 0x49, 0xff, 0x42, 0x7b, 0x78, 0x2a, 0x49, 0xff, 0x42, 0x7b, 0x78, 0x24, 0x49, 0xff, 0x42, 0x7b, 0x78, 0x1e, 0x49, 0xff, 0x42, 0x7b, 0x78, 0x18, 0x49, 0xff, 0x42, 0x7b, 0x78, 0x12, 0x49, 0xff, 0x42, 0x7b, 0x78, 0xc, 0x49, 0xff, 0x42, 0x7b, 0x78, 0x6, 0x49, 0xff, 0x42, 0x7b, 0x78, 0x0, 0xc3}, 412 "JNE": {0x49, 0xff, 0x42, 0x7b, 0x75, 0x46, 0x49, 0xff, 0x42, 0x7b, 0x75, 0x40, 0x49, 0xff, 0x42, 0x7b, 0x75, 0x3a, 0x49, 0xff, 0x42, 0x7b, 0x75, 0x34, 0x49, 0xff, 0x42, 0x7b, 0x75, 0x2e, 0x66, 0x90, 0x49, 0xff, 0x42, 0x7b, 0x75, 0x26, 0x49, 0xff, 0x42, 0x7b, 0x75, 0x20, 0x49, 0xff, 0x42, 0x7b, 0x75, 0x1a, 0x49, 0xff, 0x42, 0x7b, 0x75, 0x14, 0x49, 0xff, 0x42, 0x7b, 0x75, 0xe, 0x66, 0x90, 0x49, 0xff, 0x42, 0x7b, 0x75, 0x6, 0x49, 0xff, 0x42, 0x7b, 0x75, 0x0, 0xc3}, 413 "JPC": {0x49, 0xff, 0x42, 0x7b, 0x7b, 0x42, 0x49, 0xff, 0x42, 0x7b, 0x7b, 0x3c, 0x49, 0xff, 0x42, 0x7b, 0x7b, 0x36, 0x49, 0xff, 0x42, 0x7b, 0x7b, 0x30, 0x49, 0xff, 0x42, 0x7b, 0x7b, 0x2a, 0x49, 0xff, 0x42, 0x7b, 0x7b, 0x24, 0x49, 0xff, 0x42, 0x7b, 0x7b, 0x1e, 0x49, 0xff, 0x42, 0x7b, 0x7b, 0x18, 0x49, 0xff, 0x42, 0x7b, 0x7b, 0x12, 0x49, 0xff, 0x42, 0x7b, 0x7b, 0xc, 0x49, 0xff, 0x42, 0x7b, 0x7b, 0x6, 0x49, 0xff, 0x42, 0x7b, 0x7b, 0x0, 0xc3}, 414 "JPS": {0x49, 0xff, 0x42, 0x7b, 0x7a, 0x42, 0x49, 0xff, 0x42, 0x7b, 0x7a, 0x3c, 0x49, 0xff, 0x42, 0x7b, 0x7a, 0x36, 0x49, 0xff, 0x42, 0x7b, 0x7a, 0x30, 0x49, 0xff, 0x42, 0x7b, 0x7a, 0x2a, 0x49, 0xff, 0x42, 0x7b, 0x7a, 0x24, 0x49, 0xff, 0x42, 0x7b, 0x7a, 0x1e, 0x49, 0xff, 0x42, 0x7b, 0x7a, 0x18, 0x49, 0xff, 0x42, 0x7b, 0x7a, 0x12, 0x49, 0xff, 0x42, 0x7b, 0x7a, 0xc, 0x49, 0xff, 0x42, 0x7b, 0x7a, 0x6, 0x49, 0xff, 0x42, 0x7b, 0x7a, 0x0, 0xc3}, 415 }, 416 }, 417 { 418 name: "DECQ", 419 setupFn: func(assembler Assembler) { 420 assembler.CompileNoneToMemory(DECQ, RegR10, 0) 421 }, 422 jmpInstToExpectedBytes: map[string][]uint8{ 423 "JCC": {0x49, 0xff, 0xa, 0x73, 0x37, 0x49, 0xff, 0xa, 0x73, 0x32, 0x49, 0xff, 0xa, 0x73, 0x2d, 0x49, 0xff, 0xa, 0x73, 0x28, 0x49, 0xff, 0xa, 0x73, 0x23, 0x49, 0xff, 0xa, 0x73, 0x1e, 0x49, 0xff, 0xa, 0x73, 0x19, 0x49, 0xff, 0xa, 0x73, 0x14, 0x49, 0xff, 0xa, 0x73, 0xf, 0x49, 0xff, 0xa, 0x73, 0xa, 0x49, 0xff, 0xa, 0x73, 0x5, 0x49, 0xff, 0xa, 0x73, 0x0, 0xc3}, 424 "JCS": {0x49, 0xff, 0xa, 0x72, 0x37, 0x49, 0xff, 0xa, 0x72, 0x32, 0x49, 0xff, 0xa, 0x72, 0x2d, 0x49, 0xff, 0xa, 0x72, 0x28, 0x49, 0xff, 0xa, 0x72, 0x23, 0x49, 0xff, 0xa, 0x72, 0x1e, 0x49, 0xff, 0xa, 0x72, 0x19, 0x49, 0xff, 0xa, 0x72, 0x14, 0x49, 0xff, 0xa, 0x72, 0xf, 0x49, 0xff, 0xa, 0x72, 0xa, 0x49, 0xff, 0xa, 0x72, 0x5, 0x49, 0xff, 0xa, 0x72, 0x0, 0xc3}, 425 "JEQ": {0x49, 0xff, 0xa, 0x74, 0x39, 0x49, 0xff, 0xa, 0x74, 0x34, 0x49, 0xff, 0xa, 0x74, 0x2f, 0x49, 0xff, 0xa, 0x74, 0x2a, 0x49, 0xff, 0xa, 0x74, 0x25, 0x49, 0xff, 0xa, 0x74, 0x20, 0x66, 0x90, 0x49, 0xff, 0xa, 0x74, 0x19, 0x49, 0xff, 0xa, 0x74, 0x14, 0x49, 0xff, 0xa, 0x74, 0xf, 0x49, 0xff, 0xa, 0x74, 0xa, 0x49, 0xff, 0xa, 0x74, 0x5, 0x49, 0xff, 0xa, 0x74, 0x0, 0xc3}, 426 "JGE": {0x49, 0xff, 0xa, 0x7d, 0x39, 0x49, 0xff, 0xa, 0x7d, 0x34, 0x49, 0xff, 0xa, 0x7d, 0x2f, 0x49, 0xff, 0xa, 0x7d, 0x2a, 0x49, 0xff, 0xa, 0x7d, 0x25, 0x49, 0xff, 0xa, 0x7d, 0x20, 0x66, 0x90, 0x49, 0xff, 0xa, 0x7d, 0x19, 0x49, 0xff, 0xa, 0x7d, 0x14, 0x49, 0xff, 0xa, 0x7d, 0xf, 0x49, 0xff, 0xa, 0x7d, 0xa, 0x49, 0xff, 0xa, 0x7d, 0x5, 0x49, 0xff, 0xa, 0x7d, 0x0, 0xc3}, 427 "JGT": {0x49, 0xff, 0xa, 0x7f, 0x39, 0x49, 0xff, 0xa, 0x7f, 0x34, 0x49, 0xff, 0xa, 0x7f, 0x2f, 0x49, 0xff, 0xa, 0x7f, 0x2a, 0x49, 0xff, 0xa, 0x7f, 0x25, 0x49, 0xff, 0xa, 0x7f, 0x20, 0x66, 0x90, 0x49, 0xff, 0xa, 0x7f, 0x19, 0x49, 0xff, 0xa, 0x7f, 0x14, 0x49, 0xff, 0xa, 0x7f, 0xf, 0x49, 0xff, 0xa, 0x7f, 0xa, 0x49, 0xff, 0xa, 0x7f, 0x5, 0x49, 0xff, 0xa, 0x7f, 0x0, 0xc3}, 428 "JHI": {0x49, 0xff, 0xa, 0x77, 0x37, 0x49, 0xff, 0xa, 0x77, 0x32, 0x49, 0xff, 0xa, 0x77, 0x2d, 0x49, 0xff, 0xa, 0x77, 0x28, 0x49, 0xff, 0xa, 0x77, 0x23, 0x49, 0xff, 0xa, 0x77, 0x1e, 0x49, 0xff, 0xa, 0x77, 0x19, 0x49, 0xff, 0xa, 0x77, 0x14, 0x49, 0xff, 0xa, 0x77, 0xf, 0x49, 0xff, 0xa, 0x77, 0xa, 0x49, 0xff, 0xa, 0x77, 0x5, 0x49, 0xff, 0xa, 0x77, 0x0, 0xc3}, 429 "JLE": {0x49, 0xff, 0xa, 0x7e, 0x39, 0x49, 0xff, 0xa, 0x7e, 0x34, 0x49, 0xff, 0xa, 0x7e, 0x2f, 0x49, 0xff, 0xa, 0x7e, 0x2a, 0x49, 0xff, 0xa, 0x7e, 0x25, 0x49, 0xff, 0xa, 0x7e, 0x20, 0x66, 0x90, 0x49, 0xff, 0xa, 0x7e, 0x19, 0x49, 0xff, 0xa, 0x7e, 0x14, 0x49, 0xff, 0xa, 0x7e, 0xf, 0x49, 0xff, 0xa, 0x7e, 0xa, 0x49, 0xff, 0xa, 0x7e, 0x5, 0x49, 0xff, 0xa, 0x7e, 0x0, 0xc3}, 430 "JLS": {0x49, 0xff, 0xa, 0x76, 0x37, 0x49, 0xff, 0xa, 0x76, 0x32, 0x49, 0xff, 0xa, 0x76, 0x2d, 0x49, 0xff, 0xa, 0x76, 0x28, 0x49, 0xff, 0xa, 0x76, 0x23, 0x49, 0xff, 0xa, 0x76, 0x1e, 0x49, 0xff, 0xa, 0x76, 0x19, 0x49, 0xff, 0xa, 0x76, 0x14, 0x49, 0xff, 0xa, 0x76, 0xf, 0x49, 0xff, 0xa, 0x76, 0xa, 0x49, 0xff, 0xa, 0x76, 0x5, 0x49, 0xff, 0xa, 0x76, 0x0, 0xc3}, 431 "JLT": {0x49, 0xff, 0xa, 0x7c, 0x39, 0x49, 0xff, 0xa, 0x7c, 0x34, 0x49, 0xff, 0xa, 0x7c, 0x2f, 0x49, 0xff, 0xa, 0x7c, 0x2a, 0x49, 0xff, 0xa, 0x7c, 0x25, 0x49, 0xff, 0xa, 0x7c, 0x20, 0x66, 0x90, 0x49, 0xff, 0xa, 0x7c, 0x19, 0x49, 0xff, 0xa, 0x7c, 0x14, 0x49, 0xff, 0xa, 0x7c, 0xf, 0x49, 0xff, 0xa, 0x7c, 0xa, 0x49, 0xff, 0xa, 0x7c, 0x5, 0x49, 0xff, 0xa, 0x7c, 0x0, 0xc3}, 432 "JMI": {0x49, 0xff, 0xa, 0x78, 0x37, 0x49, 0xff, 0xa, 0x78, 0x32, 0x49, 0xff, 0xa, 0x78, 0x2d, 0x49, 0xff, 0xa, 0x78, 0x28, 0x49, 0xff, 0xa, 0x78, 0x23, 0x49, 0xff, 0xa, 0x78, 0x1e, 0x49, 0xff, 0xa, 0x78, 0x19, 0x49, 0xff, 0xa, 0x78, 0x14, 0x49, 0xff, 0xa, 0x78, 0xf, 0x49, 0xff, 0xa, 0x78, 0xa, 0x49, 0xff, 0xa, 0x78, 0x5, 0x49, 0xff, 0xa, 0x78, 0x0, 0xc3}, 433 "JNE": {0x49, 0xff, 0xa, 0x75, 0x39, 0x49, 0xff, 0xa, 0x75, 0x34, 0x49, 0xff, 0xa, 0x75, 0x2f, 0x49, 0xff, 0xa, 0x75, 0x2a, 0x49, 0xff, 0xa, 0x75, 0x25, 0x49, 0xff, 0xa, 0x75, 0x20, 0x66, 0x90, 0x49, 0xff, 0xa, 0x75, 0x19, 0x49, 0xff, 0xa, 0x75, 0x14, 0x49, 0xff, 0xa, 0x75, 0xf, 0x49, 0xff, 0xa, 0x75, 0xa, 0x49, 0xff, 0xa, 0x75, 0x5, 0x49, 0xff, 0xa, 0x75, 0x0, 0xc3}, 434 "JPC": {0x49, 0xff, 0xa, 0x7b, 0x37, 0x49, 0xff, 0xa, 0x7b, 0x32, 0x49, 0xff, 0xa, 0x7b, 0x2d, 0x49, 0xff, 0xa, 0x7b, 0x28, 0x49, 0xff, 0xa, 0x7b, 0x23, 0x49, 0xff, 0xa, 0x7b, 0x1e, 0x49, 0xff, 0xa, 0x7b, 0x19, 0x49, 0xff, 0xa, 0x7b, 0x14, 0x49, 0xff, 0xa, 0x7b, 0xf, 0x49, 0xff, 0xa, 0x7b, 0xa, 0x49, 0xff, 0xa, 0x7b, 0x5, 0x49, 0xff, 0xa, 0x7b, 0x0, 0xc3}, 435 "JPS": {0x49, 0xff, 0xa, 0x7a, 0x37, 0x49, 0xff, 0xa, 0x7a, 0x32, 0x49, 0xff, 0xa, 0x7a, 0x2d, 0x49, 0xff, 0xa, 0x7a, 0x28, 0x49, 0xff, 0xa, 0x7a, 0x23, 0x49, 0xff, 0xa, 0x7a, 0x1e, 0x49, 0xff, 0xa, 0x7a, 0x19, 0x49, 0xff, 0xa, 0x7a, 0x14, 0x49, 0xff, 0xa, 0x7a, 0xf, 0x49, 0xff, 0xa, 0x7a, 0xa, 0x49, 0xff, 0xa, 0x7a, 0x5, 0x49, 0xff, 0xa, 0x7a, 0x0, 0xc3}, 436 }, 437 }, 438 } 439 440 code := asm.CodeSegment{} 441 defer func() { require.NoError(t, code.Unmap()) }() 442 443 for _, tc := range tests { 444 for _, jmpInst := range []asm.Instruction{JCC, JCS, JEQ, JGE, JGT, JHI, JLE, JLS, JLT, JMI, JNE, JPC, JPS} { 445 name := tc.name + "/" + InstructionName(jmpInst) 446 447 a := NewAssembler() 448 449 var jmps []asm.Node 450 for i := 0; i < 12; i++ { // Large enough so that this includes long jump. 451 tc.setupFn(a) 452 jmps = append(jmps, a.CompileJump(jmpInst)) 453 } 454 455 target := a.CompileStandAlone(RET) 456 for _, jmp := range jmps { 457 jmp.AssignJumpTarget(target) 458 } 459 460 buf := code.NextCodeSection() 461 err := a.Assemble(buf) 462 require.NoError(t, err, name) 463 464 actual := buf.Bytes() 465 require.Equal(t, tc.jmpInstToExpectedBytes[InstructionName(jmpInst)], actual, name) 466 } 467 } 468 } 469 470 func TestAssemblerImpl_encodeNoneToBranch_errors(t *testing.T) { 471 tests := []struct { 472 n *nodeImpl 473 expErr string 474 }{ 475 { 476 n: &nodeImpl{types: operandTypesNoneToBranch, instruction: JMP}, 477 expErr: "jump target must not be nil for relative JMP", 478 }, 479 } 480 481 code := asm.CodeSegment{} 482 defer func() { require.NoError(t, code.Unmap()) }() 483 484 for _, tc := range tests { 485 a := NewAssembler() 486 buf := code.NextCodeSection() 487 err := a.encodeRelativeJump(buf, tc.n) 488 require.EqualError(t, err, tc.expErr) 489 } 490 } 491 492 func TestAssemblerImpl_encodeNoneToBranch_backward_jumps(t *testing.T) { 493 t.Run("too large offset", func(t *testing.T) { 494 code := asm.CodeSegment{} 495 defer func() { require.NoError(t, code.Unmap()) }() 496 497 a := NewAssembler() 498 targetOffsetInBinaryField := uint64(0) 499 OffsetInBinaryField := uint64(math.MaxInt32) 500 node := &nodeImpl{ 501 instruction: JMP, 502 jumpTarget: &nodeImpl{offsetInBinary: targetOffsetInBinaryField}, 503 flag: nodeFlagBackwardJump, 504 offsetInBinary: OffsetInBinaryField, 505 } 506 507 buf := code.NextCodeSection() 508 err := a.encodeRelativeJump(buf, node) 509 require.Error(t, err) 510 }) 511 512 code := asm.CodeSegment{} 513 defer func() { require.NoError(t, code.Unmap()) }() 514 515 for _, tc := range []struct { 516 jmpInst asm.Instruction 517 isShortJump bool 518 expected []byte 519 }{ 520 {jmpInst: JCC, isShortJump: true, expected: []byte{0x99, 0x73, 0xfd}}, 521 {jmpInst: JCS, isShortJump: true, expected: []byte{0x99, 0x72, 0xfd}}, 522 {jmpInst: JEQ, isShortJump: true, expected: []byte{0x99, 0x74, 0xfd}}, 523 {jmpInst: JGE, isShortJump: true, expected: []byte{0x99, 0x7d, 0xfd}}, 524 {jmpInst: JGT, isShortJump: true, expected: []byte{0x99, 0x7f, 0xfd}}, 525 {jmpInst: JHI, isShortJump: true, expected: []byte{0x99, 0x77, 0xfd}}, 526 {jmpInst: JLE, isShortJump: true, expected: []byte{0x99, 0x7e, 0xfd}}, 527 {jmpInst: JLS, isShortJump: true, expected: []byte{0x99, 0x76, 0xfd}}, 528 {jmpInst: JLT, isShortJump: true, expected: []byte{0x99, 0x7c, 0xfd}}, 529 {jmpInst: JMI, isShortJump: true, expected: []byte{0x99, 0x78, 0xfd}}, 530 {jmpInst: JMP, isShortJump: true, expected: []byte{0x99, 0xeb, 0xfd}}, 531 {jmpInst: JNE, isShortJump: true, expected: []byte{0x99, 0x75, 0xfd}}, 532 {jmpInst: JPC, isShortJump: true, expected: []byte{0x99, 0x7b, 0xfd}}, 533 {jmpInst: JPS, isShortJump: true, expected: []byte{0x99, 0x7a, 0xfd}}, 534 {jmpInst: JPL, isShortJump: true, expected: []byte{0x99, 0x79, 0xfd}}, 535 {jmpInst: JCC, isShortJump: false, expected: []byte{0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf, 0x83, 0x79, 0xff, 0xff, 0xff}}, 536 {jmpInst: JCS, isShortJump: false, expected: []byte{0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf, 0x82, 0x79, 0xff, 0xff, 0xff}}, 537 {jmpInst: JEQ, isShortJump: false, expected: []byte{0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf, 0x84, 0x79, 0xff, 0xff, 0xff}}, 538 {jmpInst: JGE, isShortJump: false, expected: []byte{0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf, 0x8d, 0x79, 0xff, 0xff, 0xff}}, 539 {jmpInst: JGT, isShortJump: false, expected: []byte{0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf, 0x8f, 0x79, 0xff, 0xff, 0xff}}, 540 {jmpInst: JHI, isShortJump: false, expected: []byte{0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf, 0x87, 0x79, 0xff, 0xff, 0xff}}, 541 {jmpInst: JLE, isShortJump: false, expected: []byte{0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf, 0x8e, 0x79, 0xff, 0xff, 0xff}}, 542 {jmpInst: JLS, isShortJump: false, expected: []byte{0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf, 0x86, 0x79, 0xff, 0xff, 0xff}}, 543 {jmpInst: JLT, isShortJump: false, expected: []byte{0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf, 0x8c, 0x79, 0xff, 0xff, 0xff}}, 544 {jmpInst: JMI, isShortJump: false, expected: []byte{0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf, 0x88, 0x79, 0xff, 0xff, 0xff}}, 545 {jmpInst: JMP, isShortJump: false, expected: []byte{0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xe9, 0x7a, 0xff, 0xff, 0xff}}, 546 {jmpInst: JNE, isShortJump: false, expected: []byte{0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf, 0x85, 0x79, 0xff, 0xff, 0xff}}, 547 {jmpInst: JPC, isShortJump: false, expected: []byte{0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf, 0x8b, 0x79, 0xff, 0xff, 0xff}}, 548 {jmpInst: JPS, isShortJump: false, expected: []byte{0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf, 0x8a, 0x79, 0xff, 0xff, 0xff}}, 549 {jmpInst: JPL, isShortJump: false, expected: []byte{0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xf, 0x89, 0x79, 0xff, 0xff, 0xff}}, 550 } { 551 name := fmt.Sprintf("%s/short=%v", InstructionName(tc.jmpInst), tc.isShortJump) 552 a := NewAssembler() 553 const dummyInstruction = CDQ 554 target := a.CompileStandAlone(dummyInstruction) 555 if !tc.isShortJump { 556 for i := 0; i < 128; i++ { 557 a.CompileStandAlone(dummyInstruction) 558 } 559 } 560 jmp := a.CompileJump(tc.jmpInst) 561 jmp.AssignJumpTarget(target) 562 563 buf := code.NextCodeSection() 564 err := a.Assemble(buf) 565 require.NoError(t, err, name) 566 567 actual := buf.Bytes() 568 require.Equal(t, tc.expected, actual, name) 569 } 570 } 571 572 func TestAssemblerImpl_encodeNoneToBranch_forward_jumps(t *testing.T) { 573 code := asm.CodeSegment{} 574 defer func() { require.NoError(t, code.Unmap()) }() 575 576 for _, tc := range []struct { 577 jmpInst asm.Instruction 578 isShortJump bool 579 expected []byte 580 }{ 581 {jmpInst: JCC, isShortJump: true, expected: []byte{0x73, 0x0, 0x99}}, 582 {jmpInst: JCS, isShortJump: true, expected: []byte{0x72, 0x0, 0x99}}, 583 {jmpInst: JEQ, isShortJump: true, expected: []byte{0x74, 0x0, 0x99}}, 584 {jmpInst: JGE, isShortJump: true, expected: []byte{0x7d, 0x0, 0x99}}, 585 {jmpInst: JGT, isShortJump: true, expected: []byte{0x7f, 0x0, 0x99}}, 586 {jmpInst: JHI, isShortJump: true, expected: []byte{0x77, 0x0, 0x99}}, 587 {jmpInst: JLE, isShortJump: true, expected: []byte{0x7e, 0x0, 0x99}}, 588 {jmpInst: JLS, isShortJump: true, expected: []byte{0x76, 0x0, 0x99}}, 589 {jmpInst: JLT, isShortJump: true, expected: []byte{0x7c, 0x0, 0x99}}, 590 {jmpInst: JMI, isShortJump: true, expected: []byte{0x78, 0x0, 0x99}}, 591 {jmpInst: JMP, isShortJump: true, expected: []byte{0xeb, 0x0, 0x99}}, 592 {jmpInst: JNE, isShortJump: true, expected: []byte{0x75, 0x0, 0x99}}, 593 {jmpInst: JPC, isShortJump: true, expected: []byte{0x7b, 0x0, 0x99}}, 594 {jmpInst: JPS, isShortJump: true, expected: []byte{0x7a, 0x0, 0x99}}, 595 {jmpInst: JPL, isShortJump: true, expected: []byte{0x79, 0x0, 0x99}}, 596 {jmpInst: JCC, isShortJump: false, expected: []byte{0xf, 0x83, 0x80, 0x0, 0x0, 0x0, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99}}, 597 {jmpInst: JCS, isShortJump: false, expected: []byte{0xf, 0x82, 0x80, 0x0, 0x0, 0x0, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99}}, 598 {jmpInst: JEQ, isShortJump: false, expected: []byte{0xf, 0x84, 0x80, 0x0, 0x0, 0x0, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99}}, 599 {jmpInst: JGE, isShortJump: false, expected: []byte{0xf, 0x8d, 0x80, 0x0, 0x0, 0x0, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99}}, 600 {jmpInst: JGT, isShortJump: false, expected: []byte{0xf, 0x8f, 0x80, 0x0, 0x0, 0x0, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99}}, 601 {jmpInst: JHI, isShortJump: false, expected: []byte{0xf, 0x87, 0x80, 0x0, 0x0, 0x0, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99}}, 602 {jmpInst: JLE, isShortJump: false, expected: []byte{0xf, 0x8e, 0x80, 0x0, 0x0, 0x0, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99}}, 603 {jmpInst: JLS, isShortJump: false, expected: []byte{0xf, 0x86, 0x80, 0x0, 0x0, 0x0, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99}}, 604 {jmpInst: JLT, isShortJump: false, expected: []byte{0xf, 0x8c, 0x80, 0x0, 0x0, 0x0, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99}}, 605 {jmpInst: JMI, isShortJump: false, expected: []byte{0xf, 0x88, 0x80, 0x0, 0x0, 0x0, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99}}, 606 {jmpInst: JMP, isShortJump: false, expected: []byte{0xe9, 0x80, 0x0, 0x0, 0x0, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99}}, 607 {jmpInst: JNE, isShortJump: false, expected: []byte{0xf, 0x85, 0x80, 0x0, 0x0, 0x0, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99}}, 608 {jmpInst: JPC, isShortJump: false, expected: []byte{0xf, 0x8b, 0x80, 0x0, 0x0, 0x0, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99}}, 609 {jmpInst: JPS, isShortJump: false, expected: []byte{0xf, 0x8a, 0x80, 0x0, 0x0, 0x0, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99}}, 610 {jmpInst: JPL, isShortJump: false, expected: []byte{0xf, 0x89, 0x80, 0x0, 0x0, 0x0, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99}}, 611 } { 612 name := fmt.Sprintf("%s/short=%v", InstructionName(tc.jmpInst), tc.isShortJump) 613 614 a := NewAssembler() 615 const dummyInstruction = CDQ 616 jmp := a.CompileJump(tc.jmpInst) 617 618 if !tc.isShortJump { 619 for i := 0; i < 128; i++ { 620 a.CompileStandAlone(dummyInstruction) 621 } 622 } 623 target := a.CompileStandAlone(dummyInstruction) 624 jmp.AssignJumpTarget(target) 625 626 buf := code.NextCodeSection() 627 err := a.Assemble(buf) 628 require.NoError(t, err, name) 629 630 actual := buf.Bytes() 631 require.Equal(t, tc.expected, actual, name) 632 } 633 }