Files
FEX-Emu--FEX/unittests/InstructionCountCI/Atomics.json
T
2026-09-02 17:15:36 -07:00

1680 lines
44 KiB
JSON

{
"Features": {
"Bitness": 64,
"EnabledHostFeatures": [],
"DisabledHostFeatures": [
"SVE128",
"SVE256",
"AFP",
"FLAGM",
"FLAGM2"
],
"BinaryCacheVersion": 9
},
"Instructions": {
"lock add byte [rax], cl": {
"ExpectedInstructionCount": 8,
"Comment": "0x00",
"ExpectedArm64ASM": [
"ldaddalb w7, w20, [x4]",
"eor x27, x20, x7",
"lsl w0, w20, #24",
"cmn w0, w7, lsl #24",
"add w26, w20, w7",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock add word [rax], cx": {
"ExpectedInstructionCount": 8,
"Comment": "0x01",
"ExpectedArm64ASM": [
"ldaddalh w7, w20, [x4]",
"eor x27, x20, x7",
"lsl w0, w20, #16",
"cmn w0, w7, lsl #16",
"add w26, w20, w7",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock add dword [rax], ecx": {
"ExpectedInstructionCount": 6,
"Comment": "0x01",
"ExpectedArm64ASM": [
"ldaddal w7, w20, [x4]",
"eor x27, x20, x7",
"adds w26, w20, w7",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock or byte [rax], cl": {
"ExpectedInstructionCount": 6,
"Comment": "0x08",
"ExpectedArm64ASM": [
"ldsetalb w7, w20, [x4]",
"orr w26, w20, w7",
"cmn wzr, w26, lsl #24",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock or word [rax], cx": {
"ExpectedInstructionCount": 6,
"Comment": "0x09",
"ExpectedArm64ASM": [
"ldsetalh w7, w20, [x4]",
"orr w26, w20, w7",
"cmn wzr, w26, lsl #16",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock or dword [rax], ecx": {
"ExpectedInstructionCount": 3,
"Comment": "0x09",
"ExpectedArm64ASM": [
"ldsetal w7, w20, [x4]",
"orr w20, w20, w7",
"subs w26, w20, #0x0 (0)"
]
},
"lock adc byte [rax], cl": {
"ExpectedInstructionCount": 18,
"Comment": "0x10",
"ExpectedArm64ASM": [
"cinc w20, w7, lo",
"ldaddalb w20, w20, [x4]",
"eor x27, x20, x7",
"uxtb x21, w7",
"cinc w22, w21, lo",
"add w23, w20, w22",
"uxtb w26, w23",
"cmp w26, w22",
"cset x22, hs",
"cmn wzr, w26, lsl #24",
"mrs x23, nzcv",
"bfi w23, w22, #29, #1",
"eor w21, w20, w21",
"eor w20, w26, w20",
"bic w20, w20, w21",
"ubfx x20, x20, #7, #1",
"bfi w23, w20, #28, #1",
"msr nzcv, x23"
]
},
"lock adc word [rax], cx": {
"ExpectedInstructionCount": 18,
"Comment": "0x11",
"ExpectedArm64ASM": [
"cinc w20, w7, lo",
"ldaddalh w20, w20, [x4]",
"eor x27, x20, x7",
"uxth x21, w7",
"cinc w22, w21, lo",
"add w23, w20, w22",
"uxth w26, w23",
"cmp w26, w22",
"cset x22, hs",
"cmn wzr, w26, lsl #16",
"mrs x23, nzcv",
"bfi w23, w22, #29, #1",
"eor w21, w20, w21",
"eor w20, w26, w20",
"bic w20, w20, w21",
"ubfx x20, x20, #15, #1",
"bfi w23, w20, #28, #1",
"msr nzcv, x23"
]
},
"lock adc dword [rax], ecx": {
"ExpectedInstructionCount": 10,
"Comment": "0x11",
"ExpectedArm64ASM": [
"cinc w20, w7, lo",
"ldaddal w20, w20, [x4]",
"eor x27, x20, x7",
"mrs x21, nzcv",
"eor w21, w21, #0x20000000",
"msr nzcv, x21",
"adcs w26, w20, w7",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock sbb byte [rax], cl": {
"ExpectedInstructionCount": 20,
"Comment": "0x18",
"ExpectedArm64ASM": [
"cinc w20, w7, lo",
"neg w1, w20",
"ldaddalb w1, w20, [x4]",
"eor x27, x20, x7",
"uxtb w20, w20",
"uxtb x21, w7",
"cinc w22, w21, lo",
"sub w23, w20, w22",
"uxtb w26, w23",
"cmp w20, w22",
"cset x22, hs",
"cmn wzr, w26, lsl #24",
"mrs x23, nzcv",
"bfi w23, w22, #29, #1",
"eor w21, w20, w21",
"eor w20, w26, w20",
"and w20, w20, w21",
"ubfx x20, x20, #7, #1",
"bfi w23, w20, #28, #1",
"msr nzcv, x23"
]
},
"lock sbb word [rax], cx": {
"ExpectedInstructionCount": 20,
"Comment": "0x19",
"ExpectedArm64ASM": [
"cinc w20, w7, lo",
"neg w1, w20",
"ldaddalh w1, w20, [x4]",
"eor x27, x20, x7",
"uxth w20, w20",
"uxth x21, w7",
"cinc w22, w21, lo",
"sub w23, w20, w22",
"uxth w26, w23",
"cmp w20, w22",
"cset x22, hs",
"cmn wzr, w26, lsl #16",
"mrs x23, nzcv",
"bfi w23, w22, #29, #1",
"eor w21, w20, w21",
"eor w20, w26, w20",
"and w20, w20, w21",
"ubfx x20, x20, #15, #1",
"bfi w23, w20, #28, #1",
"msr nzcv, x23"
]
},
"lock sbb dword [rax], ecx": {
"ExpectedInstructionCount": 5,
"Comment": "0x19",
"ExpectedArm64ASM": [
"cinc w20, w7, lo",
"neg w1, w20",
"ldaddal w1, w20, [x4]",
"eor x27, x20, x7",
"sbcs w26, w20, w7"
]
},
"lock and byte [rax], cl": {
"ExpectedInstructionCount": 7,
"Comment": "0x20",
"ExpectedArm64ASM": [
"mvn w1, w7",
"ldclralb w1, w20, [x4]",
"and w26, w20, w7",
"cmn wzr, w26, lsl #24",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock and word [rax], cx": {
"ExpectedInstructionCount": 7,
"Comment": "0x21",
"ExpectedArm64ASM": [
"mvn w1, w7",
"ldclralh w1, w20, [x4]",
"and w26, w20, w7",
"cmn wzr, w26, lsl #16",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock and dword [rax], ecx": {
"ExpectedInstructionCount": 6,
"Comment": "0x21",
"ExpectedArm64ASM": [
"mvn w1, w7",
"ldclral w1, w20, [x4]",
"ands w26, w20, w7",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock sub byte [rax], cl": {
"ExpectedInstructionCount": 6,
"Comment": "0x28",
"ExpectedArm64ASM": [
"neg w1, w7",
"ldaddalb w1, w20, [x4]",
"eor x27, x20, x7",
"lsl w0, w20, #24",
"cmp w0, w7, lsl #24",
"sub w26, w20, w7"
]
},
"lock sub word [rax], cx": {
"ExpectedInstructionCount": 6,
"Comment": "0x28",
"ExpectedArm64ASM": [
"neg w1, w7",
"ldaddalh w1, w20, [x4]",
"eor x27, x20, x7",
"lsl w0, w20, #16",
"cmp w0, w7, lsl #16",
"sub w26, w20, w7"
]
},
"lock sub dword [rax], ecx": {
"ExpectedInstructionCount": 4,
"Comment": "0x29",
"ExpectedArm64ASM": [
"neg w1, w7",
"ldaddal w1, w20, [x4]",
"eor x27, x20, x7",
"subs w26, w20, w7"
]
},
"lock xor byte [rax], cl": {
"ExpectedInstructionCount": 6,
"Comment": "0x30",
"ExpectedArm64ASM": [
"ldeoralb w7, w20, [x4]",
"eor w26, w20, w7",
"cmn wzr, w26, lsl #24",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock xor word [rax], cx": {
"ExpectedInstructionCount": 6,
"Comment": "0x31",
"ExpectedArm64ASM": [
"ldeoralh w7, w20, [x4]",
"eor w26, w20, w7",
"cmn wzr, w26, lsl #16",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock xor dword [rax], ecx": {
"ExpectedInstructionCount": 3,
"Comment": "0x31",
"ExpectedArm64ASM": [
"ldeoral w7, w20, [x4]",
"eor w20, w20, w7",
"subs w26, w20, #0x0 (0)"
]
},
"lock add qword [rax], rcx": {
"ExpectedInstructionCount": 6,
"Comment": "0x01",
"ExpectedArm64ASM": [
"ldaddal x7, x20, [x4]",
"eor x27, x20, x7",
"adds x26, x20, x7",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"xchg byte [rax], cl": {
"ExpectedInstructionCount": 2,
"Comment": "0x86",
"ExpectedArm64ASM": [
"swpalb w7, w20, [x4]",
"bfxil x7, x20, #0, #8"
]
},
"xchg word [rax], cx": {
"ExpectedInstructionCount": 2,
"Comment": "0x87",
"ExpectedArm64ASM": [
"swpalh w7, w20, [x4]",
"bfxil x7, x20, #0, #16"
]
},
"xchg dword [rax], ecx": {
"ExpectedInstructionCount": 1,
"Comment": "0x87",
"ExpectedArm64ASM": [
"swpal w7, w7, [x4]"
]
},
"xchg qword [rax], rcx": {
"ExpectedInstructionCount": 1,
"Comment": "0x87",
"ExpectedArm64ASM": [
"swpal x7, x7, [x4]"
]
},
"xadd byte [rax], bl": {
"ExpectedInstructionCount": 10,
"Comment": "0x0f 0xc0",
"ExpectedArm64ASM": [
"uxtb w20, w6",
"ldaddalb w20, w21, [x4]",
"eor x27, x21, x20",
"lsl w0, w21, #24",
"cmn w0, w20, lsl #24",
"add w26, w21, w20",
"bfxil x6, x21, #0, #8",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"xadd word [rax], bx": {
"ExpectedInstructionCount": 10,
"Comment": "0x0f 0xc1",
"ExpectedArm64ASM": [
"uxth w20, w6",
"ldaddalh w20, w21, [x4]",
"eor x27, x21, x20",
"lsl w0, w21, #16",
"cmn w0, w20, lsl #16",
"add w26, w21, w20",
"bfxil x6, x21, #0, #16",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"xadd dword [rax], ebx": {
"ExpectedInstructionCount": 7,
"Comment": "0x0f 0xc1",
"ExpectedArm64ASM": [
"mov w20, w6",
"ldaddal w20, w6, [x4]",
"eor x27, x6, x20",
"adds w26, w6, w20",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"xadd qword [rax], rbx": {
"ExpectedInstructionCount": 7,
"Comment": "0x0f 0xc1",
"ExpectedArm64ASM": [
"ldaddal x6, x20, [x4]",
"eor x27, x20, x6",
"adds x26, x20, x6",
"mrs x21, nzcv",
"eor w21, w21, #0x20000000",
"msr nzcv, x21",
"mov x6, x20"
]
},
"lock add byte [rax], 1": {
"ExpectedInstructionCount": 8,
"Comment": "GROUP1 0x80 /0",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldaddalb w20, w27, [x4]",
"lsl w0, w27, #24",
"cmn w0, w20, lsl #24",
"add w26, w27, #0x1 (1)",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock add byte [rax], 0xFF": {
"ExpectedInstructionCount": 9,
"Comment": "GROUP1 0x80 /0",
"ExpectedArm64ASM": [
"mov w20, #0xff",
"ldaddalb w20, w21, [x4]",
"mvn w27, w21",
"lsl w0, w21, #24",
"cmn w0, w20, lsl #24",
"add w26, w21, #0xff (255)",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock add word [rax], 0x100": {
"ExpectedInstructionCount": 8,
"Comment": "GROUP1 0x81 /0",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"ldaddalh w20, w27, [x4]",
"lsl w0, w27, #16",
"cmn w0, w20, lsl #16",
"add w26, w27, #0x100 (256)",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock add word [rax], 0xFFFF": {
"ExpectedInstructionCount": 9,
"Comment": "GROUP1 0x81 /0",
"ExpectedArm64ASM": [
"mov w20, #0xffff",
"ldaddalh w20, w21, [x4]",
"mvn w27, w21",
"lsl w0, w21, #16",
"cmn w0, w20, lsl #16",
"add w26, w21, w20",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock add dword [rax], 0x100": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP1 0x81 /0",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"ldaddal w20, w27, [x4]",
"adds w26, w27, #0x100 (256)",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock add dword [rax], 0xFFFFFFFF": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x81 /0",
"ExpectedArm64ASM": [
"mov w20, #0xffffffff",
"ldaddal w20, w20, [x4]",
"mvn w27, w20",
"subs w26, w20, #0x1 (1)",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock add qword [rax], 0x100": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP1 0x81 /0",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"ldaddal x20, x27, [x4]",
"adds x26, x27, #0x100 (256)",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock add qword [rax], -2147483647": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP1 0x81 /0",
"ExpectedArm64ASM": [
"mov x20, #0xffffffff80000001",
"ldaddal x20, x27, [x4]",
"adds x26, x27, x20",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock add word [rax], 1": {
"ExpectedInstructionCount": 8,
"Comment": "GROUP1 0x83 /0",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldaddalh w20, w27, [x4]",
"lsl w0, w27, #16",
"cmn w0, w20, lsl #16",
"add w26, w27, #0x1 (1)",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock add dword [rax], 1": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP1 0x83 /0",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldaddal w20, w27, [x4]",
"adds w26, w27, #0x1 (1)",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock add qword [rax], 1": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP1 0x83 /0",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldaddal x20, x27, [x4]",
"adds x26, x27, #0x1 (1)",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock or byte [rax], 1": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x80 /1",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldsetalb w20, w20, [x4]",
"orr w26, w20, #0x1",
"cmn wzr, w26, lsl #24",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock or byte [rax], 0xFF": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x80 /1",
"ExpectedArm64ASM": [
"mov w20, #0xff",
"ldsetalb w20, w20, [x4]",
"orr w26, w20, #0xff",
"cmn wzr, w26, lsl #24",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock or word [rax], 0x100": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x81 /1",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"ldsetalh w20, w20, [x4]",
"orr w26, w20, #0x100",
"cmn wzr, w26, lsl #16",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock or word [rax], 0xFFFF": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x81 /1",
"ExpectedArm64ASM": [
"mov w20, #0xffff",
"ldsetalh w20, w20, [x4]",
"orr w26, w20, #0xffff",
"cmn wzr, w26, lsl #16",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock or dword [rax], 0x100": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x81 /1",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"ldsetal w20, w20, [x4]",
"orr w20, w20, #0x100",
"subs w26, w20, #0x0 (0)"
]
},
"lock or dword [rax], 0xFFFFFFFF": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x81 /1",
"ExpectedArm64ASM": [
"mov w20, #0xffffffff",
"ldsetal w20, w21, [x4]",
"orr w20, w21, w20",
"subs w26, w20, #0x0 (0)"
]
},
"lock or qword [rax], 0x100": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x81 /1",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"ldsetal x20, x20, [x4]",
"orr x20, x20, #0x100",
"subs x26, x20, #0x0 (0)"
]
},
"lock or qword [rax], -2147483647": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x81 /1",
"ExpectedArm64ASM": [
"mov x20, #0xffffffff80000001",
"ldsetal x20, x20, [x4]",
"orr x20, x20, #0xffffffff80000001",
"subs x26, x20, #0x0 (0)"
]
},
"lock or word [rax], 1": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x83 /1",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldsetalh w20, w20, [x4]",
"orr w26, w20, #0x1",
"cmn wzr, w26, lsl #16",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock or dword [rax], 1": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x83 /1",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldsetal w20, w20, [x4]",
"orr w20, w20, #0x1",
"subs w26, w20, #0x0 (0)"
]
},
"lock or qword [rax], 1": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x83 /1",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldsetal x20, x20, [x4]",
"orr x20, x20, #0x1",
"subs x26, x20, #0x0 (0)"
]
},
"lock adc byte [rax], 1": {
"ExpectedInstructionCount": 15,
"Comment": "GROUP1 0x80 /2",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"cinc w21, w20, lo",
"ldaddalb w21, w27, [x4]",
"cinc w20, w20, lo",
"add w21, w27, w20",
"uxtb w26, w21",
"cmp w26, w20",
"cset x20, hs",
"cmn wzr, w26, lsl #24",
"mrs x21, nzcv",
"bfi w21, w20, #29, #1",
"bic w20, w26, w27",
"ubfx x20, x20, #7, #1",
"bfi w21, w20, #28, #1",
"msr nzcv, x21"
]
},
"lock adc byte [rax], 0xFF": {
"ExpectedInstructionCount": 16,
"Comment": "GROUP1 0x80 /2",
"ExpectedArm64ASM": [
"mov w20, #0xff",
"cinc w21, w20, lo",
"ldaddalb w21, w21, [x4]",
"mvn w27, w21",
"cinc w20, w20, lo",
"add w22, w21, w20",
"uxtb w26, w22",
"cmp w26, w20",
"cset x20, hs",
"cmn wzr, w26, lsl #24",
"mrs x22, nzcv",
"bfi w22, w20, #29, #1",
"bic w20, w21, w26",
"ubfx x20, x20, #7, #1",
"bfi w22, w20, #28, #1",
"msr nzcv, x22"
]
},
"lock adc word [rax], 0x100": {
"ExpectedInstructionCount": 15,
"Comment": "GROUP1 0x81 /2",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"cinc w21, w20, lo",
"ldaddalh w21, w27, [x4]",
"cinc w20, w20, lo",
"add w21, w27, w20",
"uxth w26, w21",
"cmp w26, w20",
"cset x20, hs",
"cmn wzr, w26, lsl #16",
"mrs x21, nzcv",
"bfi w21, w20, #29, #1",
"bic w20, w26, w27",
"ubfx x20, x20, #15, #1",
"bfi w21, w20, #28, #1",
"msr nzcv, x21"
]
},
"lock adc word [rax], 0xFFFF": {
"ExpectedInstructionCount": 16,
"Comment": "GROUP1 0x81 /2",
"ExpectedArm64ASM": [
"mov w20, #0xffff",
"cinc w21, w20, lo",
"ldaddalh w21, w21, [x4]",
"mvn w27, w21",
"cinc w20, w20, lo",
"add w22, w21, w20",
"uxth w26, w22",
"cmp w26, w20",
"cset x20, hs",
"cmn wzr, w26, lsl #16",
"mrs x22, nzcv",
"bfi w22, w20, #29, #1",
"bic w20, w21, w26",
"ubfx x20, x20, #15, #1",
"bfi w22, w20, #28, #1",
"msr nzcv, x22"
]
},
"lock adc dword [rax], 0x100": {
"ExpectedInstructionCount": 10,
"Comment": "GROUP1 0x81 /2",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"cinc w21, w20, lo",
"ldaddal w21, w27, [x4]",
"mrs x21, nzcv",
"eor w21, w21, #0x20000000",
"msr nzcv, x21",
"adcs w26, w27, w20",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock adc dword [rax], 0xFFFFFFFF": {
"ExpectedInstructionCount": 11,
"Comment": "GROUP1 0x81 /2",
"ExpectedArm64ASM": [
"mov w20, #0xffffffff",
"cinc w21, w20, lo",
"ldaddal w21, w21, [x4]",
"mvn w27, w21",
"mrs x22, nzcv",
"eor w22, w22, #0x20000000",
"msr nzcv, x22",
"adcs w26, w21, w20",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock adc qword [rax], 0x100": {
"ExpectedInstructionCount": 10,
"Comment": "GROUP1 0x81 /2",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"cinc x21, x20, lo",
"ldaddal x21, x27, [x4]",
"mrs x21, nzcv",
"eor w21, w21, #0x20000000",
"msr nzcv, x21",
"adcs x26, x27, x20",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock adc qword [rax], -2147483647": {
"ExpectedInstructionCount": 10,
"Comment": "GROUP1 0x81 /2",
"ExpectedArm64ASM": [
"mov x20, #0xffffffff80000001",
"cinc x21, x20, lo",
"ldaddal x21, x27, [x4]",
"mrs x21, nzcv",
"eor w21, w21, #0x20000000",
"msr nzcv, x21",
"adcs x26, x27, x20",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock adc word [rax], 1": {
"ExpectedInstructionCount": 15,
"Comment": "GROUP1 0x83 /2",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"cinc w21, w20, lo",
"ldaddalh w21, w27, [x4]",
"cinc w20, w20, lo",
"add w21, w27, w20",
"uxth w26, w21",
"cmp w26, w20",
"cset x20, hs",
"cmn wzr, w26, lsl #16",
"mrs x21, nzcv",
"bfi w21, w20, #29, #1",
"bic w20, w26, w27",
"ubfx x20, x20, #15, #1",
"bfi w21, w20, #28, #1",
"msr nzcv, x21"
]
},
"lock adc dword [rax], 1": {
"ExpectedInstructionCount": 10,
"Comment": "GROUP1 0x83 /2",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"cinc w21, w20, lo",
"ldaddal w21, w27, [x4]",
"mrs x21, nzcv",
"eor w21, w21, #0x20000000",
"msr nzcv, x21",
"adcs w26, w27, w20",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock adc qword [rax], 1": {
"ExpectedInstructionCount": 10,
"Comment": "GROUP1 0x83 /2",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"cinc x21, x20, lo",
"ldaddal x21, x27, [x4]",
"mrs x21, nzcv",
"eor w21, w21, #0x20000000",
"msr nzcv, x21",
"adcs x26, x27, x20",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock sbb byte [rax], 1": {
"ExpectedInstructionCount": 17,
"Comment": "GROUP1 0x80 /3",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"cinc w21, w20, lo",
"neg w1, w21",
"ldaddalb w1, w27, [x4]",
"uxtb w21, w27",
"cinc w20, w20, lo",
"sub w22, w21, w20",
"uxtb w26, w22",
"cmp w21, w20",
"cset x20, hs",
"cmn wzr, w26, lsl #24",
"mrs x22, nzcv",
"bfi w22, w20, #29, #1",
"bic w20, w21, w26",
"ubfx x20, x20, #7, #1",
"bfi w22, w20, #28, #1",
"msr nzcv, x22"
]
},
"lock sbb byte [rax], 0xFF": {
"ExpectedInstructionCount": 18,
"Comment": "GROUP1 0x80 /3",
"ExpectedArm64ASM": [
"mov w20, #0xff",
"cinc w21, w20, lo",
"neg w1, w21",
"ldaddalb w1, w21, [x4]",
"mvn w27, w21",
"uxtb w21, w21",
"cinc w20, w20, lo",
"sub w22, w21, w20",
"uxtb w26, w22",
"cmp w21, w20",
"cset x20, hs",
"cmn wzr, w26, lsl #24",
"mrs x22, nzcv",
"bfi w22, w20, #29, #1",
"bic w20, w26, w21",
"ubfx x20, x20, #7, #1",
"bfi w22, w20, #28, #1",
"msr nzcv, x22"
]
},
"lock sbb word [rax], 0x100": {
"ExpectedInstructionCount": 17,
"Comment": "GROUP1 0x81 /3",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"cinc w21, w20, lo",
"neg w1, w21",
"ldaddalh w1, w27, [x4]",
"uxth w21, w27",
"cinc w20, w20, lo",
"sub w22, w21, w20",
"uxth w26, w22",
"cmp w21, w20",
"cset x20, hs",
"cmn wzr, w26, lsl #16",
"mrs x22, nzcv",
"bfi w22, w20, #29, #1",
"bic w20, w21, w26",
"ubfx x20, x20, #15, #1",
"bfi w22, w20, #28, #1",
"msr nzcv, x22"
]
},
"lock sbb word [rax], 0xFFFF": {
"ExpectedInstructionCount": 18,
"Comment": "GROUP1 0x81 /3",
"ExpectedArm64ASM": [
"mov w20, #0xffff",
"cinc w21, w20, lo",
"neg w1, w21",
"ldaddalh w1, w21, [x4]",
"mvn w27, w21",
"uxth w21, w21",
"cinc w20, w20, lo",
"sub w22, w21, w20",
"uxth w26, w22",
"cmp w21, w20",
"cset x20, hs",
"cmn wzr, w26, lsl #16",
"mrs x22, nzcv",
"bfi w22, w20, #29, #1",
"bic w20, w26, w21",
"ubfx x20, x20, #15, #1",
"bfi w22, w20, #28, #1",
"msr nzcv, x22"
]
},
"lock sbb dword [rax], 0x100": {
"ExpectedInstructionCount": 5,
"Comment": "GROUP1 0x81 /3",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"cinc w21, w20, lo",
"neg w1, w21",
"ldaddal w1, w27, [x4]",
"sbcs w26, w27, w20"
]
},
"lock sbb dword [rax], 0xFFFFFFFF": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP1 0x81 /3",
"ExpectedArm64ASM": [
"mov w20, #0xffffffff",
"cinc w21, w20, lo",
"neg w1, w21",
"ldaddal w1, w21, [x4]",
"mvn w27, w21",
"sbcs w26, w21, w20"
]
},
"lock sbb qword [rax], 0x100": {
"ExpectedInstructionCount": 5,
"Comment": "GROUP1 0x81 /3",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"cinc x21, x20, lo",
"neg x1, x21",
"ldaddal x1, x27, [x4]",
"sbcs x26, x27, x20"
]
},
"lock sbb qword [rax], -2147483647": {
"ExpectedInstructionCount": 5,
"Comment": "GROUP1 0x81 /3",
"ExpectedArm64ASM": [
"mov x20, #0xffffffff80000001",
"cinc x21, x20, lo",
"neg x1, x21",
"ldaddal x1, x27, [x4]",
"sbcs x26, x27, x20"
]
},
"lock sbb word [rax], 1": {
"ExpectedInstructionCount": 17,
"Comment": "GROUP1 0x83 /3",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"cinc w21, w20, lo",
"neg w1, w21",
"ldaddalh w1, w27, [x4]",
"uxth w21, w27",
"cinc w20, w20, lo",
"sub w22, w21, w20",
"uxth w26, w22",
"cmp w21, w20",
"cset x20, hs",
"cmn wzr, w26, lsl #16",
"mrs x22, nzcv",
"bfi w22, w20, #29, #1",
"bic w20, w21, w26",
"ubfx x20, x20, #15, #1",
"bfi w22, w20, #28, #1",
"msr nzcv, x22"
]
},
"lock sbb dword [rax], 1": {
"ExpectedInstructionCount": 5,
"Comment": "GROUP1 0x83 /3",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"cinc w21, w20, lo",
"neg w1, w21",
"ldaddal w1, w27, [x4]",
"sbcs w26, w27, w20"
]
},
"lock sbb qword [rax], 1": {
"ExpectedInstructionCount": 5,
"Comment": "GROUP1 0x83 /3",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"cinc x21, x20, lo",
"neg x1, x21",
"ldaddal x1, x27, [x4]",
"sbcs x26, x27, x20"
]
},
"lock and byte [rax], 1": {
"ExpectedInstructionCount": 8,
"Comment": "GROUP1 0x80 /4",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"mvn w1, w20",
"ldclralb w1, w20, [x4]",
"and w26, w20, #0x1",
"cmn wzr, w26, lsl #24",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock and byte [rax], 0xFF": {
"ExpectedInstructionCount": 8,
"Comment": "GROUP1 0x80 /4",
"ExpectedArm64ASM": [
"mov w20, #0xff",
"mvn w1, w20",
"ldclralb w1, w20, [x4]",
"and w26, w20, #0xff",
"cmn wzr, w26, lsl #24",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock and word [rax], 0x100": {
"ExpectedInstructionCount": 8,
"Comment": "GROUP1 0x81 /4",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"mvn w1, w20",
"ldclralh w1, w20, [x4]",
"and w26, w20, #0x100",
"cmn wzr, w26, lsl #16",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock and word [rax], 0xFFFF": {
"ExpectedInstructionCount": 8,
"Comment": "GROUP1 0x81 /4",
"ExpectedArm64ASM": [
"mov w20, #0xffff",
"mvn w1, w20",
"ldclralh w1, w20, [x4]",
"and w26, w20, #0xffff",
"cmn wzr, w26, lsl #16",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock and dword [rax], 0x100": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x81 /4",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"mvn w1, w20",
"ldclral w1, w20, [x4]",
"ands w26, w20, #0x100",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock and dword [rax], 0xFFFFFFFF": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x81 /4",
"ExpectedArm64ASM": [
"mov w20, #0xffffffff",
"mvn w1, w20",
"ldclral w1, w21, [x4]",
"ands w26, w21, w20",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock and qword [rax], 0x100": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x81 /4",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"mvn x1, x20",
"ldclral x1, x20, [x4]",
"ands x26, x20, #0x100",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock and qword [rax], -2147483647": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x81 /4",
"ExpectedArm64ASM": [
"mov x20, #0xffffffff80000001",
"mvn x1, x20",
"ldclral x1, x20, [x4]",
"ands x26, x20, #0xffffffff80000001",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock and word [rax], 1": {
"ExpectedInstructionCount": 8,
"Comment": "GROUP1 0x83 /4",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"mvn w1, w20",
"ldclralh w1, w20, [x4]",
"and w26, w20, #0x1",
"cmn wzr, w26, lsl #16",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock and dword [rax], 1": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x83 /4",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"mvn w1, w20",
"ldclral w1, w20, [x4]",
"ands w26, w20, #0x1",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock and qword [rax], 1": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x83 /4",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"mvn x1, x20",
"ldclral x1, x20, [x4]",
"ands x26, x20, #0x1",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock sub byte [rax], 1": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP1 0x80 /5",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"neg w1, w20",
"ldaddalb w1, w27, [x4]",
"lsl w0, w27, #24",
"cmp w0, w20, lsl #24",
"sub w26, w27, #0x1 (1)"
]
},
"lock sub byte [rax], 0xFF": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x80 /5",
"ExpectedArm64ASM": [
"mov w20, #0xff",
"neg w1, w20",
"ldaddalb w1, w21, [x4]",
"mvn w27, w21",
"lsl w0, w21, #24",
"cmp w0, w20, lsl #24",
"sub w26, w21, #0xff (255)"
]
},
"lock sub word [rax], 0x100": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP1 0x81 /5",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"neg w1, w20",
"ldaddalh w1, w27, [x4]",
"lsl w0, w27, #16",
"cmp w0, w20, lsl #16",
"sub w26, w27, #0x100 (256)"
]
},
"lock sub word [rax], 0xFFFF": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x81 /5",
"ExpectedArm64ASM": [
"mov w20, #0xffff",
"neg w1, w20",
"ldaddalh w1, w21, [x4]",
"mvn w27, w21",
"lsl w0, w21, #16",
"cmp w0, w20, lsl #16",
"sub w26, w21, w20"
]
},
"lock sub dword [rax], 0x100": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x81 /5",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"neg w1, w20",
"ldaddal w1, w27, [x4]",
"subs w26, w27, #0x100 (256)"
]
},
"lock sub dword [rax], 0xFFFFFFFF": {
"ExpectedInstructionCount": 5,
"Comment": "GROUP1 0x81 /5",
"ExpectedArm64ASM": [
"mov w20, #0xffffffff",
"neg w1, w20",
"ldaddal w1, w20, [x4]",
"mvn w27, w20",
"adds w26, w20, #0x1 (1)"
]
},
"lock sub qword [rax], 0x100": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x81 /5",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"neg x1, x20",
"ldaddal x1, x27, [x4]",
"subs x26, x27, #0x100 (256)"
]
},
"lock sub qword [rax], -2147483647": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x81 /5",
"ExpectedArm64ASM": [
"mov x20, #0xffffffff80000001",
"neg x1, x20",
"ldaddal x1, x27, [x4]",
"subs x26, x27, x20"
]
},
"lock sub word [rax], 1": {
"ExpectedInstructionCount": 6,
"Comment": "GROUP1 0x83 /5",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"neg w1, w20",
"ldaddalh w1, w27, [x4]",
"lsl w0, w27, #16",
"cmp w0, w20, lsl #16",
"sub w26, w27, #0x1 (1)"
]
},
"lock sub dword [rax], 1": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x83 /5",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"neg w1, w20",
"ldaddal w1, w27, [x4]",
"subs w26, w27, #0x1 (1)"
]
},
"lock sub qword [rax], 1": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x83 /5",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"neg x1, x20",
"ldaddal x1, x27, [x4]",
"subs x26, x27, #0x1 (1)"
]
},
"lock xor byte [rax], 1": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x80 /6",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldeoralb w20, w20, [x4]",
"eor w26, w20, #0x1",
"cmn wzr, w26, lsl #24",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock xor byte [rax], 0xFF": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x80 /6",
"ExpectedArm64ASM": [
"mov w20, #0xff",
"ldeoralb w20, w20, [x4]",
"eor w26, w20, #0xff",
"cmn wzr, w26, lsl #24",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock xor word [rax], 0x100": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x81 /6",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"ldeoralh w20, w20, [x4]",
"eor w26, w20, #0x100",
"cmn wzr, w26, lsl #16",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock xor word [rax], 0xFFFF": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x81 /6",
"ExpectedArm64ASM": [
"mov w20, #0xffff",
"ldeoralh w20, w20, [x4]",
"eor w26, w20, #0xffff",
"cmn wzr, w26, lsl #16",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock xor dword [rax], 0x100": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x81 /6",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"ldeoral w20, w20, [x4]",
"eor w20, w20, #0x100",
"subs w26, w20, #0x0 (0)"
]
},
"lock xor dword [rax], 0xFFFFFFFF": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x81 /6",
"ExpectedArm64ASM": [
"mov w20, #0xffffffff",
"ldeoral w20, w21, [x4]",
"eor w20, w21, w20",
"subs w26, w20, #0x0 (0)"
]
},
"lock xor qword [rax], 0x100": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x81 /6",
"ExpectedArm64ASM": [
"mov w20, #0x100",
"ldeoral x20, x20, [x4]",
"eor x20, x20, #0x100",
"subs x26, x20, #0x0 (0)"
]
},
"lock xor qword [rax], -2147483647": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x81 /6",
"ExpectedArm64ASM": [
"mov x20, #0xffffffff80000001",
"ldeoral x20, x20, [x4]",
"eor x20, x20, #0xffffffff80000001",
"subs x26, x20, #0x0 (0)"
]
},
"lock xor word [rax], 1": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP1 0x83 /6",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldeoralh w20, w20, [x4]",
"eor w26, w20, #0x1",
"cmn wzr, w26, lsl #16",
"mrs x20, nzcv",
"eor w20, w20, #0x20000000",
"msr nzcv, x20"
]
},
"lock xor dword [rax], 1": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x83 /6",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldeoral w20, w20, [x4]",
"eor w20, w20, #0x1",
"subs w26, w20, #0x0 (0)"
]
},
"lock xor qword [rax], 1": {
"ExpectedInstructionCount": 4,
"Comment": "GROUP1 0x83 /6",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldeoral x20, x20, [x4]",
"eor x20, x20, #0x1",
"subs x26, x20, #0x0 (0)"
]
},
"lock dec byte [rax]": {
"ExpectedInstructionCount": 10,
"Comment": "GROUP3 0xfe /1",
"ExpectedArm64ASM": [
"mov w20, #0xff",
"ldaddalb w20, w27, [x4]",
"mov w20, #0x1",
"cset x21, hs",
"lsl w0, w27, #24",
"cmp w0, w20, lsl #24",
"sub w26, w27, #0x1 (1)",
"mrs x20, nzcv",
"bfi w20, w21, #29, #1",
"msr nzcv, x20"
]
},
"lock not byte [rax]": {
"ExpectedInstructionCount": 2,
"Comment": "GROUP2 0xf6 /2",
"ExpectedArm64ASM": [
"mov w20, #0xff",
"ldeoralb w20, w20, [x4]"
]
},
"lock not word [rax]": {
"ExpectedInstructionCount": 2,
"Comment": "GROUP2 0xf7 /2",
"ExpectedArm64ASM": [
"mov w20, #0xffff",
"ldeoralh w20, w20, [x4]"
]
},
"lock not dword [rax]": {
"ExpectedInstructionCount": 2,
"Comment": "GROUP2 0xf7 /2",
"ExpectedArm64ASM": [
"mov w20, #0xffffffff",
"ldeoral w20, w20, [x4]"
]
},
"lock not qword [rax]": {
"ExpectedInstructionCount": 2,
"Comment": "GROUP2 0xf7 /2",
"ExpectedArm64ASM": [
"mov x20, #0xffffffffffffffff",
"ldeoral x20, x20, [x4]"
]
},
"lock neg byte [rax]": {
"ExpectedInstructionCount": 9,
"Comment": "GROUP2 0xf6 /3",
"ExpectedArm64ASM": [
"ldrb w1, [x4]",
"mov w3, w1",
"neg w2, w1",
"casalb w1, w2, [x4]",
"sub w2, w1, w3",
"cbnz w2, #-0x10",
"mov w27, w1",
"cmp wzr, w27, lsl #24",
"neg w26, w27"
]
},
"lock neg word [rax]": {
"ExpectedInstructionCount": 9,
"Comment": "GROUP2 0xf7 /3",
"ExpectedArm64ASM": [
"ldrh w1, [x4]",
"mov w3, w1",
"neg w2, w1",
"casalh w1, w2, [x4]",
"sub w2, w1, w3",
"cbnz w2, #-0x10",
"mov w27, w1",
"cmp wzr, w27, lsl #16",
"neg w26, w27"
]
},
"lock neg dword [rax]": {
"ExpectedInstructionCount": 8,
"Comment": "GROUP2 0xf7 /3",
"ExpectedArm64ASM": [
"ldr w1, [x4]",
"mov w3, w1",
"neg w2, w1",
"casal w1, w2, [x4]",
"sub w2, w1, w3",
"cbnz w2, #-0x10",
"mov w27, w1",
"negs w26, w27"
]
},
"lock neg qword [rax]": {
"ExpectedInstructionCount": 8,
"Comment": "GROUP2 0xf7 /3",
"ExpectedArm64ASM": [
"ldr x1, [x4]",
"mov x3, x1",
"neg x2, x1",
"casal x1, x2, [x4]",
"sub x2, x1, x3",
"cbnz x2, #-0x10",
"mov x27, x1",
"negs x26, x27"
]
},
"lock dec word [rax]": {
"ExpectedInstructionCount": 10,
"Comment": "GROUP4 0xfe /1",
"ExpectedArm64ASM": [
"mov w20, #0xffff",
"ldaddalh w20, w27, [x4]",
"mov w20, #0x1",
"cset x21, hs",
"lsl w0, w27, #16",
"cmp w0, w20, lsl #16",
"sub w26, w27, #0x1 (1)",
"mrs x20, nzcv",
"bfi w20, w21, #29, #1",
"msr nzcv, x20"
]
},
"lock dec dword [rax]": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP4 0xfe /1",
"ExpectedArm64ASM": [
"mov w20, #0xffffffff",
"ldaddal w20, w27, [x4]",
"cset x20, hs",
"subs w26, w27, #0x1 (1)",
"mrs x21, nzcv",
"bfi w21, w20, #29, #1",
"msr nzcv, x21"
]
},
"lock dec qword [rax]": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP4 0xfe /1",
"ExpectedArm64ASM": [
"mov x20, #0xffffffffffffffff",
"ldaddal x20, x27, [x4]",
"cset x20, hs",
"subs x26, x27, #0x1 (1)",
"mrs x21, nzcv",
"bfi w21, w20, #29, #1",
"msr nzcv, x21"
]
},
"lock inc byte [rax]": {
"ExpectedInstructionCount": 9,
"Comment": "GROUP4 0xfe /0",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldaddalb w20, w27, [x4]",
"cset x21, hs",
"lsl w0, w27, #24",
"cmn w0, w20, lsl #24",
"add w26, w27, #0x1 (1)",
"mrs x20, nzcv",
"bfi w20, w21, #29, #1",
"msr nzcv, x20"
]
},
"lock inc word [rax]": {
"ExpectedInstructionCount": 9,
"Comment": "GROUP4 0xfe /0",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldaddalh w20, w27, [x4]",
"cset x21, hs",
"lsl w0, w27, #16",
"cmn w0, w20, lsl #16",
"add w26, w27, #0x1 (1)",
"mrs x20, nzcv",
"bfi w20, w21, #29, #1",
"msr nzcv, x20"
]
},
"lock inc dword [rax]": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP4 0xfe /0",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldaddal w20, w27, [x4]",
"cset x20, hs",
"adds w26, w27, #0x1 (1)",
"mrs x21, nzcv",
"bfi w21, w20, #29, #1",
"msr nzcv, x21"
]
},
"lock inc qword [rax]": {
"ExpectedInstructionCount": 7,
"Comment": "GROUP4 0xfe /0",
"ExpectedArm64ASM": [
"mov w20, #0x1",
"ldaddal x20, x27, [x4]",
"cset x20, hs",
"adds x26, x27, #0x1 (1)",
"mrs x21, nzcv",
"bfi w21, w20, #29, #1",
"msr nzcv, x21"
]
}
}
}