FEX/unittests/InstructionCountCI/SecondaryGroup.json
2023-12-21 01:54:19 -08:00

1841 lines
48 KiB
JSON

{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [
"RNG"
],
"DisabledHostFeatures": [
"SVE128",
"SVE256",
"FLAGM",
"FLAGM2"
]
},
"Instructions": {
"sgdt [rax]": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP7 0x0F 0x1 /0",
"ExpectedArm64ASM": [
"mov w20, #0x0",
"strh w20, [x4]",
"mov x20, #0xfffffffffffe0000",
"stur x20, [x4, #2]"
]
},
"bt ax, 0": {
"ExpectedInstructionCount": 3,
"Comment": "GROUP8 0x0F 0xBA /4",
"ExpectedArm64ASM": [
"ubfx x20, x4, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bt eax, 0": {
"ExpectedInstructionCount": 3,
"Comment": "GROUP8 0x0F 0xBA /4",
"ExpectedArm64ASM": [
"ubfx x20, x4, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bt rax, 0": {
"ExpectedInstructionCount": 3,
"Comment": "GROUP8 0x0F 0xBA /4",
"ExpectedArm64ASM": [
"ubfx x20, x4, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bt ax, 15": {
"ExpectedInstructionCount": 3,
"Comment": "GROUP8 0x0F 0xBA /4",
"ExpectedArm64ASM": [
"ubfx x20, x4, #15, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bt eax, 31": {
"ExpectedInstructionCount": 3,
"Comment": "GROUP8 0x0F 0xBA /4",
"ExpectedArm64ASM": [
"ubfx x20, x4, #31, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bt rax, 63": {
"ExpectedInstructionCount": 3,
"Comment": "GROUP8 0x0F 0xBA /4",
"ExpectedArm64ASM": [
"lsr x20, x4, #63",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bt word [rax], 0": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bt dword [rax], 0": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bt qword [rax], 0": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bt word [rax], 15": {
"ExpectedInstructionCount": 5,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4, #1]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bt dword [rax], 31": {
"ExpectedInstructionCount": 5,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4, #3]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bt qword [rax], 63": {
"ExpectedInstructionCount": 5,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4, #7]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bts ax, 0": {
"ExpectedInstructionCount": 5,
"Comment": "GROUP8 0x0F 0xBA /5",
"ExpectedArm64ASM": [
"ubfx x20, x4, #0, #1",
"lsl x20, x20, #29",
"orr w21, w4, #0x1",
"bfxil x4, x21, #0, #16",
"msr nzcv, x20"
]
},
"bts eax, 0": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP8 0x0F 0xBA /5",
"ExpectedArm64ASM": [
"ubfx x20, x4, #0, #1",
"lsl x20, x20, #29",
"orr w4, w4, #0x1",
"msr nzcv, x20"
]
},
"bts rax, 0": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP8 0x0F 0xBA /5",
"ExpectedArm64ASM": [
"ubfx x20, x4, #0, #1",
"lsl x20, x20, #29",
"orr x4, x4, #0x1",
"msr nzcv, x20"
]
},
"bts ax, 15": {
"ExpectedInstructionCount": 5,
"Comment": "GROUP8 0x0F 0xBA /5",
"ExpectedArm64ASM": [
"ubfx x20, x4, #15, #1",
"lsl x20, x20, #29",
"orr w21, w4, #0x8000",
"bfxil x4, x21, #0, #16",
"msr nzcv, x20"
]
},
"bts eax, 31": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP8 0x0F 0xBA /5",
"ExpectedArm64ASM": [
"ubfx x20, x4, #31, #1",
"lsl x20, x20, #29",
"orr w4, w4, #0x80000000",
"msr nzcv, x20"
]
},
"bts rax, 63": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP8 0x0F 0xBA /5",
"ExpectedArm64ASM": [
"lsr x20, x4, #63",
"lsl x20, x20, #29",
"orr x4, x4, #0x8000000000000000",
"msr nzcv, x20"
]
},
"bts word [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4]",
"orr x21, x20, #0x1",
"strb w21, [x4]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bts dword [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4]",
"orr x21, x20, #0x1",
"strb w21, [x4]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bts qword [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4]",
"orr x21, x20, #0x1",
"strb w21, [x4]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bts word [rax], 15": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4, #1]",
"orr x21, x20, #0x80",
"strb w21, [x4, #1]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bts dword [rax], 31": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4, #3]",
"orr x21, x20, #0x80",
"strb w21, [x4, #3]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"bts qword [rax], 63": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4, #7]",
"orr x21, x20, #0x80",
"strb w21, [x4, #7]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock bts word [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x0 (0)",
"mov w21, #0x1",
"ldsetalb w21, w20, [x20]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock bts dword [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x0 (0)",
"mov w21, #0x1",
"ldsetalb w21, w20, [x20]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock bts qword [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x0 (0)",
"mov w21, #0x1",
"ldsetalb w21, w20, [x20]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock bts word [rax], 15": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x1 (1)",
"mov w21, #0x80",
"ldsetalb w21, w20, [x20]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock bts dword [rax], 31": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x3 (3)",
"mov w21, #0x80",
"ldsetalb w21, w20, [x20]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock bts qword [rax], 63": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x7 (7)",
"mov w21, #0x80",
"ldsetalb w21, w20, [x20]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"btr ax, 0": {
"ExpectedInstructionCount": 5,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ubfx x20, x4, #0, #1",
"lsl x20, x20, #29",
"and w21, w4, #0xfffffffe",
"bfxil x4, x21, #0, #16",
"msr nzcv, x20"
]
},
"btr eax, 0": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ubfx x20, x4, #0, #1",
"lsl x20, x20, #29",
"and w4, w4, #0xfffffffe",
"msr nzcv, x20"
]
},
"btr rax, 0": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ubfx x20, x4, #0, #1",
"lsl x20, x20, #29",
"and x4, x4, #0xfffffffffffffffe",
"msr nzcv, x20"
]
},
"btr ax, 15": {
"ExpectedInstructionCount": 5,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ubfx x20, x4, #15, #1",
"lsl x20, x20, #29",
"and w21, w4, #0xffff7fff",
"bfxil x4, x21, #0, #16",
"msr nzcv, x20"
]
},
"btr eax, 31": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ubfx x20, x4, #31, #1",
"lsl x20, x20, #29",
"and w4, w4, #0x7fffffff",
"msr nzcv, x20"
]
},
"btr rax, 63": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"lsr x20, x4, #63",
"lsl x20, x20, #29",
"and x4, x4, #0x7fffffffffffffff",
"msr nzcv, x20"
]
},
"btr word [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4]",
"and x21, x20, #0xfffffffffffffffe",
"strb w21, [x4]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"btr dword [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4]",
"and x21, x20, #0xfffffffffffffffe",
"strb w21, [x4]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"btr qword [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4]",
"and x21, x20, #0xfffffffffffffffe",
"strb w21, [x4]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"btr word [rax], 15": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4, #1]",
"and x21, x20, #0xffffffffffffff7f",
"strb w21, [x4, #1]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"btr dword [rax], 31": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4, #3]",
"and x21, x20, #0xffffffffffffff7f",
"strb w21, [x4, #3]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"btr qword [rax], 63": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4, #7]",
"and x21, x20, #0xffffffffffffff7f",
"strb w21, [x4, #7]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock btr word [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x0 (0)",
"mov w21, #0x1",
"ldclralb w21, w20, [x20]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock btr dword [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x0 (0)",
"mov w21, #0x1",
"ldclralb w21, w20, [x20]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock btr qword [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x0 (0)",
"mov w21, #0x1",
"ldclralb w21, w20, [x20]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock btr word [rax], 15": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x1 (1)",
"mov w21, #0x80",
"ldclralb w21, w20, [x20]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock btr dword [rax], 31": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x3 (3)",
"mov w21, #0x80",
"ldclralb w21, w20, [x20]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock btr qword [rax], 63": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x7 (7)",
"mov w21, #0x80",
"ldclralb w21, w20, [x20]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"btc ax, 0": {
"ExpectedInstructionCount": 5,
"Comment": "GROUP8 0x0F 0xBA /7",
"ExpectedArm64ASM": [
"ubfx x20, x4, #0, #1",
"lsl x20, x20, #29",
"eor w21, w4, #0x1",
"bfxil x4, x21, #0, #16",
"msr nzcv, x20"
]
},
"btc eax, 0": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP8 0x0F 0xBA /7",
"ExpectedArm64ASM": [
"ubfx x20, x4, #0, #1",
"lsl x20, x20, #29",
"eor w4, w4, #0x1",
"msr nzcv, x20"
]
},
"btc rax, 0": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP8 0x0F 0xBA /7",
"ExpectedArm64ASM": [
"ubfx x20, x4, #0, #1",
"lsl x20, x20, #29",
"eor x4, x4, #0x1",
"msr nzcv, x20"
]
},
"btc ax, 15": {
"ExpectedInstructionCount": 5,
"Comment": "GROUP8 0x0F 0xBA /7",
"ExpectedArm64ASM": [
"ubfx x20, x4, #15, #1",
"lsl x20, x20, #29",
"eor w21, w4, #0x8000",
"bfxil x4, x21, #0, #16",
"msr nzcv, x20"
]
},
"btc eax, 31": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP8 0x0F 0xBA /7",
"ExpectedArm64ASM": [
"ubfx x20, x4, #31, #1",
"lsl x20, x20, #29",
"eor w4, w4, #0x80000000",
"msr nzcv, x20"
]
},
"btc rax, 63": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP8 0x0F 0xBA /7",
"ExpectedArm64ASM": [
"lsr x20, x4, #63",
"lsl x20, x20, #29",
"eor x4, x4, #0x8000000000000000",
"msr nzcv, x20"
]
},
"btc word [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4]",
"eor x21, x20, #0x1",
"strb w21, [x4]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"btc dword [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4]",
"eor x21, x20, #0x1",
"strb w21, [x4]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"btc qword [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4]",
"eor x21, x20, #0x1",
"strb w21, [x4]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"btc word [rax], 15": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4, #1]",
"eor x21, x20, #0x80",
"strb w21, [x4, #1]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"btc dword [rax], 31": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4, #3]",
"eor x21, x20, #0x80",
"strb w21, [x4, #3]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"btc qword [rax], 63": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"ldrb w20, [x4, #7]",
"eor x21, x20, #0x80",
"strb w21, [x4, #7]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock btc word [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x0 (0)",
"mov w21, #0x1",
"ldeoralb w21, w20, [x20]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock btc dword [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x0 (0)",
"mov w21, #0x1",
"ldeoralb w21, w20, [x20]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock btc qword [rax], 0": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x0 (0)",
"mov w21, #0x1",
"ldeoralb w21, w20, [x20]",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock btc word [rax], 15": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x1 (1)",
"mov w21, #0x80",
"ldeoralb w21, w20, [x20]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock btc dword [rax], 31": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x3 (3)",
"mov w21, #0x80",
"ldeoralb w21, w20, [x20]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"lock btc qword [rax], 63": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP8 0x0F 0xBA /6",
"ExpectedArm64ASM": [
"add x20, x4, #0x7 (7)",
"mov w21, #0x80",
"ldeoralb w21, w20, [x20]",
"lsr w20, w20, #7",
"ubfx x20, x20, #0, #1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"cmpxchg8b [rbp]": {
"ExpectedInstructionCount": 25,
"Comment": "GROUP9 0x0F 0xC7 /1",
"ExpectedArm64ASM": [
"add x20, x9, #0x0 (0)",
"mov w21, w4",
"mov w22, w6",
"mov w23, w22",
"mov w22, w21",
"mov w21, w7",
"mov w24, w5",
"mov w25, w24",
"mov w24, w21",
"mrs x21, nzcv",
"mov w2, w22",
"mov w3, w23",
"caspal w2, w3, w24, w25, [x20]",
"mov w24, w2",
"mov w25, w3",
"mov w20, w24",
"mov w30, w25",
"cmp x24, x22",
"ccmp x25, x23, #nzcv, eq",
"cset x22, eq",
"bfi w21, w22, #30, #1",
"msr nzcv, x21",
"cbnz x22, #+0xc",
"mov x4, x20",
"mov x6, x30"
]
},
"cmpxchg16b [rbp]": {
"ExpectedInstructionCount": 21,
"Comment": "GROUP9 0x0F 0xC7 /1",
"ExpectedArm64ASM": [
"add x20, x9, #0x0 (0)",
"mov x22, x4",
"mov x23, x6",
"mov x24, x7",
"mov x25, x5",
"mrs x21, nzcv",
"mov x2, x22",
"mov x3, x23",
"caspal x2, x3, x24, x25, [x20]",
"mov x24, x2",
"mov x25, x3",
"mov x20, x24",
"mov x30, x25",
"cmp x24, x22",
"ccmp x25, x23, #nzcv, eq",
"cset x22, eq",
"bfi w21, w22, #30, #1",
"msr nzcv, x21",
"cbnz x22, #+0xc",
"mov x4, x20",
"mov x6, x30"
]
},
"rdrand ax": {
"ExpectedInstructionCount": 9,
"Comment": "GROUP9 0x0F 0xC7 /6",
"ExpectedArm64ASM": [
"mrs x20, rndr",
"cset x21, ne",
"mov x22, x20",
"mov x20, x21",
"bfxil x4, x22, #0, #16",
"mov w27, #0x0",
"mov w26, #0x1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"rdrand eax": {
"ExpectedInstructionCount": 9,
"Comment": "GROUP9 0x0F 0xC7 /6",
"ExpectedArm64ASM": [
"mrs x20, rndr",
"cset x21, ne",
"mov x22, x20",
"mov x20, x21",
"mov w4, w22",
"mov w27, #0x0",
"mov w26, #0x1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"rdrand rax": {
"ExpectedInstructionCount": 8,
"Comment": "GROUP9 0x0F 0xC7 /6",
"ExpectedArm64ASM": [
"mrs x20, rndr",
"cset x21, ne",
"mov x4, x20",
"mov x20, x21",
"mov w27, #0x0",
"mov w26, #0x1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"rdseed ax": {
"ExpectedInstructionCount": 9,
"Comment": "GROUP9 0x0F 0xC7 /7",
"ExpectedArm64ASM": [
"mrs x20, rndrrs",
"cset x21, ne",
"mov x22, x20",
"mov x20, x21",
"bfxil x4, x22, #0, #16",
"mov w27, #0x0",
"mov w26, #0x1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"rdseed eax": {
"ExpectedInstructionCount": 9,
"Comment": "GROUP9 0x0F 0xC7 /7",
"ExpectedArm64ASM": [
"mrs x20, rndrrs",
"cset x21, ne",
"mov x22, x20",
"mov x20, x21",
"mov w4, w22",
"mov w27, #0x0",
"mov w26, #0x1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"rdseed rax": {
"ExpectedInstructionCount": 8,
"Comment": "GROUP9 0x0F 0xC7 /7",
"ExpectedArm64ASM": [
"mrs x20, rndrrs",
"cset x21, ne",
"mov x4, x20",
"mov x20, x21",
"mov w27, #0x0",
"mov w26, #0x1",
"lsl x20, x20, #29",
"msr nzcv, x20"
]
},
"psrlw mm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "MMX",
"Comment": "GROUP12 0x0F 0xC7 /2",
"ExpectedArm64ASM": []
},
"psrlw mm0, 15": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP12 0x0F 0xC7 /2",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"ushr v2.8h, v2.8h, #15",
"str d2, [x28, #768]"
]
},
"psrlw mm0, 16": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP12 0x0F 0xC7 /2",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"movi v2.2d, #0x0",
"str d2, [x28, #768]"
]
},
"psrlw xmm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "SSE",
"Comment": "GROUP12 0x0F 0xC7 /2",
"ExpectedArm64ASM": []
},
"psrlw xmm0, 15": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP12 0x0F 0xC7 /2",
"ExpectedArm64ASM": [
"ushr v16.8h, v16.8h, #15"
]
},
"psrlw xmm0, 16": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP12 0x0F 0xC7 /2",
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"psraw mm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "MMX",
"Comment": "GROUP12 0x0F 0xC7 /3",
"ExpectedArm64ASM": []
},
"psraw mm0, 15": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP12 0x0F 0xC7 /3",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"sshr v2.8h, v2.8h, #15",
"str d2, [x28, #768]"
]
},
"psraw mm0, 16": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP12 0x0F 0xC7 /3",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"sshr v2.8h, v2.8h, #15",
"str d2, [x28, #768]"
]
},
"psraw xmm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "SSE",
"Comment": "GROUP12 0x0F 0xC7 /3",
"ExpectedArm64ASM": []
},
"psraw xmm0, 15": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP12 0x0F 0xC7 /3",
"ExpectedArm64ASM": [
"sshr v16.8h, v16.8h, #15"
]
},
"psraw xmm0, 16": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP12 0x0F 0xC7 /3",
"ExpectedArm64ASM": [
"sshr v16.8h, v16.8h, #15"
]
},
"psllw mm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "MMX",
"Comment": "GROUP12 0x0F 0xC7 /6",
"ExpectedArm64ASM": []
},
"psllw mm0, 15": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP12 0x0F 0xC7 /6",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"shl v2.8h, v2.8h, #15",
"str d2, [x28, #768]"
]
},
"psllw mm0, 16": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP12 0x0F 0xC7 /6",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"movi v2.2d, #0x0",
"str d2, [x28, #768]"
]
},
"psllw xmm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "SSE",
"Comment": "GROUP12 0x0F 0xC7 /6",
"ExpectedArm64ASM": []
},
"psllw xmm0, 15": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP12 0x0F 0xC7 /6",
"ExpectedArm64ASM": [
"shl v16.8h, v16.8h, #15"
]
},
"psllw xmm0, 16": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP12 0x0F 0xC7 /6",
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"psrld mm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "MMX",
"Comment": "GROUP13 0x0F 0xC7 /2",
"ExpectedArm64ASM": []
},
"psrld mm0, 31": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP13 0x0F 0xC7 /2",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"ushr v2.4s, v2.4s, #31",
"str d2, [x28, #768]"
]
},
"psrld mm0, 32": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP13 0x0F 0xC7 /2",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"movi v2.2d, #0x0",
"str d2, [x28, #768]"
]
},
"psrld xmm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "SSE",
"Comment": "GROUP13 0x0F 0xC7 /2",
"ExpectedArm64ASM": []
},
"psrld xmm0, 31": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP13 0x0F 0xC7 /2",
"ExpectedArm64ASM": [
"ushr v16.4s, v16.4s, #31"
]
},
"psrld xmm0, 32": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP13 0x0F 0xC7 /2",
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"psrad mm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "MMX",
"Comment": "GROUP13 0x0F 0xC7 /3",
"ExpectedArm64ASM": []
},
"psrad mm0, 31": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP13 0x0F 0xC7 /3",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"sshr v2.4s, v2.4s, #31",
"str d2, [x28, #768]"
]
},
"psrad mm0, 32": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP13 0x0F 0xC7 /3",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"sshr v2.4s, v2.4s, #31",
"str d2, [x28, #768]"
]
},
"psrad xmm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "SSE",
"Comment": "GROUP13 0x0F 0xC7 /3",
"ExpectedArm64ASM": []
},
"psrad xmm0, 31": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP13 0x0F 0xC7 /3",
"ExpectedArm64ASM": [
"sshr v16.4s, v16.4s, #31"
]
},
"psrad xmm0, 32": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP13 0x0F 0xC7 /3",
"ExpectedArm64ASM": [
"sshr v16.4s, v16.4s, #31"
]
},
"pslld mm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "MMX",
"Comment": "GROUP13 0x0F 0xC7 /6",
"ExpectedArm64ASM": []
},
"pslld mm0, 31": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP13 0x0F 0xC7 /6",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"shl v2.4s, v2.4s, #31",
"str d2, [x28, #768]"
]
},
"pslld mm0, 32": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP13 0x0F 0xC7 /6",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"movi v2.2d, #0x0",
"str d2, [x28, #768]"
]
},
"pslld xmm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "SSE",
"Comment": "GROUP13 0x0F 0xC7 /6",
"ExpectedArm64ASM": []
},
"pslld xmm0, 31": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP13 0x0F 0xC7 /6",
"ExpectedArm64ASM": [
"shl v16.4s, v16.4s, #31"
]
},
"pslld xmm0, 32": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP13 0x0F 0xC7 /6",
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"psrlq mm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "MMX",
"Comment": "GROUP14 0x0F 0xC7 /2",
"ExpectedArm64ASM": []
},
"psrlq mm0, 63": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP14 0x0F 0xC7 /2",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"ushr v2.2d, v2.2d, #63",
"str d2, [x28, #768]"
]
},
"psrlq mm0, 64": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP14 0x0F 0xC7 /2",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"movi v2.2d, #0x0",
"str d2, [x28, #768]"
]
},
"psrlq xmm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "SSE",
"Comment": "GROUP14 0x0F 0xC7 /2",
"ExpectedArm64ASM": []
},
"psrlq xmm0, 63": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP14 0x0F 0xC7 /2",
"ExpectedArm64ASM": [
"ushr v16.2d, v16.2d, #63"
]
},
"psrlq xmm0, 64": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP14 0x0F 0xC7 /2",
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"psrldq xmm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "SSE",
"Comment": "GROUP14 0x0F 0xC7 /3",
"ExpectedArm64ASM": []
},
"psrldq xmm0, 15": {
"ExpectedInstructionCount": 2,
"Type": "SSE",
"Comment": "GROUP14 0x0F 0xC7 /3",
"ExpectedArm64ASM": [
"movi v2.2d, #0x0",
"ext v16.16b, v16.16b, v2.16b, #15"
]
},
"psrldq xmm0, 16": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP14 0x0F 0xC7 /3",
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"psllq mm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "MMX",
"Comment": "GROUP14 0x0F 0xC7 /6",
"ExpectedArm64ASM": []
},
"psllq mm0, 63": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP14 0x0F 0xC7 /6",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"shl v2.2d, v2.2d, #63",
"str d2, [x28, #768]"
]
},
"psllq mm0, 64": {
"ExpectedInstructionCount": 3,
"Type": "MMX",
"Comment": "GROUP14 0x0F 0xC7 /6",
"ExpectedArm64ASM": [
"ldr d2, [x28, #768]",
"movi v2.2d, #0x0",
"str d2, [x28, #768]"
]
},
"psllq xmm0, 0": {
"ExpectedInstructionCount": 0,
"Type": "SSE",
"Comment": "GROUP14 0x0F 0xC7 /6",
"ExpectedArm64ASM": []
},
"psllq xmm0, 63": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP14 0x0F 0xC7 /6",
"ExpectedArm64ASM": [
"shl v16.2d, v16.2d, #63"
]
},
"psllq xmm0, 64": {
"ExpectedInstructionCount": 1,
"Type": "SSE",
"Comment": "GROUP14 0x0F 0xC7 /6",
"ExpectedArm64ASM": [
"movi v16.2d, #0x0"
]
},
"fxsave [rax]": {
"ExpectedInstructionCount": 58,
"Comment": "GROUP15 0x0F 0xAE /0",
"ExpectedArm64ASM": [
"ldrh w20, [x28, #1152]",
"strh w20, [x4]",
"mov w20, #0x0",
"ldrb w21, [x28, #747]",
"bfi x20, x21, #11, #3",
"ldrb w21, [x28, #744]",
"ldrb w22, [x28, #745]",
"ldrb w23, [x28, #746]",
"ldrb w24, [x28, #750]",
"orr x20, x20, x21, lsl #8",
"orr x20, x20, x22, lsl #9",
"orr x20, x20, x23, lsl #10",
"orr x20, x20, x24, lsl #14",
"strh w20, [x4, #2]",
"ldrb w20, [x28, #1154]",
"strb w20, [x4, #4]",
"ldr q2, [x28, #768]",
"str q2, [x4, #32]",
"ldr q2, [x28, #784]",
"str q2, [x4, #48]",
"ldr q2, [x28, #800]",
"str q2, [x4, #64]",
"ldr q2, [x28, #816]",
"str q2, [x4, #80]",
"ldr q2, [x28, #832]",
"str q2, [x4, #96]",
"ldr q2, [x28, #848]",
"str q2, [x4, #112]",
"ldr q2, [x28, #864]",
"str q2, [x4, #128]",
"ldr q2, [x28, #880]",
"str q2, [x4, #144]",
"str q16, [x4, #160]",
"str q17, [x4, #176]",
"str q18, [x4, #192]",
"str q19, [x4, #208]",
"str q20, [x4, #224]",
"str q21, [x4, #240]",
"str q22, [x4, #256]",
"str q23, [x4, #272]",
"str q24, [x4, #288]",
"str q25, [x4, #304]",
"str q26, [x4, #320]",
"str q27, [x4, #336]",
"str q28, [x4, #352]",
"str q29, [x4, #368]",
"str q30, [x4, #384]",
"str q31, [x4, #400]",
"mov w20, #0x1f80",
"mrs x21, fpcr",
"ubfx x21, x21, #22, #3",
"rbit w0, w21",
"bfi x21, x0, #30, #2",
"bfi w20, w21, #13, #3",
"add x21, x4, #0x18 (24)",
"str w20, [x4, #24]",
"mov w20, #0xffff",
"str w20, [x21, #4]"
]
},
"rdfsbase eax": {
"ExpectedInstructionCount": 1,
"Comment": "GROUP15 0x0F 0xAE /0",
"ExpectedArm64ASM": [
"ldr w4, [x28, #176]"
]
},
"rdfsbase rax": {
"ExpectedInstructionCount": 1,
"Comment": "GROUP15 0x0F 0xAE /0",
"ExpectedArm64ASM": [
"ldr x4, [x28, #176]"
]
},
"fxrstor [rax]": {
"ExpectedInstructionCount": 56,
"Comment": "GROUP15 0x0F 0xAE /1",
"ExpectedArm64ASM": [
"ldrh w20, [x4]",
"strh w20, [x28, #1152]",
"ldrh w20, [x4, #2]",
"ubfx w21, w20, #11, #3",
"strb w21, [x28, #747]",
"ubfx w21, w20, #8, #1",
"ubfx w22, w20, #9, #1",
"ubfx w23, w20, #10, #1",
"ubfx w20, w20, #14, #1",
"strb w21, [x28, #744]",
"strb w22, [x28, #745]",
"strb w23, [x28, #746]",
"strb w20, [x28, #750]",
"ldrb w20, [x4, #4]",
"strb w20, [x28, #1154]",
"ldr q2, [x4, #32]",
"str q2, [x28, #768]",
"ldr q2, [x4, #48]",
"str q2, [x28, #784]",
"ldr q2, [x4, #64]",
"str q2, [x28, #800]",
"ldr q2, [x4, #80]",
"str q2, [x28, #816]",
"ldr q2, [x4, #96]",
"str q2, [x28, #832]",
"ldr q2, [x4, #112]",
"str q2, [x28, #848]",
"ldr q2, [x4, #128]",
"str q2, [x28, #864]",
"ldr q2, [x4, #144]",
"str q2, [x28, #880]",
"ldr q16, [x4, #160]",
"ldr q17, [x4, #176]",
"ldr q18, [x4, #192]",
"ldr q19, [x4, #208]",
"ldr q20, [x4, #224]",
"ldr q21, [x4, #240]",
"ldr q22, [x4, #256]",
"ldr q23, [x4, #272]",
"ldr q24, [x4, #288]",
"ldr q25, [x4, #304]",
"ldr q26, [x4, #320]",
"ldr q27, [x4, #336]",
"ldr q28, [x4, #352]",
"ldr q29, [x4, #368]",
"ldr q30, [x4, #384]",
"ldr q31, [x4, #400]",
"ldr w20, [x4, #24]",
"ubfx w20, w20, #13, #3",
"rbit w1, w20",
"lsr w1, w1, #30",
"mrs x0, fpcr",
"bfi x0, x1, #22, #2",
"lsr x1, x20, #2",
"bfi x0, x1, #24, #1",
"msr fpcr, x0"
]
},
"rdgsbase eax": {
"ExpectedInstructionCount": 1,
"Comment": "GROUP15 0x0F 0xAE /1",
"ExpectedArm64ASM": [
"ldr w4, [x28, #168]"
]
},
"rdgsbase rax": {
"ExpectedInstructionCount": 1,
"Comment": "GROUP15 0x0F 0xAE /1",
"ExpectedArm64ASM": [
"ldr x4, [x28, #168]"
]
},
"ldmxcsr [rax]": {
"ExpectedInstructionCount": 9,
"Comment": "GROUP15 0x0F 0xAE /2",
"ExpectedArm64ASM": [
"ldr w20, [x4]",
"ubfx w20, w20, #13, #3",
"rbit w1, w20",
"lsr w1, w1, #30",
"mrs x0, fpcr",
"bfi x0, x1, #22, #2",
"lsr x1, x20, #2",
"bfi x0, x1, #24, #1",
"msr fpcr, x0"
]
},
"wrfsbase eax": {
"ExpectedInstructionCount": 2,
"Comment": "GROUP15 0x0F 0xAE /2",
"ExpectedArm64ASM": [
"mov w20, w4",
"str x20, [x28, #176]"
]
},
"wrfsbase rax": {
"ExpectedInstructionCount": 1,
"Comment": "GROUP15 0x0F 0xAE /2",
"ExpectedArm64ASM": [
"str x4, [x28, #176]"
]
},
"stmxcsr [rax]": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP15 0x0F 0xAE /3",
"ExpectedArm64ASM": [
"mov w20, #0x1f80",
"mrs x21, fpcr",
"ubfx x21, x21, #22, #3",
"rbit w0, w21",
"bfi x21, x0, #30, #2",
"bfi w20, w21, #13, #3",
"str w20, [x4]"
]
},
"wrgsbase eax": {
"ExpectedInstructionCount": 2,
"Comment": "GROUP15 0x0F 0xAE /3",
"ExpectedArm64ASM": [
"mov w20, w4",
"str x20, [x28, #168]"
]
},
"wrgsbase rax": {
"ExpectedInstructionCount": 1,
"Comment": "GROUP15 0x0F 0xAE /3",
"ExpectedArm64ASM": [
"str x4, [x28, #168]"
]
},
"xsave [rax]": {
"ExpectedInstructionCount": 71,
"Comment": "GROUP15 0x0F 0xAE /4",
"ExpectedArm64ASM": [
"mov x20, x4",
"mov x21, x4",
"ubfx x22, x20, #0, #1",
"cbnz x22, #+0x8",
"b #+0x84",
"ldrh w22, [x28, #1152]",
"strh w22, [x21]",
"mov w22, #0x0",
"ldrb w23, [x28, #747]",
"bfi x22, x23, #11, #3",
"ldrb w23, [x28, #744]",
"ldrb w24, [x28, #745]",
"ldrb w25, [x28, #746]",
"ldrb w30, [x28, #750]",
"orr x22, x22, x23, lsl #8",
"orr x22, x22, x24, lsl #9",
"orr x22, x22, x25, lsl #10",
"orr x22, x22, x30, lsl #14",
"strh w22, [x21, #2]",
"ldrb w22, [x28, #1154]",
"strb w22, [x21, #4]",
"ldr q2, [x28, #768]",
"str q2, [x21, #32]",
"ldr q2, [x28, #784]",
"str q2, [x21, #48]",
"ldr q2, [x28, #800]",
"str q2, [x21, #64]",
"ldr q2, [x28, #816]",
"str q2, [x21, #80]",
"ldr q2, [x28, #832]",
"str q2, [x21, #96]",
"ldr q2, [x28, #848]",
"str q2, [x21, #112]",
"ldr q2, [x28, #864]",
"str q2, [x21, #128]",
"ldr q2, [x28, #880]",
"str q2, [x21, #144]",
"ubfx x22, x20, #1, #1",
"cbnz x22, #+0x8",
"b #+0x44",
"str q16, [x21, #160]",
"str q17, [x21, #176]",
"str q18, [x21, #192]",
"str q19, [x21, #208]",
"str q20, [x21, #224]",
"str q21, [x21, #240]",
"str q22, [x21, #256]",
"str q23, [x21, #272]",
"str q24, [x21, #288]",
"str q25, [x21, #304]",
"str q26, [x21, #320]",
"str q27, [x21, #336]",
"str q28, [x21, #352]",
"str q29, [x21, #368]",
"str q30, [x21, #384]",
"str q31, [x21, #400]",
"ubfx x22, x20, #1, #2",
"cbnz x22, #+0x8",
"b #+0x2c",
"mov w22, #0x1f80",
"mrs x23, fpcr",
"ubfx x23, x23, #22, #3",
"rbit w0, w23",
"bfi x23, x0, #30, #2",
"bfi w22, w23, #13, #3",
"add x23, x21, #0x18 (24)",
"str w22, [x21, #24]",
"mov w22, #0xffff",
"str w22, [x23, #4]",
"ubfx x20, x20, #0, #3",
"str x20, [x21, #512]"
]
},
"lfence": {
"ExpectedInstructionCount": 1,
"Comment": "GROUP15 0x0F 0xAE /5",
"ExpectedArm64ASM": [
"dmb ld"
]
},
"xrstor [rax]": {
"ExpectedInstructionCount": 104,
"Comment": "GROUP15 0x0F 0xAE /5",
"ExpectedArm64ASM": [
"mov x20, x4",
"ldr x21, [x20, #512]",
"ubfx x22, x21, #0, #1",
"cbnz x22, #+0x8",
"b #+0x84",
"ldrh w22, [x20]",
"strh w22, [x28, #1152]",
"ldrh w22, [x20, #2]",
"ubfx w23, w22, #11, #3",
"strb w23, [x28, #747]",
"ubfx w23, w22, #8, #1",
"ubfx w24, w22, #9, #1",
"ubfx w25, w22, #10, #1",
"ubfx w22, w22, #14, #1",
"strb w23, [x28, #744]",
"strb w24, [x28, #745]",
"strb w25, [x28, #746]",
"strb w22, [x28, #750]",
"ldrb w22, [x20, #4]",
"strb w22, [x28, #1154]",
"ldr q2, [x20, #32]",
"str q2, [x28, #768]",
"ldr q2, [x20, #48]",
"str q2, [x28, #784]",
"ldr q2, [x20, #64]",
"str q2, [x28, #800]",
"ldr q2, [x20, #80]",
"str q2, [x28, #816]",
"ldr q2, [x20, #96]",
"str q2, [x28, #832]",
"ldr q2, [x20, #112]",
"str q2, [x28, #848]",
"ldr q2, [x20, #128]",
"str q2, [x28, #864]",
"ldr q2, [x20, #144]",
"str q2, [x28, #880]",
"b #+0x4c",
"mov w22, #0x0",
"mov w23, #0x37f",
"strh w23, [x28, #1152]",
"strb w22, [x28, #747]",
"strb w22, [x28, #744]",
"strb w22, [x28, #745]",
"strb w22, [x28, #746]",
"strb w22, [x28, #750]",
"strb w22, [x28, #1154]",
"movi v2.2d, #0x0",
"str q2, [x28, #768]",
"str q2, [x28, #784]",
"str q2, [x28, #800]",
"str q2, [x28, #816]",
"str q2, [x28, #832]",
"str q2, [x28, #848]",
"str q2, [x28, #864]",
"str q2, [x28, #880]",
"ubfx x22, x21, #1, #1",
"cbnz x22, #+0x8",
"b #+0x48",
"ldr q16, [x20, #160]",
"ldr q17, [x20, #176]",
"ldr q18, [x20, #192]",
"ldr q19, [x20, #208]",
"ldr q20, [x20, #224]",
"ldr q21, [x20, #240]",
"ldr q22, [x20, #256]",
"ldr q23, [x20, #272]",
"ldr q24, [x20, #288]",
"ldr q25, [x20, #304]",
"ldr q26, [x20, #320]",
"ldr q27, [x20, #336]",
"ldr q28, [x20, #352]",
"ldr q29, [x20, #368]",
"ldr q30, [x20, #384]",
"ldr q31, [x20, #400]",
"b #+0x44",
"movi v16.2d, #0x0",
"mov v17.16b, v16.16b",
"mov v18.16b, v16.16b",
"mov v19.16b, v16.16b",
"mov v20.16b, v16.16b",
"mov v21.16b, v16.16b",
"mov v22.16b, v16.16b",
"mov v23.16b, v16.16b",
"mov v24.16b, v16.16b",
"mov v25.16b, v16.16b",
"mov v26.16b, v16.16b",
"mov v27.16b, v16.16b",
"mov v28.16b, v16.16b",
"mov v29.16b, v16.16b",
"mov v30.16b, v16.16b",
"mov v31.16b, v16.16b",
"ubfx x21, x21, #1, #2",
"cbnz x21, #+0x8",
"b #+0x2c",
"ldr w20, [x20, #24]",
"ubfx w20, w20, #13, #3",
"rbit w1, w20",
"lsr w1, w1, #30",
"mrs x0, fpcr",
"bfi x0, x1, #22, #2",
"lsr x1, x20, #2",
"bfi x0, x1, #24, #1",
"msr fpcr, x0",
"b #+0x4"
]
},
"mfence": {
"ExpectedInstructionCount": 1,
"Comment": "GROUP15 0x0F 0xAE /6",
"ExpectedArm64ASM": [
"dmb sy"
]
},
"clwb [rax]": {
"ExpectedInstructionCount": 1,
"Comment": "GROUP15 0x0F 0xAE /6",
"ExpectedArm64ASM": [
"dc cvac, x4"
]
},
"sfence": {
"ExpectedInstructionCount": 1,
"Comment": "GROUP15 0x0F 0xAE /7",
"ExpectedArm64ASM": [
"dmb st"
]
},
"clflush [rax]": {
"ExpectedInstructionCount": 2,
"Comment": "GROUP15 0x0F 0xAE /7",
"ExpectedArm64ASM": [
"dc civac, x4",
"dsb ish"
]
},
"clflushopt [rax]": {
"ExpectedInstructionCount": 1,
"Comment": "GROUP15 0x0F 0xAE /7",
"ExpectedArm64ASM": [
"dc civac, x4"
]
},
"prefetchnta [rax]": {
"ExpectedInstructionCount": 0,
"Comment": [
"GROUP16 0x0F 0x18 /0",
"NOP implementation"
],
"ExpectedArm64ASM": []
},
"prefetcht0 [rax]": {
"ExpectedInstructionCount": 0,
"Comment": [
"GROUP16 0x0F 0x18 /1",
"NOP implementation"
],
"ExpectedArm64ASM": []
},
"prefetcht1 [rax]": {
"ExpectedInstructionCount": 0,
"Comment": [
"GROUP16 0x0F 0x18 /2",
"NOP implementation"
],
"ExpectedArm64ASM": []
},
"prefetcht2 [rax]": {
"ExpectedInstructionCount": 0,
"Comment": [
"GROUP16 0x0F 0x18 /3",
"NOP implementation"
],
"ExpectedArm64ASM": []
},
"db 0x0f, 0x18, 0x20;": {
"ExpectedInstructionCount": 0,
"Comment": [
"GROUP16 0x0F 0x18 /4",
"nop dword [rax]",
"NOP implementation"
],
"ExpectedArm64ASM": []
},
"db 0x0f, 0x0d, 0x00": {
"ExpectedInstructionCount": 0,
"Comment": [
"GROUPP 0x0F 0x0D /0",
"prefetch_exclusive [rax]",
"NOP implementation"
],
"ExpectedArm64ASM": []
},
"prefetchw [rax]": {
"ExpectedInstructionCount": 0,
"Comment": [
"GROUPP 0x0F 0x0D /1",
"NOP implementation"
],
"ExpectedArm64ASM": []
},
"prefetchwt1 [rax]": {
"ExpectedInstructionCount": 0,
"Comment": [
"GROUPP 0x0F 0x0D /2",
"NOP implementation"
],
"ExpectedArm64ASM": []
}
}
}