wa-lang.org/wazero@v1.0.2/internal/asm/amd64/impl_7_test.go (about) 1 package amd64 2 3 import ( 4 "fmt" 5 "math" 6 "testing" 7 8 "wa-lang.org/wazero/internal/asm" 9 "wa-lang.org/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 for _, tc := range tests { 441 for _, jmpInst := range []asm.Instruction{JCC, JCS, JEQ, JGE, JGT, JHI, JLE, JLS, JLT, JMI, JNE, JPC, JPS} { 442 name := tc.name + "/" + InstructionName(jmpInst) 443 444 a := NewAssembler() 445 446 var jmps []asm.Node 447 for i := 0; i < 12; i++ { // Large enough so that this includes long jump. 448 tc.setupFn(a) 449 jmps = append(jmps, a.CompileJump(jmpInst)) 450 } 451 452 target := a.CompileStandAlone(RET) 453 for _, jmp := range jmps { 454 jmp.AssignJumpTarget(target) 455 } 456 457 actual, err := a.Assemble() 458 require.NoError(t, err, name) 459 require.Equal(t, tc.jmpInstToExpectedBytes[InstructionName(jmpInst)], actual, name) 460 } 461 } 462 } 463 464 func TestAssemblerImpl_encodeNoneToBranch_errors(t *testing.T) { 465 tests := []struct { 466 n *nodeImpl 467 expErr string 468 }{ 469 { 470 n: &nodeImpl{types: operandTypesNoneToBranch, instruction: JMP}, 471 expErr: "jump target must not be nil for relative JMP", 472 }, 473 } 474 475 for _, tc := range tests { 476 a := NewAssembler() 477 err := a.encodeRelativeJump(tc.n) 478 require.EqualError(t, err, tc.expErr) 479 } 480 } 481 482 func TestAssemblerImpl_encodeNoneToBranch_backward_jumps(t *testing.T) { 483 t.Run("too large offset", func(t *testing.T) { 484 a := NewAssembler() 485 targetOffsetInBinaryField := uint64(0) 486 OffsetInBinaryField := uint64(math.MaxInt32) 487 node := &nodeImpl{ 488 instruction: JMP, 489 jumpTarget: &nodeImpl{ 490 offsetInBinaryField: targetOffsetInBinaryField, jumpOrigins: map[*nodeImpl]struct{}{}, 491 }, 492 flag: nodeFlagBackwardJump, 493 offsetInBinaryField: OffsetInBinaryField, 494 } 495 err := a.encodeRelativeJump(node) 496 require.Error(t, err) 497 }) 498 499 for _, tc := range []struct { 500 jmpInst asm.Instruction 501 isShortJump bool 502 expected []byte 503 }{ 504 {jmpInst: JCC, isShortJump: true, expected: []byte{0x99, 0x73, 0xfd}}, 505 {jmpInst: JCS, isShortJump: true, expected: []byte{0x99, 0x72, 0xfd}}, 506 {jmpInst: JEQ, isShortJump: true, expected: []byte{0x99, 0x74, 0xfd}}, 507 {jmpInst: JGE, isShortJump: true, expected: []byte{0x99, 0x7d, 0xfd}}, 508 {jmpInst: JGT, isShortJump: true, expected: []byte{0x99, 0x7f, 0xfd}}, 509 {jmpInst: JHI, isShortJump: true, expected: []byte{0x99, 0x77, 0xfd}}, 510 {jmpInst: JLE, isShortJump: true, expected: []byte{0x99, 0x7e, 0xfd}}, 511 {jmpInst: JLS, isShortJump: true, expected: []byte{0x99, 0x76, 0xfd}}, 512 {jmpInst: JLT, isShortJump: true, expected: []byte{0x99, 0x7c, 0xfd}}, 513 {jmpInst: JMI, isShortJump: true, expected: []byte{0x99, 0x78, 0xfd}}, 514 {jmpInst: JMP, isShortJump: true, expected: []byte{0x99, 0xeb, 0xfd}}, 515 {jmpInst: JNE, isShortJump: true, expected: []byte{0x99, 0x75, 0xfd}}, 516 {jmpInst: JPC, isShortJump: true, expected: []byte{0x99, 0x7b, 0xfd}}, 517 {jmpInst: JPS, isShortJump: true, expected: []byte{0x99, 0x7a, 0xfd}}, 518 {jmpInst: JPL, isShortJump: true, expected: []byte{0x99, 0x79, 0xfd}}, 519 {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}}, 520 {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}}, 521 {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}}, 522 {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}}, 523 {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}}, 524 {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}}, 525 {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}}, 526 {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}}, 527 {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}}, 528 {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}}, 529 {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}}, 530 {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}}, 531 {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}}, 532 {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}}, 533 {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}}, 534 } { 535 name := fmt.Sprintf("%s/short=%v", InstructionName(tc.jmpInst), tc.isShortJump) 536 a := NewAssembler() 537 const dummyInstruction = CDQ 538 target := a.CompileStandAlone(dummyInstruction) 539 if !tc.isShortJump { 540 for i := 0; i < 128; i++ { 541 a.CompileStandAlone(dummyInstruction) 542 } 543 } 544 jmp := a.CompileJump(tc.jmpInst) 545 jmp.AssignJumpTarget(target) 546 547 actual, err := a.Assemble() 548 require.NoError(t, err, name) 549 require.Equal(t, tc.expected, actual, name) 550 } 551 } 552 553 func TestAssemblerImpl_encodeNoneToBranch_forward_jumps(t *testing.T) { 554 for _, tc := range []struct { 555 jmpInst asm.Instruction 556 isShortJump bool 557 expected []byte 558 }{ 559 {jmpInst: JCC, isShortJump: true, expected: []byte{0x73, 0x0, 0x99}}, 560 {jmpInst: JCS, isShortJump: true, expected: []byte{0x72, 0x0, 0x99}}, 561 {jmpInst: JEQ, isShortJump: true, expected: []byte{0x74, 0x0, 0x99}}, 562 {jmpInst: JGE, isShortJump: true, expected: []byte{0x7d, 0x0, 0x99}}, 563 {jmpInst: JGT, isShortJump: true, expected: []byte{0x7f, 0x0, 0x99}}, 564 {jmpInst: JHI, isShortJump: true, expected: []byte{0x77, 0x0, 0x99}}, 565 {jmpInst: JLE, isShortJump: true, expected: []byte{0x7e, 0x0, 0x99}}, 566 {jmpInst: JLS, isShortJump: true, expected: []byte{0x76, 0x0, 0x99}}, 567 {jmpInst: JLT, isShortJump: true, expected: []byte{0x7c, 0x0, 0x99}}, 568 {jmpInst: JMI, isShortJump: true, expected: []byte{0x78, 0x0, 0x99}}, 569 {jmpInst: JMP, isShortJump: true, expected: []byte{0xeb, 0x0, 0x99}}, 570 {jmpInst: JNE, isShortJump: true, expected: []byte{0x75, 0x0, 0x99}}, 571 {jmpInst: JPC, isShortJump: true, expected: []byte{0x7b, 0x0, 0x99}}, 572 {jmpInst: JPS, isShortJump: true, expected: []byte{0x7a, 0x0, 0x99}}, 573 {jmpInst: JPL, isShortJump: true, expected: []byte{0x79, 0x0, 0x99}}, 574 {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}}, 575 {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}}, 576 {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}}, 577 {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}}, 578 {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}}, 579 {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}}, 580 {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}}, 581 {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}}, 582 {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}}, 583 {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}}, 584 {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}}, 585 {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}}, 586 {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}}, 587 {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}}, 588 {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}}, 589 } { 590 name := fmt.Sprintf("%s/short=%v", InstructionName(tc.jmpInst), tc.isShortJump) 591 592 a := NewAssembler() 593 const dummyInstruction = CDQ 594 jmp := a.CompileJump(tc.jmpInst) 595 596 if !tc.isShortJump { 597 for i := 0; i < 128; i++ { 598 a.CompileStandAlone(dummyInstruction) 599 } 600 } 601 target := a.CompileStandAlone(dummyInstruction) 602 jmp.AssignJumpTarget(target) 603 604 actual, err := a.Assemble() 605 require.NoError(t, err, name) 606 require.Equal(t, tc.expected, actual, name) 607 } 608 }