blob: b31f8bcb526a5ed68e6e96fe22b3401c6fa5ec4f [file] [log] [blame]
{
"arch": "x86_64",
"insns": [
{
"encodings": {
"Adcq": { "opcodes": [ "13" ] },
"Sbbq": { "opcodes": [ "1B" ] }
},
"args": [
{ "class": "GeneralReg64", "usage": "use_def" },
{ "class": "Mem64", "usage": "use" },
{ "class": "FLAGS", "usage": "use_def" }
]
},
{
"encodings": {
"Adcq": { "opcodes": [ "81", "2" ] },
"Sbbq": { "opcodes": [ "81", "3" ] }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use_def" },
{ "class": "Imm32" },
{ "class": "FLAGS", "usage": "use_def" }
]
},
{
"encodings": {
"Adcq": { "opcodes": [ "11" ], "reg_to_rm": true },
"Sbbq": { "opcodes": [ "19" ], "reg_to_rm": true }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use_def" },
{ "class": "GeneralReg64", "usage": "use" },
{ "class": "FLAGS", "usage": "use_def" }
]
},
{
"encodings": {
"AdcqAccumulator": { "opcodes": [ "48", "15" ] },
"SbbqAccumulator": { "opcodes": [ "48", "1D" ] }
},
"args": [
{ "class": "RAX", "usage": "use_def" },
{ "class": "Imm32" },
{ "class": "FLAGS", "usage": "use_def" }
]
},
{
"encodings": {
"AdcqImm8": { "opcodes": [ "83", "2" ] },
"Rclq": { "opcodes": [ "C1", "2" ] },
"Rcrq": { "opcodes": [ "C1", "3" ] },
"SbbqImm8": { "opcodes": [ "83", "3" ] }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use_def" },
{ "class": "Imm8" },
{ "class": "FLAGS", "usage": "use_def" }
]
},
{
"encodings": {
"Addq": { "opcodes": [ "03" ] },
"Andq": { "opcodes": [ "23" ] },
"Orq": { "opcodes": [ "0B" ] },
"Subq": { "opcodes": [ "2B" ] },
"Xorq": { "opcodes": [ "33" ] }
},
"args": [
{ "class": "GeneralReg64", "usage": "use_def" },
{ "class": "Mem64", "usage": "use" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Addq": { "opcodes": [ "81", "0" ] },
"Andq": { "opcodes": [ "81", "4" ] },
"Orq": { "opcodes": [ "81", "1" ] },
"Subq": { "opcodes": [ "81", "5" ] },
"Xorq": { "opcodes": [ "81", "6" ] }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use_def" },
{ "class": "Imm32" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Addq": { "opcodes": [ "01" ], "reg_to_rm": true },
"Andq": { "opcodes": [ "21" ], "reg_to_rm": true },
"Orq": { "opcodes": [ "09" ], "reg_to_rm": true },
"Subq": { "opcodes": [ "29" ], "reg_to_rm": true },
"Xorq": { "opcodes": [ "31" ], "reg_to_rm": true }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use_def" },
{ "class": "GeneralReg64", "usage": "use" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"AddqAccumulator": { "opcodes": [ "48", "05" ] },
"AndqAccumulator": { "opcodes": [ "48", "25" ] },
"OrqAccumulator": { "opcodes": [ "48", "0D" ] },
"SubqAccumulator": { "opcodes": [ "48", "2D" ] },
"XorqAccumulator": { "opcodes": [ "48", "35" ] }
},
"args": [
{ "class": "RAX", "usage": "use_def" },
{ "class": "Imm32" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"AddqImm8": { "opcodes": [ "83", "0" ] },
"AndqImm8": { "opcodes": [ "83", "4" ] },
"Btcq": { "opcodes": [ "0F", "BA", "7" ] },
"Btq": { "opcodes": [ "0F", "BA", "4" ] },
"Btrq": { "opcodes": [ "0F", "BA", "6" ] },
"Btsq": { "opcodes": [ "0F", "BA", "5" ] },
"OrqImm8": { "opcodes": [ "83", "1" ] },
"Rolq": { "opcodes": [ "C1", "0" ] },
"Rorq": { "opcodes": [ "C1", "1" ] },
"Sarq": { "opcodes": [ "C1", "7" ] },
"Shlq": { "opcodes": [ "C1", "4" ] },
"Shrq": { "opcodes": [ "C1", "5" ] },
"SubqImm8": { "opcodes": [ "83", "5" ] },
"XorqImm8": { "opcodes": [ "83", "6" ] }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use_def" },
{ "class": "Imm8" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Bsfq": { "opcodes": [ "0F", "BC" ] },
"Bsrq": { "opcodes": [ "0F", "BD" ] }
},
"args": [
{ "class": "GeneralReg64", "usage": "def" },
{ "class": "GeneralReg64/Mem64", "usage": "use" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Btq": { "opcodes": [ "0F", "A3" ], "reg_to_rm": true },
"Cmpq": { "opcodes": [ "39" ], "reg_to_rm": true },
"Testq": { "opcodes": [ "85" ], "reg_to_rm": true }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use" },
{ "class": "GeneralReg64", "usage": "use" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Callq": { "opcodes": [ "FF", "2" ] }
},
"args": [
{ "class": "RSP", "usage": "use_def" },
{ "class": "VecMem64", "usage": "use" }
]
},
{
"encodings": {
"Cdqe": { "opcodes": [ "48", "98" ] },
"Cltq": { "opcodes": [ "48", "98" ] }
},
"args": [
{ "class": "EAX", "usage": "use" },
{ "class": "RAX", "usage": "def" }
]
},
{
"encodings": {
"Cmovq": { "opcodes": [ "0F", "40" ] }
},
"args": [
{ "class": "Cond" },
{ "class": "GeneralReg64", "usage": "use_def" },
{ "class": "GeneralReg64/Mem64", "usage": "use" },
{ "class": "FLAGS", "usage": "use" }
]
},
{
"encodings": {
"CmpXchg16b": { "opcodes": [ "0F", "C7", "1" ] },
"LockCmpXchg16b": { "opcodes": [ "F0", "0F", "C7", "1" ] }
},
"args": [
{ "class": "RAX", "usage": "use_def" },
{ "class": "RDX", "usage": "use_def" },
{ "class": "RBX", "usage": "use" },
{ "class": "RCX", "usage": "use" },
{ "class": "Mem128", "usage": "use_def" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"CmpXchgq": { "opcodes": [ "0F", "B1" ], "reg_to_rm": true }
},
"args": [
{ "class": "RAX", "usage": "use_def" },
{ "class": "GeneralReg64/Mem64", "usage": "use_def" },
{ "class": "GeneralReg64", "usage": "use" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Cmpq": { "opcodes": [ "81", "7" ] },
"Testq": { "opcodes": [ "F7", "0" ] }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use" },
{ "class": "Imm32" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Cmpq": { "opcodes": [ "3B" ] }
},
"args": [
{ "class": "GeneralReg64", "usage": "use" },
{ "class": "Mem64", "usage": "use" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"CmpqAccumulator": { "opcodes": [ "48", "3D" ] },
"TestqAccumulator": { "opcodes": [ "48", "A9" ] }
},
"args": [
{ "class": "RAX", "usage": "use" },
{ "class": "Imm32" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"CmpqImm8": { "opcodes": [ "83", "7" ] }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use" },
{ "class": "Imm8" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Cqo": { "opcodes": [ "48", "99" ] },
"Cqto": { "opcodes": [ "48", "99" ] }
},
"args": [
{ "class": "RAX", "usage": "use" },
{ "class": "RDX", "usage": "def" }
]
},
{
"encodings": {
"Crc32q": { "opcodes": [ "F2", "0F", "38", "F1" ] }
},
"args": [
{ "class": "GeneralReg64", "usage": "use_def" },
{ "class": "GeneralReg64/Mem64", "usage": "use" }
]
},
{
"encodings": {
"Cvtsd2siq": { "opcodes": [ "F2", "0F", "2D" ] },
"Cvttsd2siq": { "opcodes": [ "F2", "0F", "2C" ] }
},
"args": [
{ "class": "GeneralReg64", "usage": "def" },
{ "class": "FpReg64/VecMem64", "usage": "use" }
]
},
{
"encodings": {
"Cvtsi2sdq": { "opcodes": [ "F2", "0F", "2A" ] }
},
"args": [
{ "class": "FpReg64", "usage": "def" },
{ "class": "GeneralReg64/Mem64", "usage": "use" }
]
},
{
"encodings": {
"Cvtsi2ssq": { "opcodes": [ "F3", "0F", "2A" ] }
},
"args": [
{ "class": "FpReg32", "usage": "def" },
{ "class": "GeneralReg64/Mem64", "usage": "use" }
]
},
{
"encodings": {
"Cvtss2siq": { "opcodes": [ "F3", "0F", "2D" ] },
"Cvttss2siq": { "opcodes": [ "F3", "0F", "2C" ] }
},
"args": [
{ "class": "GeneralReg64", "usage": "def" },
{ "class": "FpReg32/Mem32", "usage": "use" }
]
},
{
"encodings": {
"Decl": { "opcodes": [ "FF", "1" ] },
"Incl": { "opcodes": [ "FF", "0" ] }
},
"args": [
{ "class": "GeneralReg32", "usage": "use_def" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Decq": { "opcodes": [ "FF", "1" ] },
"Incq": { "opcodes": [ "FF", "0" ] },
"Negq": { "opcodes": [ "F7", "3" ] },
"RolqByOne": { "opcodes": [ "D1", "0" ] },
"RorqByOne": { "opcodes": [ "D1", "1" ] },
"SarqByOne": { "opcodes": [ "D1", "7" ] },
"ShlqByOne": { "opcodes": [ "D1", "4" ] },
"ShrqByOne": { "opcodes": [ "D1", "5" ] }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use_def" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Decw": { "opcodes": [ "66", "FF", "1" ] },
"Incw": { "opcodes": [ "66", "FF", "0" ] }
},
"args": [
{ "class": "GeneralReg16", "usage": "use_def" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Divq": { "opcodes": [ "F7", "6" ] },
"Idivq": { "opcodes": [ "F7", "7" ] }
},
"args": [
{ "class": "RAX", "usage": "use_def" },
{ "class": "RDX", "usage": "use_def" },
{ "class": "GeneralReg64/Mem64", "usage": "use" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Fxrstor64": { "opcodes": [ "0F", "AE", "1" ] }
},
"args": [
{ "class": "Mem64", "usage": "use" },
{ "class": "CC", "usage": "def" }
]
},
{
"encodings": {
"Fxsave64": { "opcodes": [ "0F", "AE", "0" ] }
},
"args": [
{ "class": "CC", "usage": "def" },
{ "class": "Mem64", "usage": "use" }
]
},
{
"encodings": {
"Imulq": { "opcodes": [ "F7", "5" ] },
"Mulq": { "opcodes": [ "F7", "4" ] }
},
"args": [
{ "class": "RAX", "usage": "use_def" },
{ "class": "RDX", "usage": "def" },
{ "class": "GeneralReg64/Mem64", "usage": "use" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Imulq": { "opcodes": [ "69" ] }
},
"args": [
{ "class": "GeneralReg64", "usage": "def" },
{ "class": "GeneralReg64/Mem64", "usage": "use" },
{ "class": "Imm32" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Imulq": { "opcodes": [ "0F", "AF" ] }
},
"args": [
{ "class": "GeneralReg64", "usage": "use_def" },
{ "class": "GeneralReg64/Mem64", "usage": "use" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"ImulqImm8": { "opcodes": [ "6B" ] }
},
"args": [
{ "class": "GeneralReg64", "usage": "def" },
{ "class": "GeneralReg64/Mem64", "usage": "use" },
{ "class": "Imm8" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Jmpq": { "opcodes": [ "FF", "4" ] }
},
"args": [
{ "class": "VecMem64", "usage": "use" }
]
},
{
"encodings": {
"Leaq": { "opcodes": [ "8D" ] },
"Movq": { "opcodes": [ "8B" ] }
},
"args": [
{ "class": "GeneralReg64", "usage": "def" },
{ "class": "Mem64", "usage": "use" }
]
},
{
"encodings": {
"Movq": { "opcodes": [ "66", "0F", "7E" ], "reg_to_rm": true },
"Vmovq": { "opcodes": [ "C4", "01", "81", "7E" ], "reg_to_rm": true }
},
"args": [
{ "class": "GeneralReg64", "usage": "def" },
{ "class": "XmmReg", "usage": "use" }
]
},
{
"encodings": {
"Movq": { "opcodes": [ "66", "0F", "6E" ] },
"Vmovq": { "opcodes": [ "C4", "01", "81", "6E" ] }
},
"args": [
{ "class": "XmmReg", "usage": "def" },
{ "class": "GeneralReg64", "usage": "use" }
]
},
{
"stems": [ "Movq" ],
"args": [
{ "class": "GeneralReg64", "usage": "def" },
{ "class": "Imm64" }
]
},
{
"encodings": {
"Movq": { "opcodes": [ "89" ], "reg_to_rm": true }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "def" },
{ "class": "GeneralReg64", "usage": "use" }
]
},
{
"encodings": {
"Movq": { "opcodes": [ "C7", "0" ] }
},
"args": [
{ "class": "Mem64", "usage": "def" },
{ "class": "Imm32" }
]
},
{
"encodings": {
"Movsxbq": { "opcodes": [ "0F", "BE" ] },
"Movzxbq": { "opcodes": [ "0F", "B6" ] }
},
"args": [
{ "class": "GeneralReg64", "usage": "def" },
{ "class": "GeneralReg8/Mem8", "usage": "use" }
]
},
{
"encodings": {
"Movsxlq": { "opcodes": [ "63" ] }
},
"args": [
{ "class": "GeneralReg64", "usage": "def" },
{ "class": "GeneralReg32/Mem32", "usage": "use" }
]
},
{
"encodings": {
"Movsxwq": { "opcodes": [ "0F", "BF" ] },
"Movzxwq": { "opcodes": [ "0F", "B7" ] }
},
"args": [
{ "class": "GeneralReg64", "usage": "def" },
{ "class": "GeneralReg16/Mem16", "usage": "use" }
]
},
{
"encodings": {
"Notq": { "opcodes": [ "F7", "2" ] }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use_def" }
]
},
{
"encodings": {
"Pextrq": { "feature": "SSE4_1", "opcodes": [ "66", "0F", "3A", "16" ], "reg_to_rm": true },
"Vpextrq": { "opcodes": [ "C4", "03", "81", "16" ], "reg_to_rm": true }
},
"args": [
{ "class": "GeneralReg64", "usage": "def" },
{ "class": "VecReg128", "usage": "use" },
{ "class": "Imm8" }
]
},
{
"encodings": {
"Pinsrq": { "feature": "SSE4_1", "opcodes": [ "66", "0F", "3A", "22" ] }
},
"args": [
{ "class": "VecReg128", "usage": "use_def" },
{ "class": "GeneralReg64", "usage": "use" },
{ "class": "Imm8" }
]
},
{
"encodings": {
"Popq": { "opcodes": [ "8F", "0" ] }
},
"args": [
{ "class": "RSP", "usage": "use_def" },
{ "class": "VecMem64", "usage": "def" }
]
},
{
"encodings": {
"Pushq": { "opcodes": [ "FF", "6" ] }
},
"args": [
{ "class": "RSP", "usage": "use_def" },
{ "class": "VecMem64", "usage": "use" }
]
},
{
"encodings": {
"RclqByCl": { "opcodes": [ "D3", "2" ] },
"RcrqByCl": { "opcodes": [ "D3", "3" ] }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use_def" },
{ "class": "CL", "usage": "use" },
{ "class": "FLAGS", "usage": "use_def" }
]
},
{
"encodings": {
"RclqByOne": { "opcodes": [ "D1", "2" ] },
"RcrqByOne": { "opcodes": [ "D1", "3" ] }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use_def" },
{ "class": "FLAGS", "usage": "use_def" }
]
},
{
"encodings": {
"RolqByCl": { "opcodes": [ "D3", "0" ] },
"RorqByCl": { "opcodes": [ "D3", "1" ] },
"SarqByCl": { "opcodes": [ "D3", "7" ] },
"ShlqByCl": { "opcodes": [ "D3", "4" ] },
"ShrqByCl": { "opcodes": [ "D3", "5" ] }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use_def" },
{ "class": "CL", "usage": "use" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"Shldq": { "opcodes": [ "0F", "A4" ], "reg_to_rm": true },
"Shrdq": { "opcodes": [ "0F", "AC" ], "reg_to_rm": true }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use_def" },
{ "class": "GeneralReg64", "usage": "use" },
{ "class": "Imm8" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"encodings": {
"ShldqByCl": { "opcodes": [ "0F", "A5" ], "reg_to_rm": true },
"ShrdqByCl": { "opcodes": [ "0F", "AD" ], "reg_to_rm": true }
},
"args": [
{ "class": "GeneralReg64/Mem64", "usage": "use_def" },
{ "class": "GeneralReg64", "usage": "use" },
{ "class": "CL", "usage": "use" },
{ "class": "FLAGS", "usage": "def" }
]
},
{
"stems": [ "Vmovapd", "Vmovaps", "Vmovdqa", "Vmovdqu" ],
"args": [
{ "class": "XmmReg", "usage": "def" },
{ "class": "XmmReg", "usage": "use" }
]
},
{
"stems": [ "Vmovsd", "Vmovss" ],
"args": [
{ "class": "XmmReg", "usage": "def" },
{ "class": "XmmReg", "usage": "use" },
{ "class": "XmmReg", "usage": "use" }
]
},
{
"encodings": {
"Vpinsrq": { "opcodes": [ "C4", "03", "81", "22" ], "vex_rm_to_reg": true }
},
"args": [
{ "class": "VecReg128", "usage": "def" },
{ "class": "VecReg128", "usage": "use" },
{ "class": "GeneralReg64", "usage": "use" },
{ "class": "Imm8" }
]
},
{
"stems": [ "Xchgq" ],
"args": [
{ "class": "GeneralReg64", "usage": "use_def" },
{ "class": "GeneralReg64", "usage": "use_def" }
]
},
{
"encodings": {
"Xchgq": { "opcodes": [ "87" ] }
},
"args": [
{ "class": "GeneralReg64", "usage": "use_def" },
{ "class": "Mem64", "usage": "use_def" }
]
}
]
}