mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-15 02:00:41 +02:00
InstCountCI: Update
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
This commit is contained in:
1 parent
24cb02f4ff
commit
a8d32b9a2f
21 files changed
+2056
-2125
No files matched your search
@@ -373,10 +373,10 @@
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "0x0f 0xc1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x7",
|
||||
"ldaddal x20, x7, [x4]",
|
||||
"eor w27, w7, w20",
|
||||
"adds x26, x7, x20"
|
||||
"ldaddal x7, x20, [x4]",
|
||||
"eor w27, w20, w7",
|
||||
"adds x26, x20, x7",
|
||||
"mov x7, x20"
|
||||
]
|
||||
},
|
||||
"lock add byte [rax], 1": {
|
||||
|
||||
@@ -1024,7 +1024,7 @@
|
||||
]
|
||||
},
|
||||
"Sekiro spill block": {
|
||||
"ExpectedInstructionCount": 153,
|
||||
"ExpectedInstructionCount": 154,
|
||||
"Comment": [
|
||||
"This block of code came from the settings screen when it loaded",
|
||||
"It was originally at RIP: 0x14232cca0 and has been deobfuscated"
|
||||
@@ -1205,8 +1205,7 @@
|
||||
"lsl w4, w4, #26",
|
||||
"sub w10, w10, w4",
|
||||
"mov w5, w9",
|
||||
"ldr x20, [x8, #96]",
|
||||
"mov x4, x20",
|
||||
"ldr x4, [x8, #96]",
|
||||
"asr w5, w5, #25",
|
||||
"add w19, w19, w5",
|
||||
"lsl w5, w5, #25",
|
||||
@@ -1214,95 +1213,97 @@
|
||||
"sub w9, w9, w5",
|
||||
"asr w6, w6, #26",
|
||||
"add w29, w29, w6",
|
||||
"mov w21, w10",
|
||||
"str w21, [x20]",
|
||||
"mov w20, w10",
|
||||
"str w20, [x4]",
|
||||
"mov w12, w29",
|
||||
"lsl w6, w6, #26",
|
||||
"asr w12, w12, #25",
|
||||
"sub w19, w19, w6",
|
||||
"add w16, w16, w12",
|
||||
"mov w21, w9",
|
||||
"str w21, [x20, #4]",
|
||||
"mov w20, w9",
|
||||
"str w20, [x4, #4]",
|
||||
"mov w13, w16",
|
||||
"lsl w12, w12, #25",
|
||||
"asr w13, w13, #26",
|
||||
"sub w29, w29, w12",
|
||||
"add w17, w17, w13",
|
||||
"mov w21, w19",
|
||||
"str w21, [x20, #8]",
|
||||
"mov w20, w19",
|
||||
"str w20, [x4, #8]",
|
||||
"lsl w13, w13, #26",
|
||||
"mov w14, w17",
|
||||
"asr w14, w14, #25",
|
||||
"sub w16, w16, w13",
|
||||
"add w15, w15, w14",
|
||||
"mov w21, w29",
|
||||
"str w21, [x20, #12]",
|
||||
"mov w21, w15",
|
||||
"str w21, [x8, #112]",
|
||||
"mov x10, x20",
|
||||
"mov w20, w29",
|
||||
"str w20, [x4, #12]",
|
||||
"mov w20, w15",
|
||||
"str w20, [x8, #112]",
|
||||
"mov x10, x4",
|
||||
"asr w15, w15, #26",
|
||||
"add w7, w7, w15",
|
||||
"mov w21, w16",
|
||||
"str w21, [x20, #16]",
|
||||
"mov w21, w7",
|
||||
"str w21, [x8, #120]",
|
||||
"mov w20, w16",
|
||||
"str w20, [x4, #16]",
|
||||
"mov w20, w7",
|
||||
"str w20, [x8, #120]",
|
||||
"asr w7, w7, #25",
|
||||
"add w11, w11, w7",
|
||||
"mov w21, w11",
|
||||
"str w21, [x8]",
|
||||
"mov w20, w11",
|
||||
"str w20, [x8]",
|
||||
"asr w11, w11, #26",
|
||||
"ldr w21, [x8, #104]",
|
||||
"add w21, w21, w11",
|
||||
"str w21, [x8, #104]",
|
||||
"ldr w20, [x8, #104]",
|
||||
"add w20, w20, w11",
|
||||
"str w20, [x8, #104]",
|
||||
"lsl w14, w14, #25",
|
||||
"ldr w5, [x8, #104]",
|
||||
"sub w17, w17, w14",
|
||||
"mov w21, w17",
|
||||
"str w21, [x20, #20]",
|
||||
"ldr w4, [x8, #112]",
|
||||
"mov w20, w17",
|
||||
"str w20, [x4, #20]",
|
||||
"ldr w20, [x8, #112]",
|
||||
"mov x21, x4",
|
||||
"mov x4, x20",
|
||||
"lsl w15, w15, #26",
|
||||
"sub w4, w4, w15",
|
||||
"sub w4, w20, w15",
|
||||
"lsl w7, w7, #25",
|
||||
"mov w21, w4",
|
||||
"str w21, [x20, #24]",
|
||||
"mov w20, w4",
|
||||
"str w20, [x21, #24]",
|
||||
"ldr w4, [x8, #120]",
|
||||
"sub w4, w4, w7",
|
||||
"lsl w11, w11, #26",
|
||||
"mov w21, w4",
|
||||
"str w21, [x20, #28]",
|
||||
"mov w20, w4",
|
||||
"str w20, [x21, #28]",
|
||||
"ldr w4, [x8]",
|
||||
"sub w4, w4, w11",
|
||||
"mov w21, w4",
|
||||
"str w21, [x20, #32]",
|
||||
"mov w20, w4",
|
||||
"str w20, [x21, #32]",
|
||||
"mov x4, x5",
|
||||
"and w4, w5, #0xfe000000",
|
||||
"sub w5, w5, w4",
|
||||
"mov w21, w5",
|
||||
"str w21, [x20, #36]",
|
||||
"mov w20, w5",
|
||||
"str w20, [x21, #36]",
|
||||
"mvn w27, w8",
|
||||
"adds x26, x8, #0x18 (24)",
|
||||
"mov x8, x26",
|
||||
"ldr x29, [x26]",
|
||||
"add x20, x26, #0x8 (8)",
|
||||
"mov x8, x20",
|
||||
"add x8, x26, #0x8 (8)",
|
||||
"ldr x19, [x26, #8]",
|
||||
"add x21, x20, #0x8 (8)",
|
||||
"mov x8, x21",
|
||||
"ldr x17, [x20, #8]",
|
||||
"add x20, x21, #0x8 (8)",
|
||||
"add x20, x8, #0x8 (8)",
|
||||
"mov x21, x8",
|
||||
"mov x8, x20",
|
||||
"ldr x16, [x21, #8]",
|
||||
"add x21, x20, #0x8 (8)",
|
||||
"mov x8, x21",
|
||||
"ldr x11, [x20, #8]",
|
||||
"add x20, x21, #0x8 (8)",
|
||||
"ldr x17, [x21, #8]",
|
||||
"add x8, x20, #0x8 (8)",
|
||||
"ldr x16, [x20, #8]",
|
||||
"add x20, x8, #0x8 (8)",
|
||||
"mov x21, x8",
|
||||
"mov x8, x20",
|
||||
"ldr x10, [x21, #8]",
|
||||
"add x21, x20, #0x8 (8)",
|
||||
"mov x8, x21",
|
||||
"ldr x9, [x20, #8]",
|
||||
"add x8, x21, #0x8 (8)",
|
||||
"ldr x7, [x21, #8]",
|
||||
"ldr x11, [x21, #8]",
|
||||
"add x8, x20, #0x8 (8)",
|
||||
"ldr x10, [x20, #8]",
|
||||
"add x20, x8, #0x8 (8)",
|
||||
"mov x21, x8",
|
||||
"mov x8, x20",
|
||||
"ldr x9, [x21, #8]",
|
||||
"add x8, x20, #0x8 (8)",
|
||||
"ldr x7, [x20, #8]",
|
||||
"add x8, x8, #0x8 (8)"
|
||||
]
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -322,10 +322,10 @@
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "0x0f 0xc1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x7",
|
||||
"ldaddal x20, x7, [x4]",
|
||||
"eor w27, w7, w20",
|
||||
"adds x26, x7, x20"
|
||||
"ldaddal x7, x20, [x4]",
|
||||
"eor w27, w20, w7",
|
||||
"adds x26, x20, x7",
|
||||
"mov x7, x20"
|
||||
]
|
||||
},
|
||||
"lock add byte [rax], 1": {
|
||||
|
||||
@@ -225,8 +225,8 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"subs x20, x4, x7",
|
||||
"cset x20, eq",
|
||||
"bfxil x5, x20, #0, #8",
|
||||
"cset x21, eq",
|
||||
"bfxil x5, x21, #0, #8",
|
||||
"mov x26, x5",
|
||||
"cmn wzr, w26, lsl #24"
|
||||
]
|
||||
|
||||
@@ -81,11 +81,11 @@
|
||||
"mov w10, w5",
|
||||
"mov x6, x9",
|
||||
"mov x4, x7",
|
||||
"ldr s18, [x6]",
|
||||
"add x4, x4, #0x20 (32)",
|
||||
"ldr s18, [x9]",
|
||||
"add x4, x7, #0x20 (32)",
|
||||
"fmul s0, s18, s16",
|
||||
"mov v18.s[0], v0.s[0]",
|
||||
"add x6, x6, #0x20 (32)",
|
||||
"add x6, x9, #0x20 (32)",
|
||||
"sub x20, x4, #0x20 (32)",
|
||||
"ldr s2, [x20]",
|
||||
"fadd s0, s18, s2",
|
||||
@@ -191,7 +191,7 @@
|
||||
]
|
||||
},
|
||||
"bytemark data xor loop": {
|
||||
"ExpectedInstructionCount": 16,
|
||||
"ExpectedInstructionCount": 17,
|
||||
"Comment": [
|
||||
"Saw this in bytemark"
|
||||
],
|
||||
@@ -207,21 +207,22 @@
|
||||
"cmp rdi, rax"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"mov x6, x20",
|
||||
"mov x5, x20",
|
||||
"mov x6, x4",
|
||||
"mov x5, x4",
|
||||
"mov x19, x10",
|
||||
"add x4, x20, #0x1 (1)",
|
||||
"lsr x6, x20, #6",
|
||||
"and w5, w20, #0x3f",
|
||||
"lsl x19, x19, x5",
|
||||
"add x20, x7, x6, lsl #3",
|
||||
"ldr x20, [x20]",
|
||||
"eor x20, x20, x19",
|
||||
"add x20, x4, #0x1 (1)",
|
||||
"mov x21, x4",
|
||||
"mov x4, x20",
|
||||
"lsr x6, x21, #6",
|
||||
"and w5, w21, #0x3f",
|
||||
"lsl x19, x10, x5",
|
||||
"add x21, x7, x6, lsl #3",
|
||||
"str x20, [x21]",
|
||||
"eor w27, w11, w4",
|
||||
"subs x26, x11, x4",
|
||||
"ldr x21, [x21]",
|
||||
"eor x21, x21, x19",
|
||||
"add x22, x7, x6, lsl #3",
|
||||
"str x21, [x22]",
|
||||
"eor w27, w11, w20",
|
||||
"subs x26, x11, x20",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
@@ -237,10 +238,10 @@
|
||||
"cmp r13, qword [rsi+r11*8]"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x15, x13",
|
||||
"add x20, x10, x15, lsl #3",
|
||||
"add x20, x10, x13, lsl #3",
|
||||
"ldr x17, [x20]",
|
||||
"orr x15, x15, #0x1",
|
||||
"mov x15, x13",
|
||||
"orr x15, x13, #0x1",
|
||||
"add x20, x10, x15, lsl #3",
|
||||
"ldr x20, [x20]",
|
||||
"eor w27, w17, w20",
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
]
|
||||
},
|
||||
"dxvk hotblock from MGRR": {
|
||||
"ExpectedInstructionCount": 39,
|
||||
"ExpectedInstructionCount": 41,
|
||||
"Comment": [
|
||||
"Hottest block in Metal Gear Rising: Revengeance render thread"
|
||||
],
|
||||
@@ -110,32 +110,34 @@
|
||||
"mov w20, #0xffffffdc",
|
||||
"ldr w10, [x9, w20, sxtw]",
|
||||
"mov w20, #0xffffffff",
|
||||
"adds w21, w4, w20",
|
||||
"mov x5, x21",
|
||||
"adds w5, w4, w20",
|
||||
"mvn w27, w6",
|
||||
"adcs w26, w6, w20",
|
||||
"mov x7, x26",
|
||||
"mov w20, #0xffffffd8",
|
||||
"str w21, [x9, w20, sxtw]",
|
||||
"str w5, [x9, w20, sxtw]",
|
||||
"mov w20, #0xffffffd4",
|
||||
"str w26, [x9, w20, sxtw]",
|
||||
"mov x7, x21",
|
||||
"mov w22, #0xffffffd0",
|
||||
"str w21, [x9, w22, sxtw]",
|
||||
"ldr w5, [x9, w20, sxtw]",
|
||||
"add w20, w10, #0x8 (8)",
|
||||
"mov w22, w4",
|
||||
"mov w23, w6",
|
||||
"mov w24, w21",
|
||||
"mov w25, w5",
|
||||
"mov w2, w22",
|
||||
"mov w3, w23",
|
||||
"caspal w2, w3, w24, w25, [x20]",
|
||||
"mov x7, x5",
|
||||
"mov w21, #0xffffffd0",
|
||||
"str w5, [x9, w21, sxtw]",
|
||||
"ldr w20, [x9, w20, sxtw]",
|
||||
"mov x21, x5",
|
||||
"mov x5, x20",
|
||||
"add w22, w10, #0x8 (8)",
|
||||
"mov w24, w4",
|
||||
"mov w25, w6",
|
||||
"mov w0, w21",
|
||||
"mov w21, w20",
|
||||
"mov w20, w0",
|
||||
"mov w2, w24",
|
||||
"mov w3, w25",
|
||||
"caspal w2, w3, w20, w21, [x22]",
|
||||
"mov w20, w2",
|
||||
"mov w21, w3",
|
||||
"mrs x0, nzcv",
|
||||
"cmp w20, w22",
|
||||
"ccmp w21, w23, #nzcv, eq",
|
||||
"cmp w20, w24",
|
||||
"ccmp w21, w25, #nzcv, eq",
|
||||
"rmif x0, #0, #NzCV",
|
||||
"mov w22, w21",
|
||||
"csel x4, x20, x4, ne",
|
||||
@@ -255,13 +257,12 @@
|
||||
"pop ebp"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, w8",
|
||||
"str w9, [x20, #-4]!",
|
||||
"mov x8, x20",
|
||||
"mov x9, x20",
|
||||
"mov x27, x20",
|
||||
"subs w26, w20, #0x44 (68)",
|
||||
"str w9, [x8, #-4]!",
|
||||
"mov x9, x8",
|
||||
"mov x27, x8",
|
||||
"subs w26, w8, #0x44 (68)",
|
||||
"cfinv",
|
||||
"mov x20, x8",
|
||||
"mov x8, x26",
|
||||
"mov w21, #0xffffffbc",
|
||||
"str w5, [x20, w21, sxtw]",
|
||||
@@ -2671,10 +2672,11 @@
|
||||
"add w20, w20, #0x1 (1)",
|
||||
"and w20, w20, #0x7",
|
||||
"strb w20, [x28, #747]",
|
||||
"mov w8, w9",
|
||||
"ldr w4, [x8, #8]",
|
||||
"ldr w9, [x8]",
|
||||
"add x8, x8, #0x4 (4)"
|
||||
"ldr w4, [x9, #8]",
|
||||
"mov x8, x9",
|
||||
"ldr w20, [x9]",
|
||||
"add x8, x9, #0x4 (4)",
|
||||
"mov x9, x20"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,10 +58,10 @@
|
||||
"mov w10, w5",
|
||||
"mov x6, x9",
|
||||
"mov x4, x7",
|
||||
"ldr s18, [x6]",
|
||||
"add x4, x4, #0x20 (32)",
|
||||
"ldr s18, [x9]",
|
||||
"add x4, x7, #0x20 (32)",
|
||||
"fmul s18, s18, s16",
|
||||
"add x6, x6, #0x20 (32)",
|
||||
"add x6, x9, #0x20 (32)",
|
||||
"sub x20, x4, #0x20 (32)",
|
||||
"ldr s2, [x20]",
|
||||
"fadd s18, s18, s2",
|
||||
|
||||
@@ -104,28 +104,26 @@
|
||||
]
|
||||
},
|
||||
"add al, 1": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "0x04",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #24",
|
||||
"lsl w0, w4, #24",
|
||||
"cmn w0, w20, lsl #24",
|
||||
"add w26, w27, #0x1 (1)",
|
||||
"mov x4, x27",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
]
|
||||
},
|
||||
"add ax, 1": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "0x05",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #16",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w27, #0x1 (1)",
|
||||
"mov x4, x27",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
]
|
||||
},
|
||||
@@ -134,7 +132,7 @@
|
||||
"Comment": "0x05",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds w26, w27, #0x1 (1)",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -143,7 +141,7 @@
|
||||
"Comment": "0x05",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x27, #0x1 (1)",
|
||||
"adds x26, x4, #0x1 (1)",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -487,44 +485,42 @@
|
||||
]
|
||||
},
|
||||
"adc al, 1": {
|
||||
"ExpectedInstructionCount": 15,
|
||||
"ExpectedInstructionCount": 14,
|
||||
"Comment": "0x14",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"mov w20, #0x1",
|
||||
"adc w20, wzr, w20",
|
||||
"add w21, w27, w20",
|
||||
"add w21, w4, w20",
|
||||
"uxtb w26, w21",
|
||||
"cmp w26, w20",
|
||||
"cset x20, lo",
|
||||
"cmn wzr, w26, lsl #24",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"eor w20, w27, #0x1",
|
||||
"eor w21, w26, w27",
|
||||
"eor w20, w4, #0x1",
|
||||
"eor w21, w26, w4",
|
||||
"bic w20, w21, w20",
|
||||
"rmif x20, #7, #nzcV",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
]
|
||||
},
|
||||
"adc ax, 1": {
|
||||
"ExpectedInstructionCount": 15,
|
||||
"ExpectedInstructionCount": 14,
|
||||
"Comment": "0x15",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"mov w20, #0x1",
|
||||
"adc w20, wzr, w20",
|
||||
"add w21, w27, w20",
|
||||
"add w21, w4, w20",
|
||||
"uxth w26, w21",
|
||||
"cmp w26, w20",
|
||||
"cset x20, lo",
|
||||
"cmn wzr, w26, lsl #16",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"eor w20, w27, #0x1",
|
||||
"eor w21, w26, w27",
|
||||
"eor w20, w4, #0x1",
|
||||
"eor w21, w26, w4",
|
||||
"bic w20, w21, w20",
|
||||
"rmif x20, #15, #nzcV",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
]
|
||||
},
|
||||
@@ -534,7 +530,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w27, w20",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -544,7 +540,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x27, x20",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -749,11 +745,11 @@
|
||||
]
|
||||
},
|
||||
"sbb al, 1": {
|
||||
"ExpectedInstructionCount": 14,
|
||||
"ExpectedInstructionCount": 13,
|
||||
"Comment": "0x1C",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"uxtb w20, w27",
|
||||
"uxtb w20, w4",
|
||||
"cset w21, hs",
|
||||
"sub w21, w20, w21",
|
||||
"sub w22, w21, #0x1 (1)",
|
||||
@@ -764,16 +760,15 @@
|
||||
"rmif x21, #63, #nzCv",
|
||||
"bic w20, w20, w26",
|
||||
"rmif x20, #7, #nzcV",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
]
|
||||
},
|
||||
"sbb ax, 1": {
|
||||
"ExpectedInstructionCount": 14,
|
||||
"ExpectedInstructionCount": 13,
|
||||
"Comment": "0x1D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"uxth w20, w27",
|
||||
"uxth w20, w4",
|
||||
"cset w21, hs",
|
||||
"sub w21, w20, w21",
|
||||
"sub w22, w21, #0x1 (1)",
|
||||
@@ -784,7 +779,6 @@
|
||||
"rmif x21, #63, #nzCv",
|
||||
"bic w20, w20, w26",
|
||||
"rmif x20, #15, #nzcV",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
]
|
||||
},
|
||||
@@ -795,7 +789,7 @@
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs w26, w27, w20",
|
||||
"sbcs w26, w4, w20",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -807,7 +801,7 @@
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs x26, x27, x20",
|
||||
"sbcs x26, x4, x20",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -1126,30 +1120,28 @@
|
||||
]
|
||||
},
|
||||
"sub al, 1": {
|
||||
"ExpectedInstructionCount": 8,
|
||||
"ExpectedInstructionCount": 7,
|
||||
"Comment": "0x2C",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #24",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w27, #0x1 (1)",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"cfinv",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
]
|
||||
},
|
||||
"sub ax, 1": {
|
||||
"ExpectedInstructionCount": 8,
|
||||
"ExpectedInstructionCount": 7,
|
||||
"Comment": "0x2D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #16",
|
||||
"lsl w0, w4, #16",
|
||||
"cmp w0, w20, lsl #16",
|
||||
"sub w26, w27, #0x1 (1)",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"cfinv",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
]
|
||||
},
|
||||
@@ -1158,7 +1150,7 @@
|
||||
"Comment": "0x2D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, #0x1 (1)",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -1168,7 +1160,7 @@
|
||||
"Comment": "0x2D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x27, #0x1 (1)",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -1476,9 +1468,9 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #24",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w27, #0x1 (1)",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
@@ -1488,9 +1480,9 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #16",
|
||||
"lsl w0, w4, #16",
|
||||
"cmp w0, w20, lsl #16",
|
||||
"sub w26, w27, #0x1 (1)",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
@@ -1499,7 +1491,7 @@
|
||||
"Comment": "0x3D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, #0x1 (1)",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
@@ -1508,7 +1500,7 @@
|
||||
"Comment": "0x3D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x27, #0x1 (1)",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
@@ -1900,10 +1892,10 @@
|
||||
]
|
||||
},
|
||||
"repz cmpsb": {
|
||||
"ExpectedInstructionCount": 26,
|
||||
"ExpectedInstructionCount": 27,
|
||||
"Comment": "0xa6",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x68",
|
||||
"cbz x5, #+0x6c",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -1923,19 +1915,20 @@
|
||||
"sub x10, x10, #0x1 (1)",
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"lsl w0, w20, #24",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #24",
|
||||
"cmp w0, w26, lsl #24",
|
||||
"sub w26, w20, w26",
|
||||
"sub w26, w21, w26",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
"repz cmpsw": {
|
||||
"ExpectedInstructionCount": 26,
|
||||
"ExpectedInstructionCount": 27,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x68",
|
||||
"cbz x5, #+0x6c",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -1955,19 +1948,20 @@
|
||||
"sub x10, x10, #0x2 (2)",
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"lsl w0, w20, #16",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #16",
|
||||
"cmp w0, w26, lsl #16",
|
||||
"sub w26, w20, w26",
|
||||
"sub w26, w21, w26",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
"repz cmpsd": {
|
||||
"ExpectedInstructionCount": 24,
|
||||
"ExpectedInstructionCount": 25,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x60",
|
||||
"cbz x5, #+0x64",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -1987,17 +1981,18 @@
|
||||
"sub x10, x10, #0x4 (4)",
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"subs w26, w20, w26",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs w26, w21, w26",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
"repz cmpsq": {
|
||||
"ExpectedInstructionCount": 24,
|
||||
"ExpectedInstructionCount": 25,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x60",
|
||||
"cbz x5, #+0x64",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -2017,17 +2012,18 @@
|
||||
"sub x10, x10, #0x8 (8)",
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"subs x26, x20, x26",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs x26, x21, x26",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
"repnz cmpsb": {
|
||||
"ExpectedInstructionCount": 26,
|
||||
"ExpectedInstructionCount": 27,
|
||||
"Comment": "0xa6",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x68",
|
||||
"cbz x5, #+0x6c",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -2047,19 +2043,20 @@
|
||||
"sub x10, x10, #0x1 (1)",
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"lsl w0, w20, #24",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #24",
|
||||
"cmp w0, w26, lsl #24",
|
||||
"sub w26, w20, w26",
|
||||
"sub w26, w21, w26",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
"repnz cmpsw": {
|
||||
"ExpectedInstructionCount": 26,
|
||||
"ExpectedInstructionCount": 27,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x68",
|
||||
"cbz x5, #+0x6c",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -2079,19 +2076,20 @@
|
||||
"sub x10, x10, #0x2 (2)",
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"lsl w0, w20, #16",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #16",
|
||||
"cmp w0, w26, lsl #16",
|
||||
"sub w26, w20, w26",
|
||||
"sub w26, w21, w26",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
"repnz cmpsd": {
|
||||
"ExpectedInstructionCount": 24,
|
||||
"ExpectedInstructionCount": 25,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x60",
|
||||
"cbz x5, #+0x64",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -2111,17 +2109,18 @@
|
||||
"sub x10, x10, #0x4 (4)",
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"subs w26, w20, w26",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs w26, w21, w26",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
"repnz cmpsq": {
|
||||
"ExpectedInstructionCount": 24,
|
||||
"ExpectedInstructionCount": 25,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x60",
|
||||
"cbz x5, #+0x64",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -2141,9 +2140,10 @@
|
||||
"sub x10, x10, #0x8 (8)",
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"subs x26, x20, x26",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs x26, x21, x26",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
|
||||
@@ -12,15 +12,14 @@
|
||||
},
|
||||
"Instructions": {
|
||||
"add al, 1": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP1 0x80 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #24",
|
||||
"lsl w0, w4, #24",
|
||||
"cmn w0, w20, lsl #24",
|
||||
"add w26, w27, #0x1 (1)",
|
||||
"mov x4, x27",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
]
|
||||
},
|
||||
@@ -34,32 +33,31 @@
|
||||
]
|
||||
},
|
||||
"adc al, 1": {
|
||||
"ExpectedInstructionCount": 15,
|
||||
"ExpectedInstructionCount": 14,
|
||||
"Comment": "GROUP1 0x80 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"mov w20, #0x1",
|
||||
"adc w20, wzr, w20",
|
||||
"add w21, w27, w20",
|
||||
"add w21, w4, w20",
|
||||
"uxtb w26, w21",
|
||||
"cmp w26, w20",
|
||||
"cset x20, lo",
|
||||
"cmn wzr, w26, lsl #24",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"eor w20, w27, #0x1",
|
||||
"eor w21, w26, w27",
|
||||
"eor w20, w4, #0x1",
|
||||
"eor w21, w26, w4",
|
||||
"bic w20, w21, w20",
|
||||
"rmif x20, #7, #nzcV",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
]
|
||||
},
|
||||
"sbb al, 1": {
|
||||
"ExpectedInstructionCount": 14,
|
||||
"ExpectedInstructionCount": 13,
|
||||
"Comment": "GROUP1 0x80 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"uxtb w20, w27",
|
||||
"uxtb w20, w4",
|
||||
"cset w21, hs",
|
||||
"sub w21, w20, w21",
|
||||
"sub w22, w21, #0x1 (1)",
|
||||
@@ -70,7 +68,6 @@
|
||||
"rmif x21, #63, #nzCv",
|
||||
"bic w20, w20, w26",
|
||||
"rmif x20, #7, #nzcV",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
]
|
||||
},
|
||||
@@ -84,16 +81,15 @@
|
||||
]
|
||||
},
|
||||
"sub al, 1": {
|
||||
"ExpectedInstructionCount": 8,
|
||||
"ExpectedInstructionCount": 7,
|
||||
"Comment": "GROUP1 0x80 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #24",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w27, #0x1 (1)",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"cfinv",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
]
|
||||
},
|
||||
@@ -112,9 +108,9 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #24",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w27, #0x1 (1)",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
@@ -222,15 +218,14 @@
|
||||
]
|
||||
},
|
||||
"add ax, 256": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #16",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w27, #0x100 (256)",
|
||||
"mov x4, x27",
|
||||
"add w26, w4, #0x100 (256)",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
]
|
||||
},
|
||||
@@ -239,7 +234,7 @@
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds w26, w27, #0x100 (256)",
|
||||
"adds w26, w4, #0x100 (256)",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -248,7 +243,7 @@
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x27, #0x100 (256)",
|
||||
"adds x26, x4, #0x100 (256)",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -276,7 +271,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w27, w20",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -286,7 +281,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x27, x20",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -297,7 +292,7 @@
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs w26, w27, w20",
|
||||
"sbcs w26, w4, w20",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -309,7 +304,7 @@
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs x26, x27, x20",
|
||||
"sbcs x26, x4, x20",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -335,7 +330,7 @@
|
||||
"Comment": "GROUP1 0x81 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, #0x100 (256)",
|
||||
"subs w26, w4, #0x100 (256)",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -345,7 +340,7 @@
|
||||
"Comment": "GROUP1 0x81 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x27, #0x100 (256)",
|
||||
"subs x26, x4, #0x100 (256)",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -373,7 +368,7 @@
|
||||
"Comment": "GROUP1 0x81 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, #0x100 (256)",
|
||||
"subs w26, w4, #0x100 (256)",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
@@ -382,20 +377,19 @@
|
||||
"Comment": "GROUP1 0x81 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x27, #0x100 (256)",
|
||||
"subs x26, x4, #0x100 (256)",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
"add ax, -256": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xff00",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #16",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w27, w20",
|
||||
"mov x4, x27",
|
||||
"add w26, w4, w20",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
]
|
||||
},
|
||||
@@ -405,7 +399,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"adds w26, w27, w20",
|
||||
"adds w26, w4, w20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -414,7 +408,7 @@
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x27, #0x100 (256)",
|
||||
"subs x26, x4, #0x100 (256)",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -442,7 +436,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w27, w20",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -452,7 +446,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffff00",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x27, x20",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -463,7 +457,7 @@
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs w26, w27, w20",
|
||||
"sbcs w26, w4, w20",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -475,7 +469,7 @@
|
||||
"mov x20, #0xffffffffffffff00",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs x26, x27, x20",
|
||||
"sbcs x26, x4, x20",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -502,7 +496,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, w20",
|
||||
"subs w26, w4, w20",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -512,7 +506,7 @@
|
||||
"Comment": "GROUP1 0x81 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x27, #0x100 (256)",
|
||||
"adds x26, x4, #0x100 (256)",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -541,7 +535,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, w20",
|
||||
"subs w26, w4, w20",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
@@ -550,20 +544,19 @@
|
||||
"Comment": "GROUP1 0x81 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x27, #0x100 (256)",
|
||||
"adds x26, x4, #0x100 (256)",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
"add ax, 1": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP1 0x83 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #16",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w27, #0x1 (1)",
|
||||
"mov x4, x27",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
]
|
||||
},
|
||||
@@ -572,7 +565,7 @@
|
||||
"Comment": "GROUP1 0x83 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds w26, w27, #0x1 (1)",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -581,7 +574,7 @@
|
||||
"Comment": "GROUP1 0x83 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x27, #0x1 (1)",
|
||||
"adds x26, x4, #0x1 (1)",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -609,7 +602,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w27, w20",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -619,7 +612,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x27, x20",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -630,7 +623,7 @@
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs w26, w27, w20",
|
||||
"sbcs w26, w4, w20",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -642,7 +635,7 @@
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs x26, x27, x20",
|
||||
"sbcs x26, x4, x20",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -668,7 +661,7 @@
|
||||
"Comment": "GROUP1 0x83 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, #0x1 (1)",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -678,7 +671,7 @@
|
||||
"Comment": "GROUP1 0x83 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x27, #0x1 (1)",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"cfinv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -706,7 +699,7 @@
|
||||
"Comment": "GROUP1 0x83 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, #0x1 (1)",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
@@ -715,7 +708,7 @@
|
||||
"Comment": "GROUP1 0x83 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x27, #0x1 (1)",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
@@ -1402,12 +1395,12 @@
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP2 0xd1 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"cset w21, hs",
|
||||
"orr x4, x21, x20, lsl #1",
|
||||
"rmif x20, #62, #nzCv",
|
||||
"eor x20, x4, x20",
|
||||
"rmif x20, #63, #nzcV"
|
||||
"cset w20, hs",
|
||||
"orr x20, x20, x4, lsl #1",
|
||||
"rmif x4, #62, #nzCv",
|
||||
"eor x21, x20, x4",
|
||||
"rmif x21, #63, #nzcV",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"rcr ax, 1": {
|
||||
@@ -1919,30 +1912,30 @@
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "GROUP2 0xd3 /4",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"lsl w4, w20, w5",
|
||||
"lsl w20, w4, w5",
|
||||
"cbz w5, #+0x1c",
|
||||
"ands w26, w4, w4",
|
||||
"ands w26, w20, w20",
|
||||
"neg w0, w5",
|
||||
"lsr w0, w20, w0",
|
||||
"eor w2, w20, w4",
|
||||
"lsr w0, w4, w0",
|
||||
"eor w2, w4, w20",
|
||||
"rmif x0, #63, #nzCv",
|
||||
"rmif x2, #31, #nzcV"
|
||||
"rmif x2, #31, #nzcV",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"shl rax, cl": {
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "GROUP2 0xd3 /4",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"lsl x4, x20, x5",
|
||||
"lsl x20, x4, x5",
|
||||
"cbz x5, #+0x1c",
|
||||
"ands x26, x4, x4",
|
||||
"ands x26, x20, x20",
|
||||
"neg x0, x5",
|
||||
"lsr x0, x20, x0",
|
||||
"eor x2, x20, x4",
|
||||
"lsr x0, x4, x0",
|
||||
"eor x2, x4, x20",
|
||||
"rmif x0, #63, #nzCv",
|
||||
"rmif x2, #63, #nzcV"
|
||||
"rmif x2, #63, #nzcV",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"shr ax, cl": {
|
||||
@@ -1966,30 +1959,30 @@
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "GROUP2 0xd3 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"lsr w4, w20, w5",
|
||||
"lsr w20, w4, w5",
|
||||
"cbz w5, #+0x1c",
|
||||
"ands w26, w4, w4",
|
||||
"ands w26, w20, w20",
|
||||
"sub x0, x5, #0x1 (1)",
|
||||
"lsr w0, w20, w0",
|
||||
"eor w2, w20, w4",
|
||||
"lsr w0, w4, w0",
|
||||
"eor w2, w4, w20",
|
||||
"rmif x0, #63, #nzCv",
|
||||
"rmif x2, #31, #nzcV"
|
||||
"rmif x2, #31, #nzcV",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"shr rax, cl": {
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "GROUP2 0xd3 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"lsr x4, x20, x5",
|
||||
"lsr x20, x4, x5",
|
||||
"cbz x5, #+0x1c",
|
||||
"ands x26, x4, x4",
|
||||
"ands x26, x20, x20",
|
||||
"sub x0, x5, #0x1 (1)",
|
||||
"lsr x0, x20, x0",
|
||||
"eor x2, x20, x4",
|
||||
"lsr x0, x4, x0",
|
||||
"eor x2, x4, x20",
|
||||
"rmif x0, #63, #nzCv",
|
||||
"rmif x2, #63, #nzcV"
|
||||
"rmif x2, #63, #nzcV",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"sar ax, cl": {
|
||||
@@ -2011,26 +2004,26 @@
|
||||
"ExpectedInstructionCount": 7,
|
||||
"Comment": "GROUP2 0xd3 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"asr w4, w20, w5",
|
||||
"asr w20, w4, w5",
|
||||
"cbz w5, #+0x14",
|
||||
"ands w26, w4, w4",
|
||||
"ands w26, w20, w20",
|
||||
"sub x0, x5, #0x1 (1)",
|
||||
"lsr w0, w20, w0",
|
||||
"rmif x0, #63, #nzCv"
|
||||
"lsr w0, w4, w0",
|
||||
"rmif x0, #63, #nzCv",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"sar rax, cl": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"Comment": "GROUP2 0xd3 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"asr x4, x20, x5",
|
||||
"asr x20, x4, x5",
|
||||
"cbz x5, #+0x14",
|
||||
"ands x26, x4, x4",
|
||||
"ands x26, x20, x20",
|
||||
"sub x0, x5, #0x1 (1)",
|
||||
"lsr x0, x20, x0",
|
||||
"rmif x0, #63, #nzCv"
|
||||
"lsr x0, x4, x0",
|
||||
"rmif x0, #63, #nzCv",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"test bl, 1": {
|
||||
@@ -2049,14 +2042,13 @@
|
||||
]
|
||||
},
|
||||
"neg bl": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "GROUP2 0xf6 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"cmp wzr, w27, lsl #24",
|
||||
"neg w26, w27",
|
||||
"cmp wzr, w7, lsl #24",
|
||||
"neg w26, w7",
|
||||
"cfinv",
|
||||
"mov x7, x27",
|
||||
"bfxil x7, x26, #0, #8"
|
||||
]
|
||||
},
|
||||
@@ -2168,14 +2160,13 @@
|
||||
]
|
||||
},
|
||||
"neg bx": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "GROUP2 0xf7 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"cmp wzr, w27, lsl #16",
|
||||
"neg w26, w27",
|
||||
"cmp wzr, w7, lsl #16",
|
||||
"neg w26, w7",
|
||||
"cfinv",
|
||||
"mov x7, x27",
|
||||
"bfxil x7, x26, #0, #16"
|
||||
]
|
||||
},
|
||||
@@ -2184,7 +2175,7 @@
|
||||
"Comment": "GROUP2 0xf7 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"negs w26, w27",
|
||||
"negs w26, w7",
|
||||
"cfinv",
|
||||
"mov x7, x26"
|
||||
]
|
||||
@@ -2194,7 +2185,7 @@
|
||||
"Comment": "GROUP2 0xf7 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"negs x26, x27",
|
||||
"negs x26, x7",
|
||||
"cfinv",
|
||||
"mov x7, x26"
|
||||
]
|
||||
@@ -2230,9 +2221,9 @@
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "GROUP2 0xf7 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"mul x4, x7, x20",
|
||||
"umulh x6, x7, x20",
|
||||
"mul x20, x7, x4",
|
||||
"umulh x6, x7, x4",
|
||||
"mov x4, x20",
|
||||
"cmp x6, #0x0 (0)",
|
||||
"ccmn xzr, #0, #nzCV, eq"
|
||||
]
|
||||
@@ -2337,9 +2328,9 @@
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "GROUP4 0xfe /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"cset w20, hs",
|
||||
"adds w26, w27, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -2348,9 +2339,9 @@
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "GROUP4 0xfe /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"cset w20, hs",
|
||||
"adds x26, x27, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"adds x26, x4, #0x1 (1)",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -2371,9 +2362,9 @@
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "GROUP4 0xfe /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"cset w20, hs",
|
||||
"subs w26, w27, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -2382,9 +2373,9 @@
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "GROUP4 0xfe /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"cset w20, hs",
|
||||
"subs x26, x27, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
|
||||
@@ -195,9 +195,9 @@
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "0x40",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w27, w4",
|
||||
"cset w20, hs",
|
||||
"adds w26, w27, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
@@ -232,9 +232,9 @@
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "0x48",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w27, w4",
|
||||
"cset w20, hs",
|
||||
"subs w26, w27, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"mov x4, x26"
|
||||
]
|
||||
|
||||
@@ -830,23 +830,23 @@
|
||||
"ExpectedInstructionCount": 17,
|
||||
"Comment": "0x0f 0xad",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"and x21, x5, #0x3f",
|
||||
"neg x22, x21",
|
||||
"lsl x23, x20, x21",
|
||||
"lsr x22, x7, x22",
|
||||
"orr x22, x23, x22",
|
||||
"mrs x23, nzcv",
|
||||
"cmp x21, #0x0 (0)",
|
||||
"csel x4, x20, x22, eq",
|
||||
"msr nzcv, x23",
|
||||
"cbz x21, #+0x1c",
|
||||
"ands x26, x4, x4",
|
||||
"neg x0, x21",
|
||||
"lsr x0, x20, x0",
|
||||
"eor x2, x20, x4",
|
||||
"and x20, x5, #0x3f",
|
||||
"neg x21, x20",
|
||||
"lsl x22, x4, x20",
|
||||
"lsr x21, x7, x21",
|
||||
"orr x21, x22, x21",
|
||||
"mrs x22, nzcv",
|
||||
"cmp x20, #0x0 (0)",
|
||||
"csel x21, x4, x21, eq",
|
||||
"msr nzcv, x22",
|
||||
"cbz x20, #+0x1c",
|
||||
"ands x26, x21, x21",
|
||||
"neg x0, x20",
|
||||
"lsr x0, x4, x0",
|
||||
"eor x2, x4, x21",
|
||||
"rmif x0, #63, #nzCv",
|
||||
"rmif x2, #63, #nzcV"
|
||||
"rmif x2, #63, #nzcV",
|
||||
"mov x4, x21"
|
||||
]
|
||||
},
|
||||
"bts ax, bx": {
|
||||
@@ -1067,27 +1067,26 @@
|
||||
]
|
||||
},
|
||||
"cmpxchg rcx, rbx": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"ExpectedInstructionCount": 5,
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x5",
|
||||
"eor w27, w4, w20",
|
||||
"subs x26, x4, x20",
|
||||
"eor w27, w4, w5",
|
||||
"subs x26, x4, x5",
|
||||
"cfinv",
|
||||
"mov x4, x20",
|
||||
"csel x5, x7, x20, eq"
|
||||
"mov x4, x5",
|
||||
"csel x5, x7, x5, eq"
|
||||
]
|
||||
},
|
||||
"cmpxchg [rax], rbx": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"Comment": "0x0f 0xb1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"mov x1, x20",
|
||||
"casal x1, x7, [x20]",
|
||||
"mov x4, x1",
|
||||
"eor w27, w20, w4",
|
||||
"subs x26, x20, x4",
|
||||
"cfinv"
|
||||
"mov x1, x4",
|
||||
"casal x1, x7, [x4]",
|
||||
"mov x20, x1",
|
||||
"eor w27, w4, w20",
|
||||
"subs x26, x4, x20",
|
||||
"cfinv",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"cmpxchg al, bl": {
|
||||
@@ -1184,14 +1183,13 @@
|
||||
]
|
||||
},
|
||||
"cmpxchg rax, rbx": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "0x0f 0xb1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x7",
|
||||
"mov w27, #0x0",
|
||||
"subs x26, x4, x4",
|
||||
"cfinv",
|
||||
"mov x4, x20"
|
||||
"mov x4, x7"
|
||||
]
|
||||
},
|
||||
"btr ax, bx": {
|
||||
@@ -1596,13 +1594,12 @@
|
||||
]
|
||||
},
|
||||
"xadd rax, rbx": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "0x0f 0xc1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"eor w27, w20, w7",
|
||||
"adds x26, x20, x7",
|
||||
"mov x7, x20",
|
||||
"eor w27, w4, w7",
|
||||
"adds x26, x4, x7",
|
||||
"mov x7, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -1610,10 +1607,10 @@
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "0x0f 0xc1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x7",
|
||||
"ldaddal x20, x7, [x4]",
|
||||
"eor w27, w7, w20",
|
||||
"adds x26, x7, x20"
|
||||
"ldaddal x7, x20, [x4]",
|
||||
"eor w27, w20, w7",
|
||||
"adds x26, x20, x7",
|
||||
"mov x7, x20"
|
||||
]
|
||||
},
|
||||
"pmovmskb eax, mm0": {
|
||||
|
||||
@@ -6782,7 +6782,7 @@
|
||||
]
|
||||
},
|
||||
"fild dword [rax]": {
|
||||
"ExpectedInstructionCount": 35,
|
||||
"ExpectedInstructionCount": 34,
|
||||
"Comment": [
|
||||
"0xdf !11b /5"
|
||||
],
|
||||
@@ -6799,29 +6799,28 @@
|
||||
"ldr w21, [x4]",
|
||||
"mov w22, #0x0",
|
||||
"sxtw x21, w21",
|
||||
"mrs x22, nzcv",
|
||||
"mrs x23, nzcv",
|
||||
"cmp x21, #0x0 (0)",
|
||||
"mov w23, #0x8000",
|
||||
"csel x23, x23, xzr, lt",
|
||||
"mov w24, #0x8000",
|
||||
"csel x24, x24, xzr, lt",
|
||||
"cneg x21, x21, mi",
|
||||
"mov w24, #0x3f",
|
||||
"mov w25, #0x3f",
|
||||
"mov x0, #0x3f",
|
||||
"clz x25, x21",
|
||||
"sub x25, x0, x25",
|
||||
"sub x24, x24, x25",
|
||||
"lsl x25, x21, x24",
|
||||
"mov w30, #0x403e",
|
||||
"sub x24, x30, x24",
|
||||
"mov w30, #0x0",
|
||||
"clz x30, x21",
|
||||
"sub x30, x0, x30",
|
||||
"sub x25, x25, x30",
|
||||
"lsl x30, x21, x25",
|
||||
"mov w18, #0x403e",
|
||||
"sub x25, x18, x25",
|
||||
"cmp x21, #0x0 (0)",
|
||||
"csel x21, x30, x24, eq",
|
||||
"orr x21, x23, x21",
|
||||
"fmov d2, x25",
|
||||
"csel x21, x22, x25, eq",
|
||||
"orr x21, x24, x21",
|
||||
"fmov d2, x30",
|
||||
"fmov d3, x21",
|
||||
"mov v2.d[1], v3.d[0]",
|
||||
"add x0, x28, x20, lsl #4",
|
||||
"str q2, [x0, #768]",
|
||||
"msr nzcv, x22"
|
||||
"msr nzcv, x23"
|
||||
]
|
||||
},
|
||||
"fisttp dword [rax]": {
|
||||
@@ -16474,7 +16473,7 @@
|
||||
]
|
||||
},
|
||||
"fild word [rax]": {
|
||||
"ExpectedInstructionCount": 35,
|
||||
"ExpectedInstructionCount": 34,
|
||||
"Comment": [
|
||||
"0xdf !11b /0"
|
||||
],
|
||||
@@ -16491,29 +16490,28 @@
|
||||
"ldrh w21, [x4]",
|
||||
"mov w22, #0x0",
|
||||
"sxth x21, w21",
|
||||
"mrs x22, nzcv",
|
||||
"mrs x23, nzcv",
|
||||
"cmp x21, #0x0 (0)",
|
||||
"mov w23, #0x8000",
|
||||
"csel x23, x23, xzr, lt",
|
||||
"mov w24, #0x8000",
|
||||
"csel x24, x24, xzr, lt",
|
||||
"cneg x21, x21, mi",
|
||||
"mov w24, #0x3f",
|
||||
"mov w25, #0x3f",
|
||||
"mov x0, #0x3f",
|
||||
"clz x25, x21",
|
||||
"sub x25, x0, x25",
|
||||
"sub x24, x24, x25",
|
||||
"lsl x25, x21, x24",
|
||||
"mov w30, #0x403e",
|
||||
"sub x24, x30, x24",
|
||||
"mov w30, #0x0",
|
||||
"clz x30, x21",
|
||||
"sub x30, x0, x30",
|
||||
"sub x25, x25, x30",
|
||||
"lsl x30, x21, x25",
|
||||
"mov w18, #0x403e",
|
||||
"sub x25, x18, x25",
|
||||
"cmp x21, #0x0 (0)",
|
||||
"csel x21, x30, x24, eq",
|
||||
"orr x21, x23, x21",
|
||||
"fmov d2, x25",
|
||||
"csel x21, x22, x25, eq",
|
||||
"orr x21, x24, x21",
|
||||
"fmov d2, x30",
|
||||
"fmov d3, x21",
|
||||
"mov v2.d[1], v3.d[0]",
|
||||
"add x0, x28, x20, lsl #4",
|
||||
"str q2, [x0, #768]",
|
||||
"msr nzcv, x22"
|
||||
"msr nzcv, x23"
|
||||
]
|
||||
},
|
||||
"fisttp word [rax]": {
|
||||
|
||||
@@ -1338,259 +1338,235 @@
|
||||
]
|
||||
},
|
||||
"sha1rnds4 xmm0, xmm1, 00b": {
|
||||
"ExpectedInstructionCount": 57,
|
||||
"ExpectedInstructionCount": 51,
|
||||
"Comment": [
|
||||
"0x66 0x0f 0x3a 0xcc"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x7999",
|
||||
"movk w20, #0x5a82, lsl #16",
|
||||
"mov w20, v17.s[3]",
|
||||
"mov w21, v16.s[3]",
|
||||
"mov w22, v16.s[2]",
|
||||
"mov w23, v16.s[1]",
|
||||
"mov w24, v16.s[0]",
|
||||
"and w25, w22, w23",
|
||||
"bic w30, w24, w22",
|
||||
"eor w25, w25, w30",
|
||||
"ror w30, w21, #27",
|
||||
"add w25, w25, w30",
|
||||
"add w20, w25, w20",
|
||||
"mov w25, #0x7999",
|
||||
"movk w25, #0x5a82, lsl #16",
|
||||
"add w20, w20, w25",
|
||||
"mov w21, v17.s[3]",
|
||||
"mov w22, v16.s[3]",
|
||||
"mov w23, v16.s[2]",
|
||||
"mov w24, v16.s[1]",
|
||||
"mov w25, v16.s[0]",
|
||||
"and w30, w23, w24",
|
||||
"bic w18, w25, w23",
|
||||
"eor w30, w30, w18",
|
||||
"ror w18, w22, #27",
|
||||
"add w30, w30, w18",
|
||||
"add w21, w30, w21",
|
||||
"add w21, w21, w20",
|
||||
"ror w23, w23, #2",
|
||||
"mov w30, v17.s[2]",
|
||||
"add w25, w30, w25",
|
||||
"and w30, w22, w23",
|
||||
"bic w18, w24, w22",
|
||||
"eor w30, w30, w18",
|
||||
"ror w18, w21, #27",
|
||||
"add w30, w30, w18",
|
||||
"add w25, w30, w25",
|
||||
"add w25, w25, w20",
|
||||
"ror w22, w22, #2",
|
||||
"mov w25, v17.s[2]",
|
||||
"add w24, w25, w24",
|
||||
"and w25, w21, w22",
|
||||
"bic w30, w23, w21",
|
||||
"eor w25, w25, w30",
|
||||
"ror w30, w20, #27",
|
||||
"add w25, w25, w30",
|
||||
"add w24, w25, w24",
|
||||
"mov w25, #0x7999",
|
||||
"movk w25, #0x5a82, lsl #16",
|
||||
"add w24, w24, w25",
|
||||
"mov w30, v17.s[1]",
|
||||
"add w24, w30, w24",
|
||||
"and w30, w21, w22",
|
||||
"bic w18, w23, w21",
|
||||
"eor w30, w30, w18",
|
||||
"ror w18, w25, #27",
|
||||
"add w30, w30, w18",
|
||||
"add w24, w30, w24",
|
||||
"add w24, w24, w20",
|
||||
"ror w21, w21, #2",
|
||||
"mov w25, v17.s[1]",
|
||||
"add w23, w25, w23",
|
||||
"and w25, w20, w21",
|
||||
"bic w30, w22, w20",
|
||||
"eor w25, w25, w30",
|
||||
"ror w30, w24, #27",
|
||||
"add w25, w25, w30",
|
||||
"add w23, w25, w23",
|
||||
"mov w25, #0x7999",
|
||||
"movk w25, #0x5a82, lsl #16",
|
||||
"add w23, w23, w25",
|
||||
"ror w20, w20, #2",
|
||||
"mov w30, v17.s[0]",
|
||||
"add w22, w30, w22",
|
||||
"and w30, w24, w20",
|
||||
"bic w21, w21, w24",
|
||||
"eor w21, w30, w21",
|
||||
"ror w30, w23, #27",
|
||||
"add w21, w21, w30",
|
||||
"add w21, w21, w22",
|
||||
"add w21, w21, w25",
|
||||
"ror w22, w24, #2",
|
||||
"add w23, w30, w23",
|
||||
"and w30, w25, w21",
|
||||
"bic w22, w22, w25",
|
||||
"eor w22, w30, w22",
|
||||
"ror w30, w24, #27",
|
||||
"add w22, w22, w30",
|
||||
"add w22, w22, w23",
|
||||
"add w20, w22, w20",
|
||||
"ror w22, w25, #2",
|
||||
"mov v2.16b, v16.16b",
|
||||
"mov v2.s[3], w21",
|
||||
"mov v2.s[2], w23",
|
||||
"mov v2.s[3], w20",
|
||||
"mov v2.s[2], w24",
|
||||
"mov v2.s[1], w22",
|
||||
"mov v16.16b, v2.16b",
|
||||
"mov v16.s[0], w20"
|
||||
"mov v16.s[0], w21"
|
||||
]
|
||||
},
|
||||
"sha1rnds4 xmm0, xmm1, 01b": {
|
||||
"ExpectedInstructionCount": 53,
|
||||
"ExpectedInstructionCount": 47,
|
||||
"Comment": [
|
||||
"0x66 0x0f 0x3a 0xcc"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xeba1",
|
||||
"movk w20, #0x6ed9, lsl #16",
|
||||
"mov w20, v17.s[3]",
|
||||
"mov w21, v16.s[3]",
|
||||
"mov w22, v16.s[2]",
|
||||
"mov w23, v16.s[1]",
|
||||
"mov w24, v16.s[0]",
|
||||
"eor w25, w22, w23",
|
||||
"eor w25, w25, w24",
|
||||
"ror w30, w21, #27",
|
||||
"add w25, w25, w30",
|
||||
"add w20, w25, w20",
|
||||
"mov w25, #0xeba1",
|
||||
"movk w25, #0x6ed9, lsl #16",
|
||||
"add w20, w20, w25",
|
||||
"mov w21, v17.s[3]",
|
||||
"mov w22, v16.s[3]",
|
||||
"mov w23, v16.s[2]",
|
||||
"mov w24, v16.s[1]",
|
||||
"mov w25, v16.s[0]",
|
||||
"eor w30, w23, w24",
|
||||
"eor w30, w30, w25",
|
||||
"ror w18, w22, #27",
|
||||
"add w30, w30, w18",
|
||||
"add w21, w30, w21",
|
||||
"add w21, w21, w20",
|
||||
"ror w23, w23, #2",
|
||||
"mov w30, v17.s[2]",
|
||||
"add w25, w30, w25",
|
||||
"eor w30, w22, w23",
|
||||
"eor w30, w30, w24",
|
||||
"ror w18, w21, #27",
|
||||
"add w30, w30, w18",
|
||||
"add w25, w30, w25",
|
||||
"add w25, w25, w20",
|
||||
"ror w22, w22, #2",
|
||||
"mov w25, v17.s[2]",
|
||||
"add w24, w25, w24",
|
||||
"eor w25, w21, w22",
|
||||
"eor w25, w25, w23",
|
||||
"ror w30, w20, #27",
|
||||
"add w25, w25, w30",
|
||||
"add w24, w25, w24",
|
||||
"mov w25, #0xeba1",
|
||||
"movk w25, #0x6ed9, lsl #16",
|
||||
"add w24, w24, w25",
|
||||
"mov w30, v17.s[1]",
|
||||
"add w24, w30, w24",
|
||||
"eor w30, w21, w22",
|
||||
"eor w30, w30, w23",
|
||||
"ror w18, w25, #27",
|
||||
"add w30, w30, w18",
|
||||
"add w24, w30, w24",
|
||||
"add w24, w24, w20",
|
||||
"ror w21, w21, #2",
|
||||
"mov w25, v17.s[1]",
|
||||
"add w23, w25, w23",
|
||||
"eor w25, w20, w21",
|
||||
"eor w25, w25, w22",
|
||||
"ror w30, w24, #27",
|
||||
"add w25, w25, w30",
|
||||
"add w23, w25, w23",
|
||||
"mov w25, #0xeba1",
|
||||
"movk w25, #0x6ed9, lsl #16",
|
||||
"add w23, w23, w25",
|
||||
"ror w20, w20, #2",
|
||||
"mov w30, v17.s[0]",
|
||||
"add w22, w30, w22",
|
||||
"eor w30, w24, w20",
|
||||
"eor w21, w30, w21",
|
||||
"ror w30, w23, #27",
|
||||
"add w21, w21, w30",
|
||||
"add w21, w21, w22",
|
||||
"add w21, w21, w25",
|
||||
"ror w22, w24, #2",
|
||||
"add w23, w30, w23",
|
||||
"eor w30, w25, w21",
|
||||
"eor w22, w30, w22",
|
||||
"ror w30, w24, #27",
|
||||
"add w22, w22, w30",
|
||||
"add w22, w22, w23",
|
||||
"add w20, w22, w20",
|
||||
"ror w22, w25, #2",
|
||||
"mov v2.16b, v16.16b",
|
||||
"mov v2.s[3], w21",
|
||||
"mov v2.s[2], w23",
|
||||
"mov v2.s[3], w20",
|
||||
"mov v2.s[2], w24",
|
||||
"mov v2.s[1], w22",
|
||||
"mov v16.16b, v2.16b",
|
||||
"mov v16.s[0], w20"
|
||||
"mov v16.s[0], w21"
|
||||
]
|
||||
},
|
||||
"sha1rnds4 xmm0, xmm1, 10b": {
|
||||
"ExpectedInstructionCount": 61,
|
||||
"ExpectedInstructionCount": 55,
|
||||
"Comment": [
|
||||
"0x66 0x0f 0x3a 0xcc"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xbcdc",
|
||||
"movk w20, #0x8f1b, lsl #16",
|
||||
"mov w20, v17.s[3]",
|
||||
"mov w21, v16.s[3]",
|
||||
"mov w22, v16.s[2]",
|
||||
"mov w23, v16.s[1]",
|
||||
"mov w24, v16.s[0]",
|
||||
"and w25, w23, w24",
|
||||
"orr w30, w23, w24",
|
||||
"and w30, w22, w30",
|
||||
"orr w25, w30, w25",
|
||||
"ror w30, w21, #27",
|
||||
"add w25, w25, w30",
|
||||
"add w20, w25, w20",
|
||||
"mov w25, #0xbcdc",
|
||||
"movk w25, #0x8f1b, lsl #16",
|
||||
"add w20, w20, w25",
|
||||
"mov w21, v17.s[3]",
|
||||
"mov w22, v16.s[3]",
|
||||
"mov w23, v16.s[2]",
|
||||
"mov w24, v16.s[1]",
|
||||
"mov w25, v16.s[0]",
|
||||
"and w30, w24, w25",
|
||||
"orr w18, w24, w25",
|
||||
"and w18, w23, w18",
|
||||
"orr w30, w18, w30",
|
||||
"ror w18, w22, #27",
|
||||
"add w30, w30, w18",
|
||||
"add w21, w30, w21",
|
||||
"add w21, w21, w20",
|
||||
"ror w23, w23, #2",
|
||||
"mov w30, v17.s[2]",
|
||||
"add w25, w30, w25",
|
||||
"and w30, w23, w24",
|
||||
"orr w18, w23, w24",
|
||||
"and w18, w22, w18",
|
||||
"orr w30, w18, w30",
|
||||
"ror w18, w21, #27",
|
||||
"add w30, w30, w18",
|
||||
"add w25, w30, w25",
|
||||
"add w25, w25, w20",
|
||||
"ror w22, w22, #2",
|
||||
"mov w25, v17.s[2]",
|
||||
"add w24, w25, w24",
|
||||
"and w25, w22, w23",
|
||||
"orr w30, w22, w23",
|
||||
"and w30, w21, w30",
|
||||
"orr w25, w30, w25",
|
||||
"ror w30, w20, #27",
|
||||
"add w25, w25, w30",
|
||||
"add w24, w25, w24",
|
||||
"mov w25, #0xbcdc",
|
||||
"movk w25, #0x8f1b, lsl #16",
|
||||
"add w24, w24, w25",
|
||||
"mov w30, v17.s[1]",
|
||||
"add w24, w30, w24",
|
||||
"and w30, w22, w23",
|
||||
"orr w18, w22, w23",
|
||||
"and w18, w21, w18",
|
||||
"orr w30, w18, w30",
|
||||
"ror w18, w25, #27",
|
||||
"add w30, w30, w18",
|
||||
"add w24, w30, w24",
|
||||
"add w24, w24, w20",
|
||||
"ror w21, w21, #2",
|
||||
"mov w25, v17.s[1]",
|
||||
"add w23, w25, w23",
|
||||
"and w25, w21, w22",
|
||||
"orr w30, w21, w22",
|
||||
"and w30, w20, w30",
|
||||
"orr w25, w30, w25",
|
||||
"ror w30, w24, #27",
|
||||
"add w25, w25, w30",
|
||||
"add w23, w25, w23",
|
||||
"mov w25, #0xbcdc",
|
||||
"movk w25, #0x8f1b, lsl #16",
|
||||
"add w23, w23, w25",
|
||||
"ror w20, w20, #2",
|
||||
"mov w30, v17.s[0]",
|
||||
"add w22, w30, w22",
|
||||
"and w30, w20, w21",
|
||||
"orr w21, w20, w21",
|
||||
"and w21, w24, w21",
|
||||
"orr w21, w21, w30",
|
||||
"ror w30, w23, #27",
|
||||
"add w21, w21, w30",
|
||||
"add w21, w21, w22",
|
||||
"add w21, w21, w25",
|
||||
"ror w22, w24, #2",
|
||||
"add w23, w30, w23",
|
||||
"and w30, w21, w22",
|
||||
"orr w22, w21, w22",
|
||||
"and w22, w25, w22",
|
||||
"orr w22, w22, w30",
|
||||
"ror w30, w24, #27",
|
||||
"add w22, w22, w30",
|
||||
"add w22, w22, w23",
|
||||
"add w20, w22, w20",
|
||||
"ror w22, w25, #2",
|
||||
"mov v2.16b, v16.16b",
|
||||
"mov v2.s[3], w21",
|
||||
"mov v2.s[2], w23",
|
||||
"mov v2.s[3], w20",
|
||||
"mov v2.s[2], w24",
|
||||
"mov v2.s[1], w22",
|
||||
"mov v16.16b, v2.16b",
|
||||
"mov v16.s[0], w20"
|
||||
"mov v16.s[0], w21"
|
||||
]
|
||||
},
|
||||
"sha1rnds4 xmm0, xmm1, 11b": {
|
||||
"ExpectedInstructionCount": 53,
|
||||
"ExpectedInstructionCount": 47,
|
||||
"Comment": [
|
||||
"0x66 0x0f 0x3a 0xcc"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xc1d6",
|
||||
"movk w20, #0xca62, lsl #16",
|
||||
"mov w20, v17.s[3]",
|
||||
"mov w21, v16.s[3]",
|
||||
"mov w22, v16.s[2]",
|
||||
"mov w23, v16.s[1]",
|
||||
"mov w24, v16.s[0]",
|
||||
"eor w25, w22, w23",
|
||||
"eor w25, w25, w24",
|
||||
"ror w30, w21, #27",
|
||||
"add w25, w25, w30",
|
||||
"add w20, w25, w20",
|
||||
"mov w25, #0xc1d6",
|
||||
"movk w25, #0xca62, lsl #16",
|
||||
"add w20, w20, w25",
|
||||
"mov w21, v17.s[3]",
|
||||
"mov w22, v16.s[3]",
|
||||
"mov w23, v16.s[2]",
|
||||
"mov w24, v16.s[1]",
|
||||
"mov w25, v16.s[0]",
|
||||
"eor w30, w23, w24",
|
||||
"eor w30, w30, w25",
|
||||
"ror w18, w22, #27",
|
||||
"add w30, w30, w18",
|
||||
"add w21, w30, w21",
|
||||
"add w21, w21, w20",
|
||||
"ror w23, w23, #2",
|
||||
"mov w30, v17.s[2]",
|
||||
"add w25, w30, w25",
|
||||
"eor w30, w22, w23",
|
||||
"eor w30, w30, w24",
|
||||
"ror w18, w21, #27",
|
||||
"add w30, w30, w18",
|
||||
"add w25, w30, w25",
|
||||
"add w25, w25, w20",
|
||||
"ror w22, w22, #2",
|
||||
"mov w25, v17.s[2]",
|
||||
"add w24, w25, w24",
|
||||
"eor w25, w21, w22",
|
||||
"eor w25, w25, w23",
|
||||
"ror w30, w20, #27",
|
||||
"add w25, w25, w30",
|
||||
"add w24, w25, w24",
|
||||
"mov w25, #0xc1d6",
|
||||
"movk w25, #0xca62, lsl #16",
|
||||
"add w24, w24, w25",
|
||||
"mov w30, v17.s[1]",
|
||||
"add w24, w30, w24",
|
||||
"eor w30, w21, w22",
|
||||
"eor w30, w30, w23",
|
||||
"ror w18, w25, #27",
|
||||
"add w30, w30, w18",
|
||||
"add w24, w30, w24",
|
||||
"add w24, w24, w20",
|
||||
"ror w21, w21, #2",
|
||||
"mov w25, v17.s[1]",
|
||||
"add w23, w25, w23",
|
||||
"eor w25, w20, w21",
|
||||
"eor w25, w25, w22",
|
||||
"ror w30, w24, #27",
|
||||
"add w25, w25, w30",
|
||||
"add w23, w25, w23",
|
||||
"mov w25, #0xc1d6",
|
||||
"movk w25, #0xca62, lsl #16",
|
||||
"add w23, w23, w25",
|
||||
"ror w20, w20, #2",
|
||||
"mov w30, v17.s[0]",
|
||||
"add w22, w30, w22",
|
||||
"eor w30, w24, w20",
|
||||
"eor w21, w30, w21",
|
||||
"ror w30, w23, #27",
|
||||
"add w21, w21, w30",
|
||||
"add w21, w21, w22",
|
||||
"add w21, w21, w25",
|
||||
"ror w22, w24, #2",
|
||||
"add w23, w30, w23",
|
||||
"eor w30, w25, w21",
|
||||
"eor w22, w30, w22",
|
||||
"ror w30, w24, #27",
|
||||
"add w22, w22, w30",
|
||||
"add w22, w22, w23",
|
||||
"add w20, w22, w20",
|
||||
"ror w22, w25, #2",
|
||||
"mov v2.16b, v16.16b",
|
||||
"mov v2.s[3], w21",
|
||||
"mov v2.s[2], w23",
|
||||
"mov v2.s[3], w20",
|
||||
"mov v2.s[2], w24",
|
||||
"mov v2.s[1], w22",
|
||||
"mov v16.16b, v2.16b",
|
||||
"mov v16.s[0], w20"
|
||||
"mov v16.s[0], w21"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,28 +103,26 @@
|
||||
]
|
||||
},
|
||||
"add al, 1": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "0x04",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #24",
|
||||
"lsl w0, w4, #24",
|
||||
"cmn w0, w20, lsl #24",
|
||||
"add w26, w27, #0x1 (1)",
|
||||
"mov x4, x27",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
]
|
||||
},
|
||||
"add ax, 1": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "0x05",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #16",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w27, #0x1 (1)",
|
||||
"mov x4, x27",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
]
|
||||
},
|
||||
@@ -133,7 +131,7 @@
|
||||
"Comment": "0x05",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds w26, w27, #0x1 (1)",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -142,7 +140,7 @@
|
||||
"Comment": "0x05",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x27, #0x1 (1)",
|
||||
"adds x26, x4, #0x1 (1)",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -498,49 +496,47 @@
|
||||
]
|
||||
},
|
||||
"adc al, 1": {
|
||||
"ExpectedInstructionCount": 18,
|
||||
"ExpectedInstructionCount": 17,
|
||||
"Comment": "0x14",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"mov w20, #0x1",
|
||||
"adc w20, wzr, w20",
|
||||
"add w21, w27, w20",
|
||||
"add w21, w4, w20",
|
||||
"uxtb w26, w21",
|
||||
"cmp w26, w20",
|
||||
"cset x20, lo",
|
||||
"cmn wzr, w26, lsl #24",
|
||||
"mrs x21, nzcv",
|
||||
"orr w20, w21, w20, lsl #29",
|
||||
"eor w21, w27, #0x1",
|
||||
"eor w22, w26, w27",
|
||||
"eor w21, w4, #0x1",
|
||||
"eor w22, w26, w4",
|
||||
"bic w21, w22, w21",
|
||||
"ubfx x21, x21, #7, #1",
|
||||
"orr w20, w20, w21, lsl #28",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #8",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
},
|
||||
"adc ax, 1": {
|
||||
"ExpectedInstructionCount": 18,
|
||||
"ExpectedInstructionCount": 17,
|
||||
"Comment": "0x15",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"mov w20, #0x1",
|
||||
"adc w20, wzr, w20",
|
||||
"add w21, w27, w20",
|
||||
"add w21, w4, w20",
|
||||
"uxth w26, w21",
|
||||
"cmp w26, w20",
|
||||
"cset x20, lo",
|
||||
"cmn wzr, w26, lsl #16",
|
||||
"mrs x21, nzcv",
|
||||
"orr w20, w21, w20, lsl #29",
|
||||
"eor w21, w27, #0x1",
|
||||
"eor w22, w26, w27",
|
||||
"eor w21, w4, #0x1",
|
||||
"eor w22, w26, w4",
|
||||
"bic w21, w22, w21",
|
||||
"ubfx x21, x21, #15, #1",
|
||||
"orr w20, w20, w21, lsl #28",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #16",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
@@ -551,7 +547,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w27, w20",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -561,7 +557,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x27, x20",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -800,11 +796,11 @@
|
||||
]
|
||||
},
|
||||
"sbb al, 1": {
|
||||
"ExpectedInstructionCount": 17,
|
||||
"ExpectedInstructionCount": 16,
|
||||
"Comment": "0x1C",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"uxtb w20, w27",
|
||||
"uxtb w20, w4",
|
||||
"cset w21, hs",
|
||||
"sub w21, w20, w21",
|
||||
"sub w22, w21, #0x1 (1)",
|
||||
@@ -817,17 +813,16 @@
|
||||
"bic w20, w20, w26",
|
||||
"ubfx x20, x20, #7, #1",
|
||||
"orr w20, w21, w20, lsl #28",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #8",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
},
|
||||
"sbb ax, 1": {
|
||||
"ExpectedInstructionCount": 17,
|
||||
"ExpectedInstructionCount": 16,
|
||||
"Comment": "0x1D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"uxth w20, w27",
|
||||
"uxth w20, w4",
|
||||
"cset w21, hs",
|
||||
"sub w21, w20, w21",
|
||||
"sub w22, w21, #0x1 (1)",
|
||||
@@ -840,7 +835,6 @@
|
||||
"bic w20, w20, w26",
|
||||
"ubfx x20, x20, #15, #1",
|
||||
"orr w20, w21, w20, lsl #28",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #16",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
@@ -854,7 +848,7 @@
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs w26, w27, w20",
|
||||
"sbcs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -870,7 +864,7 @@
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs x26, x27, x20",
|
||||
"sbcs x26, x4, x20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -1221,33 +1215,31 @@
|
||||
]
|
||||
},
|
||||
"sub al, 1": {
|
||||
"ExpectedInstructionCount": 10,
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "0x2C",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #24",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w27, #0x1 (1)",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #8",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
},
|
||||
"sub ax, 1": {
|
||||
"ExpectedInstructionCount": 10,
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "0x2D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #16",
|
||||
"lsl w0, w4, #16",
|
||||
"cmp w0, w20, lsl #16",
|
||||
"sub w26, w27, #0x1 (1)",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #16",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
@@ -1257,7 +1249,7 @@
|
||||
"Comment": "0x2D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, #0x1 (1)",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -1269,7 +1261,7 @@
|
||||
"Comment": "0x2D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x27, #0x1 (1)",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -1603,9 +1595,9 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #24",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w27, #0x1 (1)",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
@@ -1617,9 +1609,9 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #16",
|
||||
"lsl w0, w4, #16",
|
||||
"cmp w0, w20, lsl #16",
|
||||
"sub w26, w27, #0x1 (1)",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
@@ -1630,7 +1622,7 @@
|
||||
"Comment": "0x3D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, #0x1 (1)",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
@@ -1641,7 +1633,7 @@
|
||||
"Comment": "0x3D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x27, #0x1 (1)",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
@@ -1915,13 +1907,14 @@
|
||||
]
|
||||
},
|
||||
"xchg bl, cl": {
|
||||
"ExpectedInstructionCount": 4,
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "0x86",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x5",
|
||||
"bfxil x20, x7, #0, #8",
|
||||
"mov x21, x5",
|
||||
"mov x5, x20",
|
||||
"bfxil x5, x7, #0, #8",
|
||||
"bfxil x7, x20, #0, #8"
|
||||
"bfxil x7, x21, #0, #8"
|
||||
]
|
||||
},
|
||||
"xchg [rax], cl": {
|
||||
@@ -1933,13 +1926,14 @@
|
||||
]
|
||||
},
|
||||
"xchg bx, cx": {
|
||||
"ExpectedInstructionCount": 4,
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "0x87",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x5",
|
||||
"bfxil x20, x7, #0, #16",
|
||||
"mov x21, x5",
|
||||
"mov x5, x20",
|
||||
"bfxil x5, x7, #0, #16",
|
||||
"bfxil x7, x20, #0, #16"
|
||||
"bfxil x7, x21, #0, #16"
|
||||
]
|
||||
},
|
||||
"xchg [rax], cx": {
|
||||
@@ -1951,12 +1945,13 @@
|
||||
]
|
||||
},
|
||||
"xchg ebx, ecx": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "0x87",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x5",
|
||||
"mov w5, w7",
|
||||
"mov w7, w20"
|
||||
"mov w20, w7",
|
||||
"mov x21, x5",
|
||||
"mov x5, x20",
|
||||
"mov w7, w21"
|
||||
]
|
||||
},
|
||||
"xchg [rax], ecx": {
|
||||
@@ -1970,9 +1965,9 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x87",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x7",
|
||||
"mov x7, x5",
|
||||
"mov x5, x20"
|
||||
"mov x20, x5",
|
||||
"mov x5, x7",
|
||||
"mov x7, x20"
|
||||
]
|
||||
},
|
||||
"xchg [rax], rcx": {
|
||||
@@ -2435,31 +2430,33 @@
|
||||
]
|
||||
},
|
||||
"xchg ax, bx": {
|
||||
"ExpectedInstructionCount": 4,
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "0x90",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x7",
|
||||
"bfxil x20, x4, #0, #16",
|
||||
"mov x21, x7",
|
||||
"mov x7, x20",
|
||||
"bfxil x7, x4, #0, #16",
|
||||
"bfxil x4, x20, #0, #16"
|
||||
"bfxil x4, x21, #0, #16"
|
||||
]
|
||||
},
|
||||
"xchg eax, ebx": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "0x90",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x7",
|
||||
"mov w7, w4",
|
||||
"mov w4, w20"
|
||||
"mov w20, w4",
|
||||
"mov x21, x7",
|
||||
"mov x7, x20",
|
||||
"mov w4, w21"
|
||||
]
|
||||
},
|
||||
"xchg rax, rbx": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x90",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"mov x4, x7",
|
||||
"mov x7, x20"
|
||||
"mov x20, x7",
|
||||
"mov x7, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"nop": {
|
||||
@@ -3240,10 +3237,10 @@
|
||||
]
|
||||
},
|
||||
"repz cmpsb": {
|
||||
"ExpectedInstructionCount": 28,
|
||||
"ExpectedInstructionCount": 29,
|
||||
"Comment": "0xa6",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x70",
|
||||
"cbz x5, #+0x74",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3263,21 +3260,22 @@
|
||||
"sub x10, x10, #0x1 (1)",
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"lsl w0, w20, #24",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #24",
|
||||
"cmp w0, w26, lsl #24",
|
||||
"sub w26, w20, w26",
|
||||
"sub w26, w21, w26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
},
|
||||
"repz cmpsw": {
|
||||
"ExpectedInstructionCount": 28,
|
||||
"ExpectedInstructionCount": 29,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x70",
|
||||
"cbz x5, #+0x74",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3297,21 +3295,22 @@
|
||||
"sub x10, x10, #0x2 (2)",
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"lsl w0, w20, #16",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #16",
|
||||
"cmp w0, w26, lsl #16",
|
||||
"sub w26, w20, w26",
|
||||
"sub w26, w21, w26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
},
|
||||
"repz cmpsd": {
|
||||
"ExpectedInstructionCount": 26,
|
||||
"ExpectedInstructionCount": 27,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x68",
|
||||
"cbz x5, #+0x6c",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3331,19 +3330,20 @@
|
||||
"sub x10, x10, #0x4 (4)",
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"subs w26, w20, w26",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs w26, w21, w26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
},
|
||||
"repz cmpsq": {
|
||||
"ExpectedInstructionCount": 26,
|
||||
"ExpectedInstructionCount": 27,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x68",
|
||||
"cbz x5, #+0x6c",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3363,19 +3363,20 @@
|
||||
"sub x10, x10, #0x8 (8)",
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"subs x26, x20, x26",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs x26, x21, x26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
},
|
||||
"repnz cmpsb": {
|
||||
"ExpectedInstructionCount": 28,
|
||||
"ExpectedInstructionCount": 29,
|
||||
"Comment": "0xa6",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x70",
|
||||
"cbz x5, #+0x74",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3395,21 +3396,22 @@
|
||||
"sub x10, x10, #0x1 (1)",
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"lsl w0, w20, #24",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #24",
|
||||
"cmp w0, w26, lsl #24",
|
||||
"sub w26, w20, w26",
|
||||
"sub w26, w21, w26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
},
|
||||
"repnz cmpsw": {
|
||||
"ExpectedInstructionCount": 28,
|
||||
"ExpectedInstructionCount": 29,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x70",
|
||||
"cbz x5, #+0x74",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3429,21 +3431,22 @@
|
||||
"sub x10, x10, #0x2 (2)",
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"lsl w0, w20, #16",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #16",
|
||||
"cmp w0, w26, lsl #16",
|
||||
"sub w26, w20, w26",
|
||||
"sub w26, w21, w26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
},
|
||||
"repnz cmpsd": {
|
||||
"ExpectedInstructionCount": 26,
|
||||
"ExpectedInstructionCount": 27,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x68",
|
||||
"cbz x5, #+0x6c",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3463,19 +3466,20 @@
|
||||
"sub x10, x10, #0x4 (4)",
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"subs w26, w20, w26",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs w26, w21, w26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
},
|
||||
"repnz cmpsq": {
|
||||
"ExpectedInstructionCount": 26,
|
||||
"ExpectedInstructionCount": 27,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x68",
|
||||
"cbz x5, #+0x6c",
|
||||
"ldrsb x20, [x28, #714]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3495,9 +3499,10 @@
|
||||
"sub x10, x10, #0x8 (8)",
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"mov x20, x27",
|
||||
"eor w27, w20, w26",
|
||||
"subs x26, x20, x26",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs x26, x21, x26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
|
||||
@@ -15,15 +15,14 @@
|
||||
],
|
||||
"Instructions": {
|
||||
"add al, 1": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP1 0x80 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #24",
|
||||
"lsl w0, w4, #24",
|
||||
"cmn w0, w20, lsl #24",
|
||||
"add w26, w27, #0x1 (1)",
|
||||
"mov x4, x27",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
]
|
||||
},
|
||||
@@ -37,35 +36,34 @@
|
||||
]
|
||||
},
|
||||
"adc al, 1": {
|
||||
"ExpectedInstructionCount": 18,
|
||||
"ExpectedInstructionCount": 17,
|
||||
"Comment": "GROUP1 0x80 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"mov w20, #0x1",
|
||||
"adc w20, wzr, w20",
|
||||
"add w21, w27, w20",
|
||||
"add w21, w4, w20",
|
||||
"uxtb w26, w21",
|
||||
"cmp w26, w20",
|
||||
"cset x20, lo",
|
||||
"cmn wzr, w26, lsl #24",
|
||||
"mrs x21, nzcv",
|
||||
"orr w20, w21, w20, lsl #29",
|
||||
"eor w21, w27, #0x1",
|
||||
"eor w22, w26, w27",
|
||||
"eor w21, w4, #0x1",
|
||||
"eor w22, w26, w4",
|
||||
"bic w21, w22, w21",
|
||||
"ubfx x21, x21, #7, #1",
|
||||
"orr w20, w20, w21, lsl #28",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #8",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
},
|
||||
"sbb al, 1": {
|
||||
"ExpectedInstructionCount": 17,
|
||||
"ExpectedInstructionCount": 16,
|
||||
"Comment": "GROUP1 0x80 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"uxtb w20, w27",
|
||||
"uxtb w20, w4",
|
||||
"cset w21, hs",
|
||||
"sub w21, w20, w21",
|
||||
"sub w22, w21, #0x1 (1)",
|
||||
@@ -78,7 +76,6 @@
|
||||
"bic w20, w20, w26",
|
||||
"ubfx x20, x20, #7, #1",
|
||||
"orr w20, w21, w20, lsl #28",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #8",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
@@ -93,17 +90,16 @@
|
||||
]
|
||||
},
|
||||
"sub al, 1": {
|
||||
"ExpectedInstructionCount": 10,
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "GROUP1 0x80 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #24",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w27, #0x1 (1)",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x27",
|
||||
"bfxil x4, x26, #0, #8",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
@@ -123,9 +119,9 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #24",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w27, #0x1 (1)",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
@@ -245,15 +241,14 @@
|
||||
]
|
||||
},
|
||||
"add ax, 256": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #16",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w27, #0x100 (256)",
|
||||
"mov x4, x27",
|
||||
"add w26, w4, #0x100 (256)",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
]
|
||||
},
|
||||
@@ -262,7 +257,7 @@
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds w26, w27, #0x100 (256)",
|
||||
"adds w26, w4, #0x100 (256)",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -271,7 +266,7 @@
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x27, #0x100 (256)",
|
||||
"adds x26, x4, #0x100 (256)",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -299,7 +294,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w27, w20",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -309,7 +304,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x27, x20",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -322,7 +317,7 @@
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs w26, w27, w20",
|
||||
"sbcs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -338,7 +333,7 @@
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs x26, x27, x20",
|
||||
"sbcs x26, x4, x20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -366,7 +361,7 @@
|
||||
"Comment": "GROUP1 0x81 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, #0x100 (256)",
|
||||
"subs w26, w4, #0x100 (256)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -378,7 +373,7 @@
|
||||
"Comment": "GROUP1 0x81 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x27, #0x100 (256)",
|
||||
"subs x26, x4, #0x100 (256)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -408,7 +403,7 @@
|
||||
"Comment": "GROUP1 0x81 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, #0x100 (256)",
|
||||
"subs w26, w4, #0x100 (256)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
@@ -419,22 +414,21 @@
|
||||
"Comment": "GROUP1 0x81 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x27, #0x100 (256)",
|
||||
"subs x26, x4, #0x100 (256)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
},
|
||||
"add ax, -256": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xff00",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #16",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w27, w20",
|
||||
"mov x4, x27",
|
||||
"add w26, w4, w20",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
]
|
||||
},
|
||||
@@ -444,7 +438,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"adds w26, w27, w20",
|
||||
"adds w26, w4, w20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -453,7 +447,7 @@
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x27, #0x100 (256)",
|
||||
"subs x26, x4, #0x100 (256)",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -481,7 +475,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w27, w20",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -491,7 +485,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffff00",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x27, x20",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -504,7 +498,7 @@
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs w26, w27, w20",
|
||||
"sbcs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -520,7 +514,7 @@
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs x26, x27, x20",
|
||||
"sbcs x26, x4, x20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -549,7 +543,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, w20",
|
||||
"subs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -561,7 +555,7 @@
|
||||
"Comment": "GROUP1 0x81 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x27, #0x100 (256)",
|
||||
"adds x26, x4, #0x100 (256)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -592,7 +586,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, w20",
|
||||
"subs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
@@ -603,22 +597,21 @@
|
||||
"Comment": "GROUP1 0x81 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x27, #0x100 (256)",
|
||||
"adds x26, x4, #0x100 (256)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
},
|
||||
"add ax, 1": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP1 0x83 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w27, #16",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w27, #0x1 (1)",
|
||||
"mov x4, x27",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
]
|
||||
},
|
||||
@@ -627,7 +620,7 @@
|
||||
"Comment": "GROUP1 0x83 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds w26, w27, #0x1 (1)",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -636,7 +629,7 @@
|
||||
"Comment": "GROUP1 0x83 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x27, #0x1 (1)",
|
||||
"adds x26, x4, #0x1 (1)",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -664,7 +657,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w27, w20",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -674,7 +667,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x27, x20",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -687,7 +680,7 @@
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs w26, w27, w20",
|
||||
"sbcs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -703,7 +696,7 @@
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs x26, x27, x20",
|
||||
"sbcs x26, x4, x20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -731,7 +724,7 @@
|
||||
"Comment": "GROUP1 0x83 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, #0x1 (1)",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -743,7 +736,7 @@
|
||||
"Comment": "GROUP1 0x83 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x27, #0x1 (1)",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
@@ -773,7 +766,7 @@
|
||||
"Comment": "GROUP1 0x83 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w27, #0x1 (1)",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
@@ -784,7 +777,7 @@
|
||||
"Comment": "GROUP1 0x83 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x27, #0x1 (1)",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
@@ -1665,23 +1658,21 @@
|
||||
]
|
||||
},
|
||||
"rcl rax, 1": {
|
||||
"ExpectedInstructionCount": 14,
|
||||
"ExpectedInstructionCount": 12,
|
||||
"Comment": "GROUP2 0xd1 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"cset w21, hs",
|
||||
"orr x4, x21, x20, lsl #1",
|
||||
"lsr x21, x20, #63",
|
||||
"cset w20, hs",
|
||||
"orr x20, x20, x4, lsl #1",
|
||||
"lsr x21, x4, #63",
|
||||
"mrs x22, nzcv",
|
||||
"mov w0, w22",
|
||||
"bfi w0, w21, #29, #1",
|
||||
"mov w21, w0",
|
||||
"eor x20, x4, x20",
|
||||
"lsr x20, x20, #63",
|
||||
"mov w0, w21",
|
||||
"bfi w0, w20, #28, #1",
|
||||
"mov w20, w0",
|
||||
"msr nzcv, x20"
|
||||
"eor x22, x20, x4",
|
||||
"lsr x22, x22, #63",
|
||||
"bfi w21, w22, #28, #1",
|
||||
"mov x4, x20",
|
||||
"msr nzcv, x21"
|
||||
]
|
||||
},
|
||||
"rcr ax, 1": {
|
||||
@@ -2361,36 +2352,36 @@
|
||||
"ExpectedInstructionCount": 12,
|
||||
"Comment": "GROUP2 0xd3 /4",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"lsl w4, w20, w5",
|
||||
"lsl w20, w4, w5",
|
||||
"cbz w5, #+0x28",
|
||||
"ands w26, w4, w4",
|
||||
"ands w26, w20, w20",
|
||||
"neg w0, w5",
|
||||
"lsr w0, w20, w0",
|
||||
"eor w2, w20, w4",
|
||||
"lsr w0, w4, w0",
|
||||
"eor w2, w4, w20",
|
||||
"mrs x1, nzcv",
|
||||
"bfi w1, w0, #29, #1",
|
||||
"lsr w2, w2, #31",
|
||||
"bfi w1, w2, #28, #1",
|
||||
"msr nzcv, x1"
|
||||
"msr nzcv, x1",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"shl rax, cl": {
|
||||
"ExpectedInstructionCount": 12,
|
||||
"Comment": "GROUP2 0xd3 /4",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"lsl x4, x20, x5",
|
||||
"lsl x20, x4, x5",
|
||||
"cbz x5, #+0x28",
|
||||
"ands x26, x4, x4",
|
||||
"ands x26, x20, x20",
|
||||
"neg x0, x5",
|
||||
"lsr x0, x20, x0",
|
||||
"eor x2, x20, x4",
|
||||
"lsr x0, x4, x0",
|
||||
"eor x2, x4, x20",
|
||||
"mrs x1, nzcv",
|
||||
"bfi w1, w0, #29, #1",
|
||||
"lsr x2, x2, #63",
|
||||
"bfi w1, w2, #28, #1",
|
||||
"msr nzcv, x1"
|
||||
"msr nzcv, x1",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"shr ax, cl": {
|
||||
@@ -2417,36 +2408,36 @@
|
||||
"ExpectedInstructionCount": 12,
|
||||
"Comment": "GROUP2 0xd3 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"lsr w4, w20, w5",
|
||||
"lsr w20, w4, w5",
|
||||
"cbz w5, #+0x28",
|
||||
"ands w26, w4, w4",
|
||||
"ands w26, w20, w20",
|
||||
"sub x0, x5, #0x1 (1)",
|
||||
"lsr w0, w20, w0",
|
||||
"eor w2, w20, w4",
|
||||
"lsr w0, w4, w0",
|
||||
"eor w2, w4, w20",
|
||||
"mrs x1, nzcv",
|
||||
"bfi w1, w0, #29, #1",
|
||||
"lsr w2, w2, #31",
|
||||
"bfi w1, w2, #28, #1",
|
||||
"msr nzcv, x1"
|
||||
"msr nzcv, x1",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"shr rax, cl": {
|
||||
"ExpectedInstructionCount": 12,
|
||||
"Comment": "GROUP2 0xd3 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"lsr x4, x20, x5",
|
||||
"lsr x20, x4, x5",
|
||||
"cbz x5, #+0x28",
|
||||
"ands x26, x4, x4",
|
||||
"ands x26, x20, x20",
|
||||
"sub x0, x5, #0x1 (1)",
|
||||
"lsr x0, x20, x0",
|
||||
"eor x2, x20, x4",
|
||||
"lsr x0, x4, x0",
|
||||
"eor x2, x4, x20",
|
||||
"mrs x1, nzcv",
|
||||
"bfi w1, w0, #29, #1",
|
||||
"lsr x2, x2, #63",
|
||||
"bfi w1, w2, #28, #1",
|
||||
"msr nzcv, x1"
|
||||
"msr nzcv, x1",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"sar ax, cl": {
|
||||
@@ -2470,30 +2461,30 @@
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "GROUP2 0xd3 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"asr w4, w20, w5",
|
||||
"asr w20, w4, w5",
|
||||
"cbz w5, #+0x1c",
|
||||
"ands w26, w4, w4",
|
||||
"ands w26, w20, w20",
|
||||
"sub x0, x5, #0x1 (1)",
|
||||
"lsr w0, w20, w0",
|
||||
"lsr w0, w4, w0",
|
||||
"mrs x1, nzcv",
|
||||
"bfi w1, w0, #29, #1",
|
||||
"msr nzcv, x1"
|
||||
"msr nzcv, x1",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"sar rax, cl": {
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "GROUP2 0xd3 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"asr x4, x20, x5",
|
||||
"asr x20, x4, x5",
|
||||
"cbz x5, #+0x1c",
|
||||
"ands x26, x4, x4",
|
||||
"ands x26, x20, x20",
|
||||
"sub x0, x5, #0x1 (1)",
|
||||
"lsr x0, x20, x0",
|
||||
"lsr x0, x4, x0",
|
||||
"mrs x1, nzcv",
|
||||
"bfi w1, w0, #29, #1",
|
||||
"msr nzcv, x1"
|
||||
"msr nzcv, x1",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"test bl, 1": {
|
||||
@@ -2519,15 +2510,14 @@
|
||||
]
|
||||
},
|
||||
"neg bl": {
|
||||
"ExpectedInstructionCount": 8,
|
||||
"ExpectedInstructionCount": 7,
|
||||
"Comment": "GROUP2 0xf6 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"cmp wzr, w27, lsl #24",
|
||||
"neg w26, w27",
|
||||
"cmp wzr, w7, lsl #24",
|
||||
"neg w26, w7",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x7, x27",
|
||||
"bfxil x7, x26, #0, #8",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
@@ -2661,15 +2651,14 @@
|
||||
]
|
||||
},
|
||||
"neg bx": {
|
||||
"ExpectedInstructionCount": 8,
|
||||
"ExpectedInstructionCount": 7,
|
||||
"Comment": "GROUP2 0xf7 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"cmp wzr, w27, lsl #16",
|
||||
"neg w26, w27",
|
||||
"cmp wzr, w7, lsl #16",
|
||||
"neg w26, w7",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x7, x27",
|
||||
"bfxil x7, x26, #0, #16",
|
||||
"msr nzcv, x20"
|
||||
]
|
||||
@@ -2679,7 +2668,7 @@
|
||||
"Comment": "GROUP2 0xf7 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"negs w26, w27",
|
||||
"negs w26, w7",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x7, x26",
|
||||
@@ -2691,7 +2680,7 @@
|
||||
"Comment": "GROUP2 0xf7 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"negs x26, x27",
|
||||
"negs x26, x7",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x7, x26",
|
||||
@@ -2729,9 +2718,9 @@
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "GROUP2 0xf7 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"mul x4, x7, x20",
|
||||
"umulh x6, x7, x20",
|
||||
"mul x20, x7, x4",
|
||||
"umulh x6, x7, x4",
|
||||
"mov x4, x20",
|
||||
"cmp x6, #0x0 (0)",
|
||||
"ccmn xzr, #0, #nzCV, eq"
|
||||
]
|
||||
@@ -2818,21 +2807,20 @@
|
||||
"ExpectedInstructionCount": 24,
|
||||
"Comment": "GROUP2 0xf7 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"cbz x6, #+0x28",
|
||||
"mov x0, x6",
|
||||
"mov x1, x20",
|
||||
"mov x1, x4",
|
||||
"mov x2, x7",
|
||||
"ldr x3, [x28, #2448]",
|
||||
"str x30, [sp, #-16]!",
|
||||
"blr x3",
|
||||
"ldr x30, [sp], #16",
|
||||
"mov x4, x0",
|
||||
"mov x20, x0",
|
||||
"b #+0x8",
|
||||
"udiv x4, x20, x7",
|
||||
"udiv x20, x4, x7",
|
||||
"cbz x6, #+0x28",
|
||||
"mov x0, x6",
|
||||
"mov x1, x20",
|
||||
"mov x1, x4",
|
||||
"mov x2, x7",
|
||||
"ldr x3, [x28, #2464]",
|
||||
"str x30, [sp, #-16]!",
|
||||
@@ -2840,8 +2828,9 @@
|
||||
"ldr x30, [sp], #16",
|
||||
"mov x6, x0",
|
||||
"b #+0xc",
|
||||
"udiv x0, x20, x7",
|
||||
"msub x6, x0, x7, x20"
|
||||
"udiv x0, x4, x7",
|
||||
"msub x6, x0, x7, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"idiv bx": {
|
||||
@@ -2888,25 +2877,24 @@
|
||||
"ExpectedInstructionCount": 28,
|
||||
"Comment": "GROUP2 0xf7 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"asr x0, x20, #63",
|
||||
"asr x0, x4, #63",
|
||||
"eor x0, x0, x6",
|
||||
"cbz x0, #+0x28",
|
||||
"mov x0, x6",
|
||||
"mov x1, x20",
|
||||
"mov x1, x4",
|
||||
"mov x2, x7",
|
||||
"ldr x3, [x28, #2456]",
|
||||
"str x30, [sp, #-16]!",
|
||||
"blr x3",
|
||||
"ldr x30, [sp], #16",
|
||||
"mov x4, x0",
|
||||
"mov x20, x0",
|
||||
"b #+0x8",
|
||||
"sdiv x4, x20, x7",
|
||||
"asr x0, x20, #63",
|
||||
"sdiv x20, x4, x7",
|
||||
"asr x0, x4, #63",
|
||||
"eor x0, x0, x6",
|
||||
"cbz x0, #+0x28",
|
||||
"mov x0, x6",
|
||||
"mov x1, x20",
|
||||
"mov x1, x4",
|
||||
"mov x2, x7",
|
||||
"ldr x3, [x28, #2472]",
|
||||
"str x30, [sp, #-16]!",
|
||||
@@ -2914,8 +2902,9 @@
|
||||
"ldr x30, [sp], #16",
|
||||
"mov x6, x0",
|
||||
"b #+0xc",
|
||||
"sdiv x0, x20, x7",
|
||||
"msub x6, x0, x7, x20"
|
||||
"sdiv x0, x4, x7",
|
||||
"msub x6, x0, x7, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"inc al": {
|
||||
@@ -2970,9 +2959,9 @@
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "GROUP4 0xfe /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"cset w20, hs",
|
||||
"adds w26, w27, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"mrs x21, nzcv",
|
||||
"mov w0, w21",
|
||||
"bfi w0, w20, #29, #1",
|
||||
@@ -2985,9 +2974,9 @@
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "GROUP4 0xfe /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"cset w20, hs",
|
||||
"adds x26, x27, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"adds x26, x4, #0x1 (1)",
|
||||
"mrs x21, nzcv",
|
||||
"mov w0, w21",
|
||||
"bfi w0, w20, #29, #1",
|
||||
@@ -3016,9 +3005,9 @@
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "GROUP4 0xfe /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"cset w20, hs",
|
||||
"subs w26, w27, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"mrs x21, nzcv",
|
||||
"mov w0, w21",
|
||||
"bfi w0, w20, #29, #1",
|
||||
@@ -3031,9 +3020,9 @@
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "GROUP4 0xfe /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"cset w20, hs",
|
||||
"subs x26, x27, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"mrs x21, nzcv",
|
||||
"mov w0, w21",
|
||||
"bfi w0, w20, #29, #1",
|
||||
|
||||
@@ -202,9 +202,9 @@
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "0x40",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w27, w4",
|
||||
"cset w20, hs",
|
||||
"adds w26, w27, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"mrs x21, nzcv",
|
||||
"mov w0, w21",
|
||||
"bfi w0, w20, #29, #1",
|
||||
@@ -247,9 +247,9 @@
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "0x48",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w27, w4",
|
||||
"cset w20, hs",
|
||||
"subs w26, w27, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"mrs x21, nzcv",
|
||||
"mov w0, w21",
|
||||
"bfi w0, w20, #29, #1",
|
||||
|
||||
@@ -1646,26 +1646,26 @@
|
||||
"ExpectedInstructionCount": 20,
|
||||
"Comment": "0x0f 0xad",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"and x21, x5, #0x3f",
|
||||
"neg x22, x21",
|
||||
"lsl x23, x20, x21",
|
||||
"lsr x22, x7, x22",
|
||||
"orr x22, x23, x22",
|
||||
"mrs x23, nzcv",
|
||||
"cmp x21, #0x0 (0)",
|
||||
"csel x4, x20, x22, eq",
|
||||
"msr nzcv, x23",
|
||||
"cbz x21, #+0x28",
|
||||
"ands x26, x4, x4",
|
||||
"neg x0, x21",
|
||||
"lsr x0, x20, x0",
|
||||
"eor x2, x20, x4",
|
||||
"and x20, x5, #0x3f",
|
||||
"neg x21, x20",
|
||||
"lsl x22, x4, x20",
|
||||
"lsr x21, x7, x21",
|
||||
"orr x21, x22, x21",
|
||||
"mrs x22, nzcv",
|
||||
"cmp x20, #0x0 (0)",
|
||||
"csel x21, x4, x21, eq",
|
||||
"msr nzcv, x22",
|
||||
"cbz x20, #+0x28",
|
||||
"ands x26, x21, x21",
|
||||
"neg x0, x20",
|
||||
"lsr x0, x4, x0",
|
||||
"eor x2, x4, x21",
|
||||
"mrs x1, nzcv",
|
||||
"bfi w1, w0, #29, #1",
|
||||
"lsr x2, x2, #63",
|
||||
"bfi w1, w2, #28, #1",
|
||||
"msr nzcv, x1"
|
||||
"msr nzcv, x1",
|
||||
"mov x4, x21"
|
||||
]
|
||||
},
|
||||
"push gs": {
|
||||
@@ -1972,31 +1972,30 @@
|
||||
]
|
||||
},
|
||||
"cmpxchg rax, rbx": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "0x0f 0xb1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x7",
|
||||
"mov w27, #0x0",
|
||||
"subs x26, x4, x4",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"mov x4, x20"
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20",
|
||||
"mov x4, x7"
|
||||
]
|
||||
},
|
||||
"cmpxchg [rax], rbx": {
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "0x0f 0xb1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"mov x1, x20",
|
||||
"casal x1, x7, [x20]",
|
||||
"mov x4, x1",
|
||||
"eor w27, w20, w4",
|
||||
"subs x26, x20, x4",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"mov x1, x4",
|
||||
"casal x1, x7, [x4]",
|
||||
"mov x20, x1",
|
||||
"eor w27, w4, w20",
|
||||
"subs x26, x4, x20",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"btr ax, bx": {
|
||||
@@ -2586,13 +2585,12 @@
|
||||
]
|
||||
},
|
||||
"xadd rax, rbx": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "0x0f 0xc1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x4",
|
||||
"eor w27, w20, w7",
|
||||
"adds x26, x20, x7",
|
||||
"mov x7, x20",
|
||||
"eor w27, w4, w7",
|
||||
"adds x26, x4, x7",
|
||||
"mov x7, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -2600,10 +2598,10 @@
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "0x0f 0xc1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x7",
|
||||
"ldaddal x20, x7, [x4]",
|
||||
"eor w27, w7, w20",
|
||||
"adds x26, x7, x20"
|
||||
"ldaddal x7, x20, [x4]",
|
||||
"eor w27, w20, w7",
|
||||
"adds x26, x20, x7",
|
||||
"mov x7, x20"
|
||||
]
|
||||
},
|
||||
"cmpps xmm0, xmm1, 0": {
|
||||
|
||||
@@ -34,15 +34,12 @@
|
||||
]
|
||||
},
|
||||
"vmovups ymm0, ymm0": {
|
||||
"ExpectedInstructionCount": 2,
|
||||
"ExpectedInstructionCount": 0,
|
||||
"Comment": [
|
||||
"Spurious moves",
|
||||
"Map 1 0b00 0x10 256-bit"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov z2.d, p7/m, z16.d",
|
||||
"mov z16.d, p7/m, z2.d"
|
||||
]
|
||||
"ExpectedArm64ASM": []
|
||||
},
|
||||
"vmovups ymm0, [rax]": {
|
||||
"ExpectedInstructionCount": 1,
|
||||
@@ -73,15 +70,12 @@
|
||||
]
|
||||
},
|
||||
"vmovupd ymm0, ymm0": {
|
||||
"ExpectedInstructionCount": 2,
|
||||
"ExpectedInstructionCount": 0,
|
||||
"Comment": [
|
||||
"Spurious moves",
|
||||
"Map 1 0b01 0x10 256-bit"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov z2.d, p7/m, z16.d",
|
||||
"mov z16.d, p7/m, z2.d"
|
||||
]
|
||||
"ExpectedArm64ASM": []
|
||||
},
|
||||
"vmovupd ymm0, [rax]": {
|
||||
"ExpectedInstructionCount": 1,
|
||||
|
||||
@@ -297,14 +297,11 @@
|
||||
]
|
||||
},
|
||||
"vpblendd ymm0, ymm1, 00000000b": {
|
||||
"ExpectedInstructionCount": 2,
|
||||
"ExpectedInstructionCount": 0,
|
||||
"Comment": [
|
||||
"Map 3 0b01 0x02 256-bit"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov z2.d, p7/m, z16.d",
|
||||
"mov z16.d, p7/m, z2.d"
|
||||
]
|
||||
"ExpectedArm64ASM": []
|
||||
},
|
||||
"vpblendd ymm0, ymm1, 01010101b": {
|
||||
"ExpectedInstructionCount": 50,
|
||||
|
||||
@@ -6781,7 +6781,7 @@
|
||||
]
|
||||
},
|
||||
"fild dword [rax]": {
|
||||
"ExpectedInstructionCount": 35,
|
||||
"ExpectedInstructionCount": 34,
|
||||
"Comment": [
|
||||
"0xdf !11b /5"
|
||||
],
|
||||
@@ -6798,29 +6798,28 @@
|
||||
"ldr w21, [x4]",
|
||||
"mov w22, #0x0",
|
||||
"sxtw x21, w21",
|
||||
"mrs x22, nzcv",
|
||||
"mrs x23, nzcv",
|
||||
"cmp x21, #0x0 (0)",
|
||||
"mov w23, #0x8000",
|
||||
"csel x23, x23, xzr, lt",
|
||||
"mov w24, #0x8000",
|
||||
"csel x24, x24, xzr, lt",
|
||||
"cneg x21, x21, mi",
|
||||
"mov w24, #0x3f",
|
||||
"mov w25, #0x3f",
|
||||
"mov x0, #0x3f",
|
||||
"clz x25, x21",
|
||||
"sub x25, x0, x25",
|
||||
"sub x24, x24, x25",
|
||||
"lsl x25, x21, x24",
|
||||
"mov w30, #0x403e",
|
||||
"sub x24, x30, x24",
|
||||
"mov w30, #0x0",
|
||||
"clz x30, x21",
|
||||
"sub x30, x0, x30",
|
||||
"sub x25, x25, x30",
|
||||
"lsl x30, x21, x25",
|
||||
"mov w18, #0x403e",
|
||||
"sub x25, x18, x25",
|
||||
"cmp x21, #0x0 (0)",
|
||||
"csel x21, x30, x24, eq",
|
||||
"orr x21, x23, x21",
|
||||
"fmov d2, x25",
|
||||
"csel x21, x22, x25, eq",
|
||||
"orr x21, x24, x21",
|
||||
"fmov d2, x30",
|
||||
"fmov d3, x21",
|
||||
"mov v2.d[1], v3.d[0]",
|
||||
"add x0, x28, x20, lsl #4",
|
||||
"str q2, [x0, #768]",
|
||||
"msr nzcv, x22"
|
||||
"msr nzcv, x23"
|
||||
]
|
||||
},
|
||||
"fisttp dword [rax]": {
|
||||
@@ -16489,7 +16488,7 @@
|
||||
]
|
||||
},
|
||||
"fild word [rax]": {
|
||||
"ExpectedInstructionCount": 35,
|
||||
"ExpectedInstructionCount": 34,
|
||||
"Comment": [
|
||||
"0xdf !11b /0"
|
||||
],
|
||||
@@ -16506,29 +16505,28 @@
|
||||
"ldrh w21, [x4]",
|
||||
"mov w22, #0x0",
|
||||
"sxth x21, w21",
|
||||
"mrs x22, nzcv",
|
||||
"mrs x23, nzcv",
|
||||
"cmp x21, #0x0 (0)",
|
||||
"mov w23, #0x8000",
|
||||
"csel x23, x23, xzr, lt",
|
||||
"mov w24, #0x8000",
|
||||
"csel x24, x24, xzr, lt",
|
||||
"cneg x21, x21, mi",
|
||||
"mov w24, #0x3f",
|
||||
"mov w25, #0x3f",
|
||||
"mov x0, #0x3f",
|
||||
"clz x25, x21",
|
||||
"sub x25, x0, x25",
|
||||
"sub x24, x24, x25",
|
||||
"lsl x25, x21, x24",
|
||||
"mov w30, #0x403e",
|
||||
"sub x24, x30, x24",
|
||||
"mov w30, #0x0",
|
||||
"clz x30, x21",
|
||||
"sub x30, x0, x30",
|
||||
"sub x25, x25, x30",
|
||||
"lsl x30, x21, x25",
|
||||
"mov w18, #0x403e",
|
||||
"sub x25, x18, x25",
|
||||
"cmp x21, #0x0 (0)",
|
||||
"csel x21, x30, x24, eq",
|
||||
"orr x21, x23, x21",
|
||||
"fmov d2, x25",
|
||||
"csel x21, x22, x25, eq",
|
||||
"orr x21, x24, x21",
|
||||
"fmov d2, x30",
|
||||
"fmov d3, x21",
|
||||
"mov v2.d[1], v3.d[0]",
|
||||
"add x0, x28, x20, lsl #4",
|
||||
"str q2, [x0, #768]",
|
||||
"msr nzcv, x22"
|
||||
"msr nzcv, x23"
|
||||
]
|
||||
},
|
||||
"fisttp word [rax]": {
|
||||
|
||||
Reference in new issue
Block a user