mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 10:00:16 +02:00
InstCountCI: Update
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
This commit is contained in:
1 parent
a5b24bfe4c
commit
1b496cda8f
23 files changed
+2904
-2953
No files matched your search
@@ -1045,10 +1045,11 @@
|
||||
"mov rax, gs:0x100",
|
||||
"mov rbx, gs:0x14"
|
||||
],
|
||||
"ExpectedInstructionCount": 3,
|
||||
"ExpectedInstructionCount": 4,
|
||||
"ExpectedArm64ASM": [
|
||||
"ldr x20, [x28, #960]",
|
||||
"ldr x4, [x20, #256]",
|
||||
"ldr x20, [x28, #960]",
|
||||
"ldur x7, [x20, #20]"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -323,10 +323,11 @@
|
||||
"mov eax, gs:0x100",
|
||||
"mov ebx, gs:0x14"
|
||||
],
|
||||
"ExpectedInstructionCount": 3,
|
||||
"ExpectedInstructionCount": 4,
|
||||
"ExpectedArm64ASM": [
|
||||
"ldr w20, [x28, #960]",
|
||||
"ldr w4, [x20, #256]",
|
||||
"ldr w20, [x28, #960]",
|
||||
"ldr w7, [x20, #20]"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -69,11 +69,11 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"strb w20, [x28, #986]",
|
||||
"ldrb w20, [x10]",
|
||||
"strb w20, [x11]",
|
||||
"ldrb w21, [x10]",
|
||||
"strb w21, [x11]",
|
||||
"add x10, x10, #0x1 (1)",
|
||||
"add x11, x11, #0x1 (1)"
|
||||
"add x11, x11, #0x1 (1)",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"positive movsw": {
|
||||
@@ -88,11 +88,11 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"strb w20, [x28, #986]",
|
||||
"ldrh w20, [x10]",
|
||||
"strh w20, [x11]",
|
||||
"ldrh w21, [x10]",
|
||||
"strh w21, [x11]",
|
||||
"add x10, x10, #0x2 (2)",
|
||||
"add x11, x11, #0x2 (2)"
|
||||
"add x11, x11, #0x2 (2)",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"positive movsd": {
|
||||
@@ -107,11 +107,11 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"strb w20, [x28, #986]",
|
||||
"ldr w20, [x10]",
|
||||
"str w20, [x11]",
|
||||
"ldr w21, [x10]",
|
||||
"str w21, [x11]",
|
||||
"add x10, x10, #0x4 (4)",
|
||||
"add x11, x11, #0x4 (4)"
|
||||
"add x11, x11, #0x4 (4)",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"positive movsq": {
|
||||
@@ -126,11 +126,11 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"strb w20, [x28, #986]",
|
||||
"ldr x20, [x10]",
|
||||
"str x20, [x11]",
|
||||
"ldr x21, [x10]",
|
||||
"str x21, [x11]",
|
||||
"add x10, x10, #0x8 (8)",
|
||||
"add x11, x11, #0x8 (8)"
|
||||
"add x11, x11, #0x8 (8)",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"negative movsb": {
|
||||
@@ -145,11 +145,11 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"strb w20, [x28, #986]",
|
||||
"ldrb w20, [x10]",
|
||||
"strb w20, [x11]",
|
||||
"ldrb w21, [x10]",
|
||||
"strb w21, [x11]",
|
||||
"sub x10, x10, #0x1 (1)",
|
||||
"sub x11, x11, #0x1 (1)"
|
||||
"sub x11, x11, #0x1 (1)",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"negative movsw": {
|
||||
@@ -164,11 +164,11 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"strb w20, [x28, #986]",
|
||||
"ldrh w20, [x10]",
|
||||
"strh w20, [x11]",
|
||||
"ldrh w21, [x10]",
|
||||
"strh w21, [x11]",
|
||||
"sub x10, x10, #0x2 (2)",
|
||||
"sub x11, x11, #0x2 (2)"
|
||||
"sub x11, x11, #0x2 (2)",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"negative movsd": {
|
||||
@@ -183,11 +183,11 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"strb w20, [x28, #986]",
|
||||
"ldr w20, [x10]",
|
||||
"str w20, [x11]",
|
||||
"ldr w21, [x10]",
|
||||
"str w21, [x11]",
|
||||
"sub x10, x10, #0x4 (4)",
|
||||
"sub x11, x11, #0x4 (4)"
|
||||
"sub x11, x11, #0x4 (4)",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"negative movsq": {
|
||||
@@ -202,11 +202,11 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"strb w20, [x28, #986]",
|
||||
"ldr x20, [x10]",
|
||||
"str x20, [x11]",
|
||||
"ldr x21, [x10]",
|
||||
"str x21, [x11]",
|
||||
"sub x10, x10, #0x8 (8)",
|
||||
"sub x11, x11, #0x8 (8)"
|
||||
"sub x11, x11, #0x8 (8)",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"positive rep movsb": {
|
||||
@@ -222,7 +222,6 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x0",
|
||||
"mov w21, #0x1",
|
||||
"strb w21, [x28, #986]",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"mov x2, x10",
|
||||
@@ -263,6 +262,7 @@
|
||||
"add x23, x1, x2",
|
||||
"mov x10, x23",
|
||||
"mov x11, x22",
|
||||
"strb w21, [x28, #986]",
|
||||
"mov x5, x20"
|
||||
]
|
||||
},
|
||||
@@ -279,7 +279,6 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x0",
|
||||
"mov w21, #0x1",
|
||||
"strb w21, [x28, #986]",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"mov x2, x10",
|
||||
@@ -320,6 +319,7 @@
|
||||
"add x23, x1, x2, lsl #1",
|
||||
"mov x10, x23",
|
||||
"mov x11, x22",
|
||||
"strb w21, [x28, #986]",
|
||||
"mov x5, x20"
|
||||
]
|
||||
},
|
||||
@@ -336,7 +336,6 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x0",
|
||||
"mov w21, #0x1",
|
||||
"strb w21, [x28, #986]",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"mov x2, x10",
|
||||
@@ -377,6 +376,7 @@
|
||||
"add x23, x1, x2, lsl #2",
|
||||
"mov x10, x23",
|
||||
"mov x11, x22",
|
||||
"strb w21, [x28, #986]",
|
||||
"mov x5, x20"
|
||||
]
|
||||
},
|
||||
@@ -393,7 +393,6 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x0",
|
||||
"mov w21, #0x1",
|
||||
"strb w21, [x28, #986]",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"mov x2, x10",
|
||||
@@ -434,6 +433,7 @@
|
||||
"add x23, x1, x2, lsl #3",
|
||||
"mov x10, x23",
|
||||
"mov x11, x22",
|
||||
"strb w21, [x28, #986]",
|
||||
"mov x5, x20"
|
||||
]
|
||||
},
|
||||
@@ -449,7 +449,6 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"strb w20, [x28, #986]",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"mov x2, x10",
|
||||
@@ -490,11 +489,12 @@
|
||||
"mov x0, x11",
|
||||
"mov x1, x10",
|
||||
"mov x2, x5",
|
||||
"sub x20, x0, x2",
|
||||
"sub x21, x1, x2",
|
||||
"mov x10, x21",
|
||||
"mov x11, x20",
|
||||
"mov w5, #0x0"
|
||||
"sub x22, x0, x2",
|
||||
"sub x23, x1, x2",
|
||||
"mov x10, x23",
|
||||
"mov x11, x22",
|
||||
"mov w5, #0x0",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"negative rep movsw": {
|
||||
@@ -509,7 +509,6 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"strb w20, [x28, #986]",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"mov x2, x10",
|
||||
@@ -550,11 +549,12 @@
|
||||
"mov x0, x11",
|
||||
"mov x1, x10",
|
||||
"mov x2, x5",
|
||||
"sub x20, x0, x2, lsl #1",
|
||||
"sub x21, x1, x2, lsl #1",
|
||||
"mov x10, x21",
|
||||
"mov x11, x20",
|
||||
"mov w5, #0x0"
|
||||
"sub x22, x0, x2, lsl #1",
|
||||
"sub x23, x1, x2, lsl #1",
|
||||
"mov x10, x23",
|
||||
"mov x11, x22",
|
||||
"mov w5, #0x0",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"negative rep movsd": {
|
||||
@@ -569,7 +569,6 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"strb w20, [x28, #986]",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"mov x2, x10",
|
||||
@@ -610,11 +609,12 @@
|
||||
"mov x0, x11",
|
||||
"mov x1, x10",
|
||||
"mov x2, x5",
|
||||
"sub x20, x0, x2, lsl #2",
|
||||
"sub x21, x1, x2, lsl #2",
|
||||
"mov x10, x21",
|
||||
"mov x11, x20",
|
||||
"mov w5, #0x0"
|
||||
"sub x22, x0, x2, lsl #2",
|
||||
"sub x23, x1, x2, lsl #2",
|
||||
"mov x10, x23",
|
||||
"mov x11, x22",
|
||||
"mov w5, #0x0",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"negative rep movsq": {
|
||||
@@ -629,7 +629,6 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"strb w20, [x28, #986]",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"mov x2, x10",
|
||||
@@ -670,11 +669,12 @@
|
||||
"mov x0, x11",
|
||||
"mov x1, x10",
|
||||
"mov x2, x5",
|
||||
"sub x20, x0, x2, lsl #3",
|
||||
"sub x21, x1, x2, lsl #3",
|
||||
"mov x10, x21",
|
||||
"mov x11, x20",
|
||||
"mov w5, #0x0"
|
||||
"sub x22, x0, x2, lsl #3",
|
||||
"sub x23, x1, x2, lsl #3",
|
||||
"mov x10, x23",
|
||||
"mov x11, x22",
|
||||
"mov w5, #0x0",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"positive rep stosb": {
|
||||
@@ -690,14 +690,13 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x0",
|
||||
"mov w21, #0x1",
|
||||
"strb w21, [x28, #986]",
|
||||
"uxtb w21, w4",
|
||||
"uxtb w22, w4",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"cbz x0, #+0x58",
|
||||
"sub x0, x0, #0x20 (32)",
|
||||
"tbnz x0, #63, #+0x3c",
|
||||
"dup v1.16b, w21",
|
||||
"dup v1.16b, w22",
|
||||
"sub x0, x0, #0x20 (32)",
|
||||
"tbnz x0, #63, #+0x14",
|
||||
"stp q1, q1, [x1], #32",
|
||||
@@ -713,10 +712,11 @@
|
||||
"tbz x0, #63, #-0x8",
|
||||
"add x0, x0, #0x20 (32)",
|
||||
"cbz x0, #+0x10",
|
||||
"strb w21, [x1], #1",
|
||||
"strb w22, [x1], #1",
|
||||
"sub x0, x0, #0x1 (1)",
|
||||
"cbnz x0, #-0x8",
|
||||
"add x11, x11, x5",
|
||||
"strb w21, [x28, #986]",
|
||||
"mov x5, x20"
|
||||
]
|
||||
},
|
||||
@@ -733,14 +733,13 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x0",
|
||||
"mov w21, #0x1",
|
||||
"strb w21, [x28, #986]",
|
||||
"uxth w21, w4",
|
||||
"uxth w22, w4",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"cbz x0, #+0x58",
|
||||
"sub x0, x0, #0x10 (16)",
|
||||
"tbnz x0, #63, #+0x3c",
|
||||
"dup v1.8h, w21",
|
||||
"dup v1.8h, w22",
|
||||
"sub x0, x0, #0x10 (16)",
|
||||
"tbnz x0, #63, #+0x14",
|
||||
"stp q1, q1, [x1], #32",
|
||||
@@ -756,10 +755,11 @@
|
||||
"tbz x0, #63, #-0x8",
|
||||
"add x0, x0, #0x10 (16)",
|
||||
"cbz x0, #+0x10",
|
||||
"strh w21, [x1], #2",
|
||||
"strh w22, [x1], #2",
|
||||
"sub x0, x0, #0x1 (1)",
|
||||
"cbnz x0, #-0x8",
|
||||
"add x11, x11, x5, lsl #1",
|
||||
"strb w21, [x28, #986]",
|
||||
"mov x5, x20"
|
||||
]
|
||||
},
|
||||
@@ -776,14 +776,13 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x0",
|
||||
"mov w21, #0x1",
|
||||
"strb w21, [x28, #986]",
|
||||
"mov w21, w4",
|
||||
"mov w22, w4",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"cbz x0, #+0x58",
|
||||
"sub x0, x0, #0x8 (8)",
|
||||
"tbnz x0, #63, #+0x3c",
|
||||
"dup v1.4s, w21",
|
||||
"dup v1.4s, w22",
|
||||
"sub x0, x0, #0x8 (8)",
|
||||
"tbnz x0, #63, #+0x14",
|
||||
"stp q1, q1, [x1], #32",
|
||||
@@ -799,10 +798,11 @@
|
||||
"tbz x0, #63, #-0x8",
|
||||
"add x0, x0, #0x8 (8)",
|
||||
"cbz x0, #+0x10",
|
||||
"str w21, [x1], #4",
|
||||
"str w22, [x1], #4",
|
||||
"sub x0, x0, #0x1 (1)",
|
||||
"cbnz x0, #-0x8",
|
||||
"add x11, x11, x5, lsl #2",
|
||||
"strb w21, [x28, #986]",
|
||||
"mov x5, x20"
|
||||
]
|
||||
},
|
||||
@@ -819,7 +819,6 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x0",
|
||||
"mov w21, #0x1",
|
||||
"strb w21, [x28, #986]",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"cbz x0, #+0x58",
|
||||
@@ -845,6 +844,7 @@
|
||||
"sub x0, x0, #0x1 (1)",
|
||||
"cbnz x0, #-0x8",
|
||||
"add x11, x11, x5, lsl #3",
|
||||
"strb w21, [x28, #986]",
|
||||
"mov x5, x20"
|
||||
]
|
||||
},
|
||||
@@ -860,15 +860,14 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"strb w20, [x28, #986]",
|
||||
"uxtb w20, w4",
|
||||
"uxtb w21, w4",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"cbz x0, #+0x60",
|
||||
"sub x1, x1, #0x1f (31)",
|
||||
"sub x0, x0, #0x20 (32)",
|
||||
"tbnz x0, #63, #+0x3c",
|
||||
"dup v1.16b, w20",
|
||||
"dup v1.16b, w21",
|
||||
"sub x0, x0, #0x20 (32)",
|
||||
"tbnz x0, #63, #+0x14",
|
||||
"stp q1, q1, [x1], #-32",
|
||||
@@ -885,11 +884,12 @@
|
||||
"add x0, x0, #0x20 (32)",
|
||||
"cbz x0, #+0x14",
|
||||
"add x1, x1, #0x1f (31)",
|
||||
"strb w20, [x1], #-1",
|
||||
"strb w21, [x1], #-1",
|
||||
"sub x0, x0, #0x1 (1)",
|
||||
"cbnz x0, #-0x8",
|
||||
"sub x11, x11, x5",
|
||||
"mov w5, #0x0"
|
||||
"mov w5, #0x0",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"negative rep stosw": {
|
||||
@@ -904,15 +904,14 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"strb w20, [x28, #986]",
|
||||
"uxth w20, w4",
|
||||
"uxth w21, w4",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"cbz x0, #+0x60",
|
||||
"sub x1, x1, #0x1e (30)",
|
||||
"sub x0, x0, #0x10 (16)",
|
||||
"tbnz x0, #63, #+0x3c",
|
||||
"dup v1.8h, w20",
|
||||
"dup v1.8h, w21",
|
||||
"sub x0, x0, #0x10 (16)",
|
||||
"tbnz x0, #63, #+0x14",
|
||||
"stp q1, q1, [x1], #-32",
|
||||
@@ -929,11 +928,12 @@
|
||||
"add x0, x0, #0x10 (16)",
|
||||
"cbz x0, #+0x14",
|
||||
"add x1, x1, #0x1e (30)",
|
||||
"strh w20, [x1], #-2",
|
||||
"strh w21, [x1], #-2",
|
||||
"sub x0, x0, #0x1 (1)",
|
||||
"cbnz x0, #-0x8",
|
||||
"sub x11, x11, x5, lsl #1",
|
||||
"mov w5, #0x0"
|
||||
"mov w5, #0x0",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"negative rep stosd": {
|
||||
@@ -948,15 +948,14 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"strb w20, [x28, #986]",
|
||||
"mov w20, w4",
|
||||
"mov w21, w4",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"cbz x0, #+0x60",
|
||||
"sub x1, x1, #0x1c (28)",
|
||||
"sub x0, x0, #0x8 (8)",
|
||||
"tbnz x0, #63, #+0x3c",
|
||||
"dup v1.4s, w20",
|
||||
"dup v1.4s, w21",
|
||||
"sub x0, x0, #0x8 (8)",
|
||||
"tbnz x0, #63, #+0x14",
|
||||
"stp q1, q1, [x1], #-32",
|
||||
@@ -973,11 +972,12 @@
|
||||
"add x0, x0, #0x8 (8)",
|
||||
"cbz x0, #+0x14",
|
||||
"add x1, x1, #0x1c (28)",
|
||||
"str w20, [x1], #-4",
|
||||
"str w21, [x1], #-4",
|
||||
"sub x0, x0, #0x1 (1)",
|
||||
"cbnz x0, #-0x8",
|
||||
"sub x11, x11, x5, lsl #2",
|
||||
"mov w5, #0x0"
|
||||
"mov w5, #0x0",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"negative rep stosq": {
|
||||
@@ -992,7 +992,6 @@
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"strb w20, [x28, #986]",
|
||||
"mov x0, x5",
|
||||
"mov x1, x11",
|
||||
"cbz x0, #+0x60",
|
||||
@@ -1020,11 +1019,12 @@
|
||||
"sub x0, x0, #0x1 (1)",
|
||||
"cbnz x0, #-0x8",
|
||||
"sub x11, x11, x5, lsl #3",
|
||||
"mov w5, #0x0"
|
||||
"mov w5, #0x0",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"Sekiro spill block": {
|
||||
"ExpectedInstructionCount": 148,
|
||||
"ExpectedInstructionCount": 147,
|
||||
"Comment": [
|
||||
"This block of code came from the settings screen when it loaded",
|
||||
"It was originally at RIP: 0x14232cca0 and has been deobfuscated"
|
||||
@@ -1173,7 +1173,8 @@
|
||||
"ldr w11, [x6, #32]",
|
||||
"mov w20, #0x13",
|
||||
"mul w4, w5, w20",
|
||||
"str w5, [x8, #104]",
|
||||
"mov w21, w5",
|
||||
"str w21, [x8, #104]",
|
||||
"mov w21, #0x1000000",
|
||||
"add w4, w4, w21",
|
||||
"lsr w4, w4, #25",
|
||||
@@ -1258,33 +1259,31 @@
|
||||
"sub w17, w17, w14",
|
||||
"mov w20, w17",
|
||||
"str w20, [x4, #20]",
|
||||
"ldr w20, [x8, #112]",
|
||||
"mov x21, x4",
|
||||
"mov x4, x20",
|
||||
"ldr w4, [x8, #112]",
|
||||
"lsl w15, w15, #26",
|
||||
"sub w4, w20, w15",
|
||||
"sub w4, w4, w15",
|
||||
"lsl w7, w7, #25",
|
||||
"mov w20, w4",
|
||||
"str w20, [x21, #24]",
|
||||
"str w20, [x10, #24]",
|
||||
"ldr w4, [x8, #120]",
|
||||
"sub w4, w4, w7",
|
||||
"lsl w11, w11, #26",
|
||||
"mov w20, w4",
|
||||
"str w20, [x21, #28]",
|
||||
"str w20, [x10, #28]",
|
||||
"ldr w4, [x8]",
|
||||
"sub w4, w4, w11",
|
||||
"mov w20, w4",
|
||||
"str w20, [x21, #32]",
|
||||
"mov x4, x5",
|
||||
"and w4, w5, #0xfe000000",
|
||||
"str w20, [x10, #32]",
|
||||
"mov w4, w5",
|
||||
"and w4, w4, #0xfe000000",
|
||||
"sub w5, w5, w4",
|
||||
"mov w20, w5",
|
||||
"str w20, [x21, #36]",
|
||||
"str w20, [x10, #36]",
|
||||
"mvn w27, w8",
|
||||
"adds x26, x8, #0x18 (24)",
|
||||
"mov x8, x26",
|
||||
"ldr x29, [x26]",
|
||||
"add x8, x26, #0x8 (8)",
|
||||
"ldr x29, [x8]",
|
||||
"add x8, x8, #0x8 (8)",
|
||||
"ldr x19, [x8]",
|
||||
"add x8, x8, #0x8 (8)",
|
||||
"ldr x17, [x8]",
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
"Comment": [],
|
||||
"Instructions": {
|
||||
"libnss3 sha": {
|
||||
"ExpectedInstructionCount": 2367,
|
||||
"ExpectedInstructionCount": 2366,
|
||||
"Comment": [
|
||||
"This block of code comes from libnss3 which causes panic spilling in FEX's RA.",
|
||||
"This code is hit in steamwebhelper calling in to this function.",
|
||||
@@ -206,7 +206,7 @@
|
||||
"ldr q22, [x11, #32]",
|
||||
"ldr q21, [x11, #48]",
|
||||
"mov v19.16b, v16.16b",
|
||||
"ext v19.16b, v18.16b, v16.16b, #8",
|
||||
"ext v19.16b, v18.16b, v19.16b, #8",
|
||||
"mov v18.d[1], v16.d[1]",
|
||||
"mov w20, #0x1000",
|
||||
"movk w20, #0x1, lsl #16",
|
||||
@@ -230,7 +230,7 @@
|
||||
"unimplemented (Unimplemented)",
|
||||
"mov w21, v19.s[1]",
|
||||
"mov w22, v19.s[0]",
|
||||
"mov w23, v18.s[1]",
|
||||
"mov w23, v20.s[1]",
|
||||
"and w24, w21, w22",
|
||||
"bic w23, w23, w21",
|
||||
"eor w23, w24, w23",
|
||||
@@ -240,11 +240,11 @@
|
||||
"add w23, w23, w24",
|
||||
"mov w24, v16.s[0]",
|
||||
"add w23, w23, w24",
|
||||
"mov w24, v18.s[0]",
|
||||
"mov w24, v20.s[0]",
|
||||
"add w23, w23, w24",
|
||||
"mov w24, v19.s[3]",
|
||||
"mov w25, v19.s[2]",
|
||||
"mov w30, v18.s[3]",
|
||||
"mov w30, v20.s[3]",
|
||||
"and w18, w25, w30",
|
||||
"orr w30, w25, w30",
|
||||
"and w30, w24, w30",
|
||||
@@ -254,7 +254,7 @@
|
||||
"eor w18, w18, w24, ror #13",
|
||||
"eor w18, w18, w24, ror #22",
|
||||
"add w30, w30, w18",
|
||||
"mov w18, v18.s[2]",
|
||||
"mov w18, v20.s[2]",
|
||||
"add w23, w23, w18",
|
||||
"and w21, w23, w21",
|
||||
"bic w22, w22, w23",
|
||||
@@ -265,7 +265,7 @@
|
||||
"add w21, w21, w22",
|
||||
"mov w22, v16.s[1]",
|
||||
"add w21, w21, w22",
|
||||
"mov w22, v18.s[1]",
|
||||
"mov w22, v20.s[1]",
|
||||
"add w21, w21, w22",
|
||||
"and w22, w24, w25",
|
||||
"orr w24, w24, w25",
|
||||
@@ -276,9 +276,9 @@
|
||||
"eor w24, w24, w30, ror #13",
|
||||
"eor w24, w24, w30, ror #22",
|
||||
"add w22, w22, w24",
|
||||
"mov w24, v18.s[3]",
|
||||
"mov w24, v20.s[3]",
|
||||
"add w21, w21, w24",
|
||||
"mov v4.16b, v18.16b",
|
||||
"mov v4.16b, v20.16b",
|
||||
"mov v4.s[3], w22",
|
||||
"mov v4.s[2], w30",
|
||||
"mov v4.s[1], w21",
|
||||
@@ -289,7 +289,7 @@
|
||||
"tbl v16.16b, {v16.16b}, v4.16b",
|
||||
"mov w21, v20.s[1]",
|
||||
"mov w22, v20.s[0]",
|
||||
"mov w23, v19.s[1]",
|
||||
"mov w23, v17.s[1]",
|
||||
"and w24, w21, w22",
|
||||
"bic w23, w23, w21",
|
||||
"eor w23, w24, w23",
|
||||
@@ -299,11 +299,11 @@
|
||||
"add w23, w23, w24",
|
||||
"mov w24, v16.s[0]",
|
||||
"add w23, w23, w24",
|
||||
"mov w24, v19.s[0]",
|
||||
"mov w24, v17.s[0]",
|
||||
"add w23, w23, w24",
|
||||
"mov w24, v20.s[3]",
|
||||
"mov w25, v20.s[2]",
|
||||
"mov w30, v19.s[3]",
|
||||
"mov w30, v17.s[3]",
|
||||
"and w18, w25, w30",
|
||||
"orr w30, w25, w30",
|
||||
"and w30, w24, w30",
|
||||
@@ -313,7 +313,7 @@
|
||||
"eor w18, w18, w24, ror #13",
|
||||
"eor w18, w18, w24, ror #22",
|
||||
"add w30, w30, w18",
|
||||
"mov w18, v19.s[2]",
|
||||
"mov w18, v17.s[2]",
|
||||
"add w23, w23, w18",
|
||||
"and w21, w23, w21",
|
||||
"bic w22, w22, w23",
|
||||
@@ -324,7 +324,7 @@
|
||||
"add w21, w21, w22",
|
||||
"mov w22, v16.s[1]",
|
||||
"add w21, w21, w22",
|
||||
"mov w22, v19.s[1]",
|
||||
"mov w22, v17.s[1]",
|
||||
"add w21, w21, w22",
|
||||
"and w22, w24, w25",
|
||||
"orr w24, w24, w25",
|
||||
@@ -335,16 +335,16 @@
|
||||
"eor w24, w24, w30, ror #13",
|
||||
"eor w24, w24, w30, ror #22",
|
||||
"add w22, w22, w24",
|
||||
"mov w24, v19.s[3]",
|
||||
"mov w24, v17.s[3]",
|
||||
"add w21, w21, w24",
|
||||
"mov v5.16b, v19.16b",
|
||||
"mov v5.16b, v17.16b",
|
||||
"mov v5.s[3], w22",
|
||||
"mov v5.s[2], w30",
|
||||
"mov v5.s[1], w21",
|
||||
"mov v17.16b, v5.16b",
|
||||
"mov v17.s[0], w23",
|
||||
"mov v16.16b, v21.16b",
|
||||
"ext v16.16b, v22.16b, v21.16b, #4",
|
||||
"ext v16.16b, v22.16b, v16.16b, #4",
|
||||
"add v24.4s, v24.4s, v16.4s",
|
||||
"ldr q16, [x29, x20, sxtx]",
|
||||
"mov w21, v21.s[2]",
|
||||
@@ -499,7 +499,7 @@
|
||||
"mov v17.16b, v5.16b",
|
||||
"mov v17.s[0], w23",
|
||||
"mov v16.16b, v24.16b",
|
||||
"ext v16.16b, v21.16b, v24.16b, #4",
|
||||
"ext v16.16b, v21.16b, v16.16b, #4",
|
||||
"add v23.4s, v23.4s, v16.4s",
|
||||
"ldr q16, [x29, x20, sxtx]",
|
||||
"mov w21, v24.s[2]",
|
||||
@@ -654,7 +654,7 @@
|
||||
"mov v17.16b, v5.16b",
|
||||
"mov v17.s[0], w23",
|
||||
"mov v16.16b, v23.16b",
|
||||
"ext v16.16b, v24.16b, v23.16b, #4",
|
||||
"ext v16.16b, v24.16b, v16.16b, #4",
|
||||
"add v22.4s, v22.4s, v16.4s",
|
||||
"ldr q16, [x29, x20, sxtx]",
|
||||
"mov w21, v23.s[2]",
|
||||
@@ -809,7 +809,7 @@
|
||||
"mov v17.16b, v5.16b",
|
||||
"mov v17.s[0], w23",
|
||||
"mov v16.16b, v22.16b",
|
||||
"ext v16.16b, v23.16b, v22.16b, #4",
|
||||
"ext v16.16b, v23.16b, v16.16b, #4",
|
||||
"add v21.4s, v21.4s, v16.4s",
|
||||
"ldr q16, [x29, x20, sxtx]",
|
||||
"mov w21, v22.s[2]",
|
||||
@@ -964,7 +964,7 @@
|
||||
"mov v17.16b, v5.16b",
|
||||
"mov v17.s[0], w23",
|
||||
"mov v16.16b, v21.16b",
|
||||
"ext v16.16b, v22.16b, v21.16b, #4",
|
||||
"ext v16.16b, v22.16b, v16.16b, #4",
|
||||
"add v24.4s, v24.4s, v16.4s",
|
||||
"ldr q16, [x29, x20, sxtx]",
|
||||
"mov w21, v21.s[2]",
|
||||
@@ -1119,7 +1119,7 @@
|
||||
"mov v17.16b, v5.16b",
|
||||
"mov v17.s[0], w23",
|
||||
"mov v16.16b, v24.16b",
|
||||
"ext v16.16b, v21.16b, v24.16b, #4",
|
||||
"ext v16.16b, v21.16b, v16.16b, #4",
|
||||
"add v23.4s, v23.4s, v16.4s",
|
||||
"ldr q16, [x29, x20, sxtx]",
|
||||
"mov w21, v24.s[2]",
|
||||
@@ -1274,7 +1274,7 @@
|
||||
"mov v17.16b, v5.16b",
|
||||
"mov v17.s[0], w23",
|
||||
"mov v16.16b, v23.16b",
|
||||
"ext v16.16b, v24.16b, v23.16b, #4",
|
||||
"ext v16.16b, v24.16b, v16.16b, #4",
|
||||
"add v22.4s, v22.4s, v16.4s",
|
||||
"ldr q16, [x29, x20, sxtx]",
|
||||
"mov w21, v23.s[2]",
|
||||
@@ -1429,7 +1429,7 @@
|
||||
"mov v17.16b, v5.16b",
|
||||
"mov v17.s[0], w23",
|
||||
"mov v16.16b, v22.16b",
|
||||
"ext v16.16b, v23.16b, v22.16b, #4",
|
||||
"ext v16.16b, v23.16b, v16.16b, #4",
|
||||
"add v21.4s, v21.4s, v16.4s",
|
||||
"ldr q16, [x29, x20, sxtx]",
|
||||
"mov w21, v22.s[2]",
|
||||
@@ -1584,7 +1584,7 @@
|
||||
"mov v17.16b, v5.16b",
|
||||
"mov v17.s[0], w23",
|
||||
"mov v16.16b, v21.16b",
|
||||
"ext v16.16b, v22.16b, v21.16b, #4",
|
||||
"ext v16.16b, v22.16b, v16.16b, #4",
|
||||
"add v24.4s, v24.4s, v16.4s",
|
||||
"ldr q16, [x29, x20, sxtx]",
|
||||
"mov w21, v21.s[2]",
|
||||
@@ -1739,7 +1739,7 @@
|
||||
"mov v17.16b, v5.16b",
|
||||
"mov v17.s[0], w23",
|
||||
"mov v16.16b, v24.16b",
|
||||
"ext v16.16b, v21.16b, v24.16b, #4",
|
||||
"ext v16.16b, v21.16b, v16.16b, #4",
|
||||
"add v23.4s, v23.4s, v16.4s",
|
||||
"ldr q16, [x29, x20, sxtx]",
|
||||
"mov w21, v24.s[2]",
|
||||
@@ -1894,7 +1894,7 @@
|
||||
"mov v17.16b, v5.16b",
|
||||
"mov v17.s[0], w23",
|
||||
"mov v16.16b, v23.16b",
|
||||
"ext v16.16b, v24.16b, v23.16b, #4",
|
||||
"ext v16.16b, v24.16b, v16.16b, #4",
|
||||
"add v22.4s, v22.4s, v16.4s",
|
||||
"ldr q16, [x29, x20, sxtx]",
|
||||
"mov w21, v23.s[2]",
|
||||
@@ -2049,7 +2049,7 @@
|
||||
"mov v17.16b, v5.16b",
|
||||
"mov v17.s[0], w23",
|
||||
"mov v16.16b, v22.16b",
|
||||
"ext v16.16b, v23.16b, v22.16b, #4",
|
||||
"ext v16.16b, v23.16b, v16.16b, #4",
|
||||
"ldr q5, [x29, x20, sxtx]",
|
||||
"add v23.4s, v23.4s, v5.4s",
|
||||
"add v21.4s, v21.4s, v16.4s",
|
||||
@@ -2219,7 +2219,7 @@
|
||||
"eor w23, w23, w20, ror #11",
|
||||
"eor w23, w23, w20, ror #25",
|
||||
"add w22, w22, w23",
|
||||
"mov w23, v23.s[0]",
|
||||
"mov w23, v16.s[0]",
|
||||
"add w22, w22, w23",
|
||||
"mov w23, v20.s[0]",
|
||||
"add w22, w22, w23",
|
||||
@@ -2244,7 +2244,7 @@
|
||||
"eor w21, w21, w22, ror #11",
|
||||
"eor w21, w21, w22, ror #25",
|
||||
"add w20, w20, w21",
|
||||
"mov w21, v23.s[1]",
|
||||
"mov w21, v16.s[1]",
|
||||
"add w20, w20, w21",
|
||||
"mov w21, v20.s[1]",
|
||||
"add w20, w20, w21",
|
||||
@@ -2333,7 +2333,7 @@
|
||||
"eor w23, w23, w20, ror #11",
|
||||
"eor w23, w23, w20, ror #25",
|
||||
"add w22, w22, w23",
|
||||
"mov w23, v22.s[0]",
|
||||
"mov w23, v16.s[0]",
|
||||
"add w22, w22, w23",
|
||||
"mov w23, v20.s[0]",
|
||||
"add w22, w22, w23",
|
||||
@@ -2358,7 +2358,7 @@
|
||||
"eor w21, w21, w22, ror #11",
|
||||
"eor w21, w21, w22, ror #25",
|
||||
"add w20, w20, w21",
|
||||
"mov w21, v22.s[1]",
|
||||
"mov w21, v16.s[1]",
|
||||
"add w20, w20, w21",
|
||||
"mov w21, v20.s[1]",
|
||||
"add w20, w20, w21",
|
||||
@@ -2447,7 +2447,7 @@
|
||||
"eor w23, w23, w20, ror #11",
|
||||
"eor w23, w23, w20, ror #25",
|
||||
"add w22, w22, w23",
|
||||
"mov w23, v21.s[0]",
|
||||
"mov w23, v16.s[0]",
|
||||
"add w22, w22, w23",
|
||||
"mov w23, v20.s[0]",
|
||||
"add w22, w22, w23",
|
||||
@@ -2472,7 +2472,7 @@
|
||||
"eor w21, w21, w22, ror #11",
|
||||
"eor w21, w21, w22, ror #25",
|
||||
"add w20, w20, w21",
|
||||
"mov w21, v21.s[1]",
|
||||
"mov w21, v16.s[1]",
|
||||
"add w20, w20, w21",
|
||||
"mov w21, v20.s[1]",
|
||||
"add w20, w20, w21",
|
||||
@@ -2555,7 +2555,6 @@
|
||||
"tbl v20.16b, {v20.16b}, v2.16b",
|
||||
"tbl v17.16b, {v17.16b}, v3.16b",
|
||||
"mov v16.16b, v17.16b",
|
||||
"mov v16.16b, v17.16b",
|
||||
"mov v16.d[1], v20.d[1]",
|
||||
"ext v20.16b, v17.16b, v20.16b, #8",
|
||||
"str q16, [x11, #256]",
|
||||
|
||||
@@ -95,9 +95,9 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"adds x4, x4, x7",
|
||||
"cset w20, hs",
|
||||
"mov x27, x4",
|
||||
"adds x26, x4, #0x1 (1)",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -124,9 +124,9 @@
|
||||
"subs x4, x4, x7",
|
||||
"cfinv",
|
||||
"cset w20, hs",
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -263,15 +263,16 @@
|
||||
]
|
||||
},
|
||||
"AND use only PF": {
|
||||
"ExpectedInstructionCount": 8,
|
||||
"ExpectedInstructionCount": 9,
|
||||
"x86Insts": [
|
||||
"and eax, ebx",
|
||||
"setp cl",
|
||||
"test cl, cl"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"and w4, w4, w7",
|
||||
"eor w20, w4, w4, lsr #4",
|
||||
"and w26, w4, w7",
|
||||
"mov x4, x26",
|
||||
"eor w20, w26, w26, lsr #4",
|
||||
"eor w20, w20, w20, lsr #2",
|
||||
"eon w20, w20, w20, lsr #1",
|
||||
"and x20, x20, #0x1",
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
"mov w4, #0x1",
|
||||
"ldaddal x4, x4, [x5]",
|
||||
"mov x6, x4",
|
||||
"and w6, w4, #0x1f",
|
||||
"and w6, w6, #0x1f",
|
||||
"add x6, x6, #0x1 (1)",
|
||||
"lsl x6, x6, #6",
|
||||
"eor w27, w6, w5",
|
||||
@@ -81,11 +81,11 @@
|
||||
"mov w10, w5",
|
||||
"mov x6, x9",
|
||||
"mov x4, x7",
|
||||
"ldr s18, [x9]",
|
||||
"add x4, x7, #0x20 (32)",
|
||||
"ldr s18, [x6]",
|
||||
"add x4, x4, #0x20 (32)",
|
||||
"fmul s0, s18, s16",
|
||||
"mov v18.s[0], v0.s[0]",
|
||||
"add x6, x9, #0x20 (32)",
|
||||
"add x6, x6, #0x20 (32)",
|
||||
"ldur s2, [x4, #-32]",
|
||||
"fadd s0, s18, s2",
|
||||
"mov v18.s[0], v0.s[0]",
|
||||
@@ -139,9 +139,9 @@
|
||||
"fadd s0, s18, s2",
|
||||
"mov v18.s[0], v0.s[0]",
|
||||
"stur s18, [x4, #-4]",
|
||||
"mov x27, x10",
|
||||
"subs w26, w10, #0x1 (1)",
|
||||
"cfinv",
|
||||
"mov x27, x10",
|
||||
"mov x10, x26"
|
||||
]
|
||||
},
|
||||
@@ -168,7 +168,7 @@
|
||||
]
|
||||
},
|
||||
"bytemark data xor loop": {
|
||||
"ExpectedInstructionCount": 15,
|
||||
"ExpectedInstructionCount": 13,
|
||||
"Comment": [
|
||||
"Saw this in bytemark"
|
||||
],
|
||||
@@ -187,17 +187,15 @@
|
||||
"mov x6, x4",
|
||||
"mov x5, x4",
|
||||
"mov x19, x10",
|
||||
"add x20, x4, #0x1 (1)",
|
||||
"mov x21, x4",
|
||||
"mov x4, x20",
|
||||
"lsr x6, x21, #6",
|
||||
"and w5, w21, #0x3f",
|
||||
"lsl x19, x10, x5",
|
||||
"ldr x21, [x7, x6, sxtx #3]",
|
||||
"eor x21, x21, x19",
|
||||
"str x21, [x7, x6, sxtx #3]",
|
||||
"eor w27, w11, w20",
|
||||
"subs x26, x11, x20",
|
||||
"add x4, x4, #0x1 (1)",
|
||||
"lsr x6, x6, #6",
|
||||
"and w5, w5, #0x3f",
|
||||
"lsl x19, x19, x5",
|
||||
"ldr x20, [x7, x6, sxtx #3]",
|
||||
"eor x20, x20, x19",
|
||||
"str x20, [x7, x6, sxtx #3]",
|
||||
"eor w27, w11, w4",
|
||||
"subs x26, x11, x4",
|
||||
"cfinv"
|
||||
]
|
||||
},
|
||||
@@ -215,7 +213,7 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"ldr x17, [x10, x13, sxtx #3]",
|
||||
"mov x15, x13",
|
||||
"orr x15, x13, #0x1",
|
||||
"orr x15, x15, #0x1",
|
||||
"ldr x20, [x10, x15, sxtx #3]",
|
||||
"eor w27, w17, w20",
|
||||
"subs x26, x17, x20",
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -58,10 +58,10 @@
|
||||
"mov w10, w5",
|
||||
"mov x6, x9",
|
||||
"mov x4, x7",
|
||||
"ldr s18, [x9]",
|
||||
"add x4, x7, #0x20 (32)",
|
||||
"ldr s18, [x6]",
|
||||
"add x4, x4, #0x20 (32)",
|
||||
"fmul s18, s18, s16",
|
||||
"add x6, x9, #0x20 (32)",
|
||||
"add x6, x6, #0x20 (32)",
|
||||
"ldur s2, [x4, #-32]",
|
||||
"fadd s18, s18, s2",
|
||||
"stur s18, [x4, #-32]",
|
||||
@@ -100,9 +100,9 @@
|
||||
"ldur s2, [x4, #-4]",
|
||||
"fadd s18, s18, s2",
|
||||
"stur s18, [x4, #-4]",
|
||||
"mov x27, x10",
|
||||
"subs w26, w10, #0x1 (1)",
|
||||
"cfinv",
|
||||
"mov x27, x10",
|
||||
"mov x10, x26"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -105,35 +105,39 @@
|
||||
]
|
||||
},
|
||||
"add al, 1": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"ExpectedInstructionCount": 8,
|
||||
"Comment": "0x04",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #24",
|
||||
"cmn w0, w20, lsl #24",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #8",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"add ax, 1": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"ExpectedInstructionCount": 8,
|
||||
"Comment": "0x05",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #16",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"add eax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x05",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -141,8 +145,8 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x05",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x4, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -221,18 +225,18 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x09",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr w7, w7, w5",
|
||||
"mov x26, x7",
|
||||
"tst w7, w7"
|
||||
"orr w26, w7, w5",
|
||||
"tst w26, w26",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
"or rbx, rcx": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x09",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr x7, x7, x5",
|
||||
"mov x26, x7",
|
||||
"tst x7, x7"
|
||||
"orr x26, x7, x5",
|
||||
"tst x26, x26",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
"db 0x0A, 0xcb": {
|
||||
@@ -266,9 +270,9 @@
|
||||
"or ebx, ecx but modrm.rm as source"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"orr w5, w5, w7",
|
||||
"mov x26, x5",
|
||||
"tst w5, w5"
|
||||
"orr w26, w5, w7",
|
||||
"tst w26, w26",
|
||||
"mov x5, x26"
|
||||
]
|
||||
},
|
||||
"db 0x48, 0x0B, 0xcb": {
|
||||
@@ -278,9 +282,9 @@
|
||||
"or rbx, rcx but modrm.rm as source"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"orr x5, x5, x7",
|
||||
"mov x26, x5",
|
||||
"tst x5, x5"
|
||||
"orr x26, x5, x7",
|
||||
"tst x26, x26",
|
||||
"mov x5, x26"
|
||||
]
|
||||
},
|
||||
"or al, 1": {
|
||||
@@ -305,18 +309,18 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x0D",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr w4, w4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"orr w26, w4, #0x1",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"or rax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x0D",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr x4, x4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"orr x26, x4, #0x1",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"or al, -1": {
|
||||
@@ -342,9 +346,9 @@
|
||||
"Comment": "0x0D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffffff",
|
||||
"orr w4, w4, w20",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"orr w26, w4, w20",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"or rax, -1": {
|
||||
@@ -352,9 +356,9 @@
|
||||
"Comment": "0x0D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"orr x4, x4, x20",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"orr x26, x4, x20",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"adc bl, cl": {
|
||||
@@ -486,10 +490,9 @@
|
||||
]
|
||||
},
|
||||
"adc al, 1": {
|
||||
"ExpectedInstructionCount": 14,
|
||||
"ExpectedInstructionCount": 16,
|
||||
"Comment": "0x14",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"mov w20, #0x1",
|
||||
"adc w20, wzr, w20",
|
||||
"add w21, w4, w20",
|
||||
@@ -502,14 +505,16 @@
|
||||
"eor w21, w26, w4",
|
||||
"bic w20, w21, w20",
|
||||
"rmif x20, #7, #nzcV",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #8",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"adc ax, 1": {
|
||||
"ExpectedInstructionCount": 14,
|
||||
"ExpectedInstructionCount": 16,
|
||||
"Comment": "0x15",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"mov w20, #0x1",
|
||||
"adc w20, wzr, w20",
|
||||
"add w21, w4, w20",
|
||||
@@ -522,7 +527,10 @@
|
||||
"eor w21, w26, w4",
|
||||
"bic w20, w21, w20",
|
||||
"rmif x20, #15, #nzcV",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #16",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"adc eax, 1": {
|
||||
@@ -530,8 +538,8 @@
|
||||
"Comment": "0x15",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -540,8 +548,8 @@
|
||||
"Comment": "0x15",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -746,10 +754,9 @@
|
||||
]
|
||||
},
|
||||
"sbb al, 1": {
|
||||
"ExpectedInstructionCount": 13,
|
||||
"ExpectedInstructionCount": 15,
|
||||
"Comment": "0x1C",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"uxtb w20, w4",
|
||||
"cset w21, hs",
|
||||
"sub w21, w20, w21",
|
||||
@@ -761,14 +768,16 @@
|
||||
"rmif x21, #63, #nzCv",
|
||||
"bic w20, w20, w26",
|
||||
"rmif x20, #7, #nzcV",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #8",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"sbb ax, 1": {
|
||||
"ExpectedInstructionCount": 13,
|
||||
"ExpectedInstructionCount": 15,
|
||||
"Comment": "0x1D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"uxth w20, w4",
|
||||
"cset w21, hs",
|
||||
"sub w21, w20, w21",
|
||||
@@ -780,7 +789,10 @@
|
||||
"rmif x21, #63, #nzCv",
|
||||
"bic w20, w20, w26",
|
||||
"rmif x20, #15, #nzcV",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #16",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"sbb eax, 1": {
|
||||
@@ -788,10 +800,10 @@
|
||||
"Comment": "0x1D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs w26, w4, w20",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -800,10 +812,10 @@
|
||||
"Comment": "0x1D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs x26, x4, x20",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -1121,38 +1133,42 @@
|
||||
]
|
||||
},
|
||||
"sub al, 1": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "0x2C",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"cfinv",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #8",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"sub ax, 1": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "0x2D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #16",
|
||||
"cmp w0, w20, lsl #16",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"cfinv",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #16",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"sub eax, 1": {
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "0x2D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -1160,9 +1176,9 @@
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "0x2D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -1235,18 +1251,18 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x31",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor w7, w7, w5",
|
||||
"mov x26, x7",
|
||||
"tst w7, w7"
|
||||
"eor w26, w7, w5",
|
||||
"tst w26, w26",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
"xor rbx, rcx": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x31",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor x7, x7, x5",
|
||||
"mov x26, x7",
|
||||
"tst x7, x7"
|
||||
"eor x26, x7, x5",
|
||||
"tst x26, x26",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
"db 0x32, 0xcb": {
|
||||
@@ -1280,9 +1296,9 @@
|
||||
"xor ebx, ecx but modrm.rm as source"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"eor w5, w5, w7",
|
||||
"mov x26, x5",
|
||||
"tst w5, w5"
|
||||
"eor w26, w5, w7",
|
||||
"tst w26, w26",
|
||||
"mov x5, x26"
|
||||
]
|
||||
},
|
||||
"db 0x48, 0x33, 0xcb": {
|
||||
@@ -1292,9 +1308,9 @@
|
||||
"xor rbx, rcx but modrm.rm as source"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"eor x5, x5, x7",
|
||||
"mov x26, x5",
|
||||
"tst x5, x5"
|
||||
"eor x26, x5, x7",
|
||||
"tst x26, x26",
|
||||
"mov x5, x26"
|
||||
]
|
||||
},
|
||||
"xor al, 1": {
|
||||
@@ -1319,18 +1335,18 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x35",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor w4, w4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"eor w26, w4, #0x1",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor rax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x35",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor x4, x4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"eor x26, x4, #0x1",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"cmp bl, cl": {
|
||||
@@ -1367,9 +1383,9 @@
|
||||
"Comment": "0x35",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffffff",
|
||||
"eor w4, w4, w20",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"eor w26, w4, w20",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor rax, -1": {
|
||||
@@ -1377,9 +1393,9 @@
|
||||
"Comment": "0x35",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"eor x4, x4, x20",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"eor x26, x4, x20",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"cmp bx, cx": {
|
||||
@@ -1468,11 +1484,11 @@
|
||||
"Comment": "0x3C",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"cfinv"
|
||||
"cfinv",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"cmp ax, 1": {
|
||||
@@ -1480,29 +1496,29 @@
|
||||
"Comment": "0x3D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #16",
|
||||
"cmp w0, w20, lsl #16",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"cfinv"
|
||||
"cfinv",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"cmp eax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x3D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"cfinv"
|
||||
"cfinv",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"cmp rax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x3D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"cfinv"
|
||||
"cfinv",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"cmp al, -1": {
|
||||
@@ -1766,24 +1782,24 @@
|
||||
"strb w20, [x28, #985]",
|
||||
"ubfx w20, w27, #10, #1",
|
||||
"sub x20, x21, x20, lsl #1",
|
||||
"strb w20, [x28, #986]",
|
||||
"rmif x27, #11, #nzcV",
|
||||
"ubfx w20, w27, #12, #1",
|
||||
"strb w20, [x28, #988]",
|
||||
"ubfx w20, w27, #14, #1",
|
||||
"strb w20, [x28, #990]",
|
||||
"ubfx w20, w27, #16, #1",
|
||||
"strb w20, [x28, #992]",
|
||||
"ubfx w20, w27, #17, #1",
|
||||
"strb w20, [x28, #993]",
|
||||
"ubfx w20, w27, #18, #1",
|
||||
"strb w20, [x28, #994]",
|
||||
"ubfx w20, w27, #19, #1",
|
||||
"strb w20, [x28, #995]",
|
||||
"ubfx w20, w27, #20, #1",
|
||||
"strb w20, [x28, #996]",
|
||||
"ubfx w20, w27, #21, #1",
|
||||
"strb w20, [x28, #997]"
|
||||
"ubfx w21, w27, #12, #1",
|
||||
"strb w21, [x28, #988]",
|
||||
"ubfx w21, w27, #14, #1",
|
||||
"strb w21, [x28, #990]",
|
||||
"ubfx w21, w27, #16, #1",
|
||||
"strb w21, [x28, #992]",
|
||||
"ubfx w21, w27, #17, #1",
|
||||
"strb w21, [x28, #993]",
|
||||
"ubfx w21, w27, #18, #1",
|
||||
"strb w21, [x28, #994]",
|
||||
"ubfx w21, w27, #19, #1",
|
||||
"strb w21, [x28, #995]",
|
||||
"ubfx w21, w27, #20, #1",
|
||||
"strb w21, [x28, #996]",
|
||||
"ubfx w21, w27, #21, #1",
|
||||
"strb w21, [x28, #997]",
|
||||
"strb w20, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"sahf": {
|
||||
@@ -1893,10 +1909,10 @@
|
||||
]
|
||||
},
|
||||
"repz cmpsb": {
|
||||
"ExpectedInstructionCount": 27,
|
||||
"ExpectedInstructionCount": 26,
|
||||
"Comment": "0xa6",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x6c",
|
||||
"cbz x5, #+0x68",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -1917,19 +1933,18 @@
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #24",
|
||||
"lsl w0, w27, #24",
|
||||
"cmp w0, w26, lsl #24",
|
||||
"sub w26, w21, w26",
|
||||
"cfinv"
|
||||
"sub w26, w27, w26",
|
||||
"cfinv",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"repz cmpsw": {
|
||||
"ExpectedInstructionCount": 27,
|
||||
"ExpectedInstructionCount": 26,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x6c",
|
||||
"cbz x5, #+0x68",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -1950,19 +1965,18 @@
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #16",
|
||||
"lsl w0, w27, #16",
|
||||
"cmp w0, w26, lsl #16",
|
||||
"sub w26, w21, w26",
|
||||
"cfinv"
|
||||
"sub w26, w27, w26",
|
||||
"cfinv",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"repz cmpsd": {
|
||||
"ExpectedInstructionCount": 25,
|
||||
"ExpectedInstructionCount": 24,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x64",
|
||||
"cbz x5, #+0x60",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -1983,17 +1997,16 @@
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs w26, w21, w26",
|
||||
"cfinv"
|
||||
"subs w26, w27, w26",
|
||||
"cfinv",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"repz cmpsq": {
|
||||
"ExpectedInstructionCount": 25,
|
||||
"ExpectedInstructionCount": 24,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x64",
|
||||
"cbz x5, #+0x60",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -2014,17 +2027,16 @@
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs x26, x21, x26",
|
||||
"cfinv"
|
||||
"subs x26, x27, x26",
|
||||
"cfinv",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"repnz cmpsb": {
|
||||
"ExpectedInstructionCount": 27,
|
||||
"ExpectedInstructionCount": 26,
|
||||
"Comment": "0xa6",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x6c",
|
||||
"cbz x5, #+0x68",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -2045,19 +2057,18 @@
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #24",
|
||||
"lsl w0, w27, #24",
|
||||
"cmp w0, w26, lsl #24",
|
||||
"sub w26, w21, w26",
|
||||
"cfinv"
|
||||
"sub w26, w27, w26",
|
||||
"cfinv",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"repnz cmpsw": {
|
||||
"ExpectedInstructionCount": 27,
|
||||
"ExpectedInstructionCount": 26,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x6c",
|
||||
"cbz x5, #+0x68",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -2078,19 +2089,18 @@
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #16",
|
||||
"lsl w0, w27, #16",
|
||||
"cmp w0, w26, lsl #16",
|
||||
"sub w26, w21, w26",
|
||||
"cfinv"
|
||||
"sub w26, w27, w26",
|
||||
"cfinv",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"repnz cmpsd": {
|
||||
"ExpectedInstructionCount": 25,
|
||||
"ExpectedInstructionCount": 24,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x64",
|
||||
"cbz x5, #+0x60",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -2111,17 +2121,16 @@
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs w26, w21, w26",
|
||||
"cfinv"
|
||||
"subs w26, w27, w26",
|
||||
"cfinv",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"repnz cmpsq": {
|
||||
"ExpectedInstructionCount": 25,
|
||||
"ExpectedInstructionCount": 24,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x64",
|
||||
"cbz x5, #+0x60",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -2142,10 +2151,9 @@
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs x26, x21, x26",
|
||||
"cfinv"
|
||||
"subs x26, x27, x26",
|
||||
"cfinv",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"test al, 1": {
|
||||
|
||||
@@ -13,15 +13,17 @@
|
||||
},
|
||||
"Instructions": {
|
||||
"add al, 1": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"ExpectedInstructionCount": 8,
|
||||
"Comment": "GROUP1 0x80 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #24",
|
||||
"cmn w0, w20, lsl #24",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #8",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"or al, 1": {
|
||||
@@ -34,10 +36,9 @@
|
||||
]
|
||||
},
|
||||
"adc al, 1": {
|
||||
"ExpectedInstructionCount": 14,
|
||||
"ExpectedInstructionCount": 16,
|
||||
"Comment": "GROUP1 0x80 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"mov w20, #0x1",
|
||||
"adc w20, wzr, w20",
|
||||
"add w21, w4, w20",
|
||||
@@ -50,14 +51,16 @@
|
||||
"eor w21, w26, w4",
|
||||
"bic w20, w21, w20",
|
||||
"rmif x20, #7, #nzcV",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #8",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"sbb al, 1": {
|
||||
"ExpectedInstructionCount": 13,
|
||||
"ExpectedInstructionCount": 15,
|
||||
"Comment": "GROUP1 0x80 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"uxtb w20, w4",
|
||||
"cset w21, hs",
|
||||
"sub w21, w20, w21",
|
||||
@@ -69,7 +72,10 @@
|
||||
"rmif x21, #63, #nzCv",
|
||||
"bic w20, w20, w26",
|
||||
"rmif x20, #7, #nzcV",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #8",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"and al, 1": {
|
||||
@@ -82,16 +88,18 @@
|
||||
]
|
||||
},
|
||||
"sub al, 1": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "GROUP1 0x80 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"cfinv",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #8",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"xor al, 1": {
|
||||
@@ -108,11 +116,11 @@
|
||||
"Comment": "GROUP1 0x80 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"cfinv"
|
||||
"cfinv",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"add al, -1": {
|
||||
@@ -219,23 +227,25 @@
|
||||
]
|
||||
},
|
||||
"add ax, 256": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"ExpectedInstructionCount": 8,
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w4, #0x100 (256)",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #16",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"add eax, 256": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, #0x100 (256)",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -243,8 +253,8 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x4, #0x100 (256)",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -252,18 +262,18 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr w4, w4, #0x100",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"orr w26, w4, #0x100",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"or rax, 256": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr x4, x4, #0x100",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"orr x26, x4, #0x100",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"adc eax, 256": {
|
||||
@@ -271,8 +281,8 @@
|
||||
"Comment": "GROUP1 0x81 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -281,8 +291,8 @@
|
||||
"Comment": "GROUP1 0x81 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -291,10 +301,10 @@
|
||||
"Comment": "GROUP1 0x81 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs w26, w4, w20",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -303,10 +313,10 @@
|
||||
"Comment": "GROUP1 0x81 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs x26, x4, x20",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -330,9 +340,9 @@
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "GROUP1 0x81 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x100 (256)",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -340,9 +350,9 @@
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "GROUP1 0x81 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x100 (256)",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -350,48 +360,50 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor w4, w4, #0x100",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"eor w26, w4, #0x100",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor rax, 256": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor x4, x4, #0x100",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"eor x26, x4, #0x100",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"cmp eax, 256": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x100 (256)",
|
||||
"cfinv"
|
||||
"cfinv",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"cmp rax, 256": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x100 (256)",
|
||||
"cfinv"
|
||||
"cfinv",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"add ax, -256": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"ExpectedInstructionCount": 8,
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xff00",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w4, w20",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #16",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"add eax, -256": {
|
||||
@@ -399,8 +411,8 @@
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, w20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -408,8 +420,8 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x100 (256)",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -417,18 +429,18 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr w4, w4, #0xffffff00",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"orr w26, w4, #0xffffff00",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"or rax, -256": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr x4, x4, #0xffffffffffffff00",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"orr x26, x4, #0xffffffffffffff00",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"adc eax, -256": {
|
||||
@@ -436,8 +448,8 @@
|
||||
"Comment": "GROUP1 0x81 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -446,8 +458,8 @@
|
||||
"Comment": "GROUP1 0x81 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffff00",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -456,10 +468,10 @@
|
||||
"Comment": "GROUP1 0x81 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs w26, w4, w20",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -468,10 +480,10 @@
|
||||
"Comment": "GROUP1 0x81 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffff00",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs x26, x4, x20",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -496,9 +508,9 @@
|
||||
"Comment": "GROUP1 0x81 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, w20",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -506,9 +518,9 @@
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "GROUP1 0x81 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x4, #0x100 (256)",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -516,18 +528,18 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor w4, w4, #0xffffff00",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"eor w26, w4, #0xffffff00",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor rax, -256": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor x4, x4, #0xffffffffffffff00",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"eor x26, x4, #0xffffffffffffff00",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"cmp eax, -256": {
|
||||
@@ -535,38 +547,40 @@
|
||||
"Comment": "GROUP1 0x81 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, w20",
|
||||
"cfinv"
|
||||
"cfinv",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"cmp rax, -256": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x4, #0x100 (256)",
|
||||
"cfinv"
|
||||
"cfinv",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"add ax, 1": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"ExpectedInstructionCount": 8,
|
||||
"Comment": "GROUP1 0x83 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #16",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"add eax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x83 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -574,8 +588,8 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x83 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x4, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -583,18 +597,18 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x83 /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr w4, w4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"orr w26, w4, #0x1",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"or rax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x83 /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr x4, x4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"orr x26, x4, #0x1",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"adc eax, 1": {
|
||||
@@ -602,8 +616,8 @@
|
||||
"Comment": "GROUP1 0x83 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -612,8 +626,8 @@
|
||||
"Comment": "GROUP1 0x83 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -622,10 +636,10 @@
|
||||
"Comment": "GROUP1 0x83 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs w26, w4, w20",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -634,10 +648,10 @@
|
||||
"Comment": "GROUP1 0x83 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"cfinv",
|
||||
"sbcs x26, x4, x20",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -661,9 +675,9 @@
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "GROUP1 0x83 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -671,9 +685,9 @@
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "GROUP1 0x83 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"cfinv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -681,36 +695,36 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x83 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor w4, w4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"eor w26, w4, #0x1",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor rax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x83 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor x4, x4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"eor x26, x4, #0x1",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"cmp eax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x83 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"cfinv"
|
||||
"cfinv",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"cmp rax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x83 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"cfinv"
|
||||
"cfinv",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"add ax, -1": {
|
||||
@@ -749,9 +763,9 @@
|
||||
"Comment": "GROUP1 0x83 /-1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffffff",
|
||||
"orr w4, w4, w20",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"orr w26, w4, w20",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"or rax, -1": {
|
||||
@@ -759,9 +773,9 @@
|
||||
"Comment": "GROUP1 0x83 /-1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"orr x4, x4, x20",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"orr x26, x4, x20",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"adc eax, -1": {
|
||||
@@ -852,9 +866,9 @@
|
||||
"Comment": "GROUP1 0x83 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffffff",
|
||||
"eor w4, w4, w20",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"eor w26, w4, w20",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor rax, -1": {
|
||||
@@ -862,9 +876,9 @@
|
||||
"Comment": "GROUP1 0x83 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"eor x4, x4, x20",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"eor x26, x4, x20",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"cmp eax, -1": {
|
||||
@@ -2027,14 +2041,16 @@
|
||||
]
|
||||
},
|
||||
"neg bl": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"ExpectedInstructionCount": 7,
|
||||
"Comment": "GROUP2 0xf6 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"cmp wzr, w7, lsl #24",
|
||||
"neg w26, w7",
|
||||
"cfinv",
|
||||
"bfxil x7, x26, #0, #8"
|
||||
"mov x20, x7",
|
||||
"bfxil x20, x26, #0, #8",
|
||||
"mov x27, x7",
|
||||
"mov x7, x20"
|
||||
]
|
||||
},
|
||||
"mul bl": {
|
||||
@@ -2141,23 +2157,25 @@
|
||||
]
|
||||
},
|
||||
"neg bx": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"ExpectedInstructionCount": 7,
|
||||
"Comment": "GROUP2 0xf7 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"cmp wzr, w7, lsl #16",
|
||||
"neg w26, w7",
|
||||
"cfinv",
|
||||
"bfxil x7, x26, #0, #16"
|
||||
"mov x20, x7",
|
||||
"bfxil x20, x26, #0, #16",
|
||||
"mov x27, x7",
|
||||
"mov x7, x20"
|
||||
]
|
||||
},
|
||||
"neg ebx": {
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "GROUP2 0xf7 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"negs w26, w7",
|
||||
"cfinv",
|
||||
"mov x27, x7",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
@@ -2165,9 +2183,9 @@
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "GROUP2 0xf7 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"negs x26, x7",
|
||||
"cfinv",
|
||||
"mov x27, x7",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
@@ -2204,9 +2222,9 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mul x20, x7, x4",
|
||||
"umulh x6, x7, x4",
|
||||
"mov x4, x20",
|
||||
"cmp x6, #0x0 (0)",
|
||||
"ccmn xzr, #0, #nzCV, eq"
|
||||
"ccmn xzr, #0, #nzCV, eq",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"imul bx": {
|
||||
@@ -2310,9 +2328,9 @@
|
||||
"Comment": "GROUP4 0xfe /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"cset w20, hs",
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -2321,9 +2339,9 @@
|
||||
"Comment": "GROUP4 0xfe /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"cset w20, hs",
|
||||
"mov x27, x4",
|
||||
"adds x26, x4, #0x1 (1)",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -2344,9 +2362,9 @@
|
||||
"Comment": "GROUP4 0xfe /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"cset w20, hs",
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -2355,9 +2373,9 @@
|
||||
"Comment": "GROUP4 0xfe /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"cset w20, hs",
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -197,9 +197,9 @@
|
||||
"Comment": "0x40",
|
||||
"ExpectedArm64ASM": [
|
||||
"cset w20, hs",
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -234,9 +234,9 @@
|
||||
"Comment": "0x48",
|
||||
"ExpectedArm64ASM": [
|
||||
"cset w20, hs",
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"rmif x20, #63, #nzCv",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
|
||||
@@ -1059,13 +1059,15 @@
|
||||
]
|
||||
},
|
||||
"cmpxchg rcx, rbx": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedArm64ASM": [
|
||||
"eor w27, w4, w5",
|
||||
"subs x26, x4, x5",
|
||||
"cfinv",
|
||||
"mov x4, x5",
|
||||
"csel x5, x7, x5, eq"
|
||||
"csel x20, x7, x5, eq",
|
||||
"mov x21, x5",
|
||||
"mov x5, x20",
|
||||
"mov x4, x21"
|
||||
]
|
||||
},
|
||||
"cmpxchg [rax], rbx": {
|
||||
|
||||
@@ -1205,21 +1205,21 @@
|
||||
"strh w20, [x4, #2]",
|
||||
"ldrb w20, [x28, #1298]",
|
||||
"strb w20, [x4, #4]",
|
||||
"ldr q2, [x28, #1040]",
|
||||
"ldr d2, [x28, #1040]",
|
||||
"str q2, [x4, #32]",
|
||||
"ldr q2, [x28, #1056]",
|
||||
"ldr d2, [x28, #1056]",
|
||||
"str q2, [x4, #48]",
|
||||
"ldr q2, [x28, #1072]",
|
||||
"ldr d2, [x28, #1072]",
|
||||
"str q2, [x4, #64]",
|
||||
"ldr q2, [x28, #1088]",
|
||||
"ldr d2, [x28, #1088]",
|
||||
"str q2, [x4, #80]",
|
||||
"ldr q2, [x28, #1104]",
|
||||
"ldr d2, [x28, #1104]",
|
||||
"str q2, [x4, #96]",
|
||||
"ldr q2, [x28, #1120]",
|
||||
"ldr d2, [x28, #1120]",
|
||||
"str q2, [x4, #112]",
|
||||
"ldr q2, [x28, #1136]",
|
||||
"ldr d2, [x28, #1136]",
|
||||
"str q2, [x4, #128]",
|
||||
"ldr q2, [x28, #1152]",
|
||||
"ldr d2, [x28, #1152]",
|
||||
"str q2, [x4, #144]",
|
||||
"str q16, [x4, #160]",
|
||||
"str q17, [x4, #176]",
|
||||
@@ -1280,23 +1280,14 @@
|
||||
"strb w23, [x28, #1018]",
|
||||
"strb w20, [x28, #1022]",
|
||||
"ldrb w20, [x4, #4]",
|
||||
"strb w20, [x28, #1298]",
|
||||
"ldr q2, [x4, #32]",
|
||||
"str q2, [x28, #1040]",
|
||||
"ldr q2, [x4, #48]",
|
||||
"str q2, [x28, #1056]",
|
||||
"ldr q2, [x4, #64]",
|
||||
"str q2, [x28, #1072]",
|
||||
"ldr q2, [x4, #80]",
|
||||
"str q2, [x28, #1088]",
|
||||
"ldr q2, [x4, #96]",
|
||||
"str q2, [x28, #1104]",
|
||||
"ldr q2, [x4, #112]",
|
||||
"str q2, [x28, #1120]",
|
||||
"ldr q2, [x4, #128]",
|
||||
"str q2, [x28, #1136]",
|
||||
"ldr q2, [x4, #144]",
|
||||
"str q2, [x28, #1152]",
|
||||
"ldr q3, [x4, #48]",
|
||||
"ldr q4, [x4, #64]",
|
||||
"ldr q5, [x4, #80]",
|
||||
"ldr q6, [x4, #96]",
|
||||
"ldr q7, [x4, #112]",
|
||||
"ldr q8, [x4, #128]",
|
||||
"ldr q9, [x4, #144]",
|
||||
"ldr q16, [x4, #160]",
|
||||
"ldr q17, [x4, #176]",
|
||||
"ldr q18, [x4, #192]",
|
||||
@@ -1313,15 +1304,24 @@
|
||||
"ldr q29, [x4, #368]",
|
||||
"ldr q30, [x4, #384]",
|
||||
"ldr q31, [x4, #400]",
|
||||
"ldr w20, [x4, #24]",
|
||||
"ubfx w20, w20, #13, #3",
|
||||
"rbit w1, w20",
|
||||
"ldr w21, [x4, #24]",
|
||||
"ubfx w21, w21, #13, #3",
|
||||
"rbit w1, w21",
|
||||
"lsr w1, w1, #30",
|
||||
"mrs x0, fpcr",
|
||||
"bfi x0, x1, #22, #2",
|
||||
"lsr x1, x20, #2",
|
||||
"lsr x1, x21, #2",
|
||||
"bfi x0, x1, #24, #1",
|
||||
"msr fpcr, x0"
|
||||
"msr fpcr, x0",
|
||||
"strb w20, [x28, #1298]",
|
||||
"str d9, [x28, #1152]",
|
||||
"str d8, [x28, #1136]",
|
||||
"str d7, [x28, #1120]",
|
||||
"str d6, [x28, #1104]",
|
||||
"str d5, [x28, #1088]",
|
||||
"str d4, [x28, #1072]",
|
||||
"str d3, [x28, #1056]",
|
||||
"str d2, [x28, #1040]"
|
||||
]
|
||||
},
|
||||
"rdgsbase eax": {
|
||||
@@ -1419,21 +1419,21 @@
|
||||
"strh w20, [x4, #2]",
|
||||
"ldrb w20, [x28, #1298]",
|
||||
"strb w20, [x4, #4]",
|
||||
"ldr q2, [x28, #1040]",
|
||||
"ldr d2, [x28, #1040]",
|
||||
"str q2, [x4, #32]",
|
||||
"ldr q2, [x28, #1056]",
|
||||
"ldr d2, [x28, #1056]",
|
||||
"str q2, [x4, #48]",
|
||||
"ldr q2, [x28, #1072]",
|
||||
"ldr d2, [x28, #1072]",
|
||||
"str q2, [x4, #64]",
|
||||
"ldr q2, [x28, #1088]",
|
||||
"ldr d2, [x28, #1088]",
|
||||
"str q2, [x4, #80]",
|
||||
"ldr q2, [x28, #1104]",
|
||||
"ldr d2, [x28, #1104]",
|
||||
"str q2, [x4, #96]",
|
||||
"ldr q2, [x28, #1120]",
|
||||
"ldr d2, [x28, #1120]",
|
||||
"str q2, [x4, #112]",
|
||||
"ldr q2, [x28, #1136]",
|
||||
"ldr d2, [x28, #1136]",
|
||||
"str q2, [x4, #128]",
|
||||
"ldr q2, [x28, #1152]",
|
||||
"ldr d2, [x28, #1152]",
|
||||
"str q2, [x4, #144]",
|
||||
"ubfx x20, x4, #1, #1",
|
||||
"cbnz x20, #+0x8",
|
||||
@@ -1499,23 +1499,23 @@
|
||||
"strb w23, [x28, #1018]",
|
||||
"strb w20, [x28, #1022]",
|
||||
"ldrb w20, [x4, #4]",
|
||||
"strb w20, [x28, #1298]",
|
||||
"ldr q2, [x4, #32]",
|
||||
"str q2, [x28, #1040]",
|
||||
"ldr q2, [x4, #48]",
|
||||
"str q2, [x28, #1056]",
|
||||
"ldr q2, [x4, #64]",
|
||||
"str q2, [x28, #1072]",
|
||||
"ldr q2, [x4, #80]",
|
||||
"str q2, [x28, #1088]",
|
||||
"ldr q2, [x4, #96]",
|
||||
"str q2, [x28, #1104]",
|
||||
"ldr q2, [x4, #112]",
|
||||
"str q2, [x28, #1120]",
|
||||
"ldr q2, [x4, #128]",
|
||||
"str q2, [x28, #1136]",
|
||||
"ldr q2, [x4, #144]",
|
||||
"str q2, [x28, #1152]",
|
||||
"ldr q3, [x4, #48]",
|
||||
"ldr q4, [x4, #64]",
|
||||
"ldr q5, [x4, #80]",
|
||||
"ldr q6, [x4, #96]",
|
||||
"ldr q7, [x4, #112]",
|
||||
"ldr q8, [x4, #128]",
|
||||
"ldr q9, [x4, #144]",
|
||||
"strb w20, [x28, #1298]",
|
||||
"str d9, [x28, #1152]",
|
||||
"str d8, [x28, #1136]",
|
||||
"str d7, [x28, #1120]",
|
||||
"str d6, [x28, #1104]",
|
||||
"str d5, [x28, #1088]",
|
||||
"str d4, [x28, #1072]",
|
||||
"str d3, [x28, #1056]",
|
||||
"str d2, [x28, #1040]",
|
||||
"b #+0x4c",
|
||||
"mov w20, #0x0",
|
||||
"mov w21, #0x37f",
|
||||
@@ -1525,16 +1525,16 @@
|
||||
"strb w20, [x28, #1017]",
|
||||
"strb w20, [x28, #1018]",
|
||||
"strb w20, [x28, #1022]",
|
||||
"strb w20, [x28, #1298]",
|
||||
"movi v2.2d, #0x0",
|
||||
"str q2, [x28, #1040]",
|
||||
"str q2, [x28, #1056]",
|
||||
"str q2, [x28, #1072]",
|
||||
"str q2, [x28, #1088]",
|
||||
"str q2, [x28, #1104]",
|
||||
"str q2, [x28, #1120]",
|
||||
"str q2, [x28, #1136]",
|
||||
"str q2, [x28, #1152]",
|
||||
"strb w20, [x28, #1298]",
|
||||
"str d2, [x28, #1152]",
|
||||
"str d2, [x28, #1136]",
|
||||
"str d2, [x28, #1120]",
|
||||
"str d2, [x28, #1104]",
|
||||
"str d2, [x28, #1088]",
|
||||
"str d2, [x28, #1072]",
|
||||
"str d2, [x28, #1056]",
|
||||
"str d2, [x28, #1040]",
|
||||
"ldr x20, [x4, #512]",
|
||||
"ubfx x20, x20, #1, #1",
|
||||
"cbnz x20, #+0x8",
|
||||
@@ -1556,22 +1556,22 @@
|
||||
"ldr q30, [x4, #384]",
|
||||
"ldr q31, [x4, #400]",
|
||||
"b #+0x44",
|
||||
"movi v16.2d, #0x0",
|
||||
"mov v17.16b, v16.16b",
|
||||
"mov v18.16b, v16.16b",
|
||||
"mov v19.16b, v16.16b",
|
||||
"mov v20.16b, v16.16b",
|
||||
"mov v21.16b, v16.16b",
|
||||
"mov v22.16b, v16.16b",
|
||||
"mov v23.16b, v16.16b",
|
||||
"mov v24.16b, v16.16b",
|
||||
"mov v25.16b, v16.16b",
|
||||
"mov v26.16b, v16.16b",
|
||||
"mov v27.16b, v16.16b",
|
||||
"mov v28.16b, v16.16b",
|
||||
"mov v29.16b, v16.16b",
|
||||
"mov v30.16b, v16.16b",
|
||||
"mov v31.16b, v16.16b",
|
||||
"movi v31.2d, #0x0",
|
||||
"mov v30.16b, v31.16b",
|
||||
"mov v29.16b, v31.16b",
|
||||
"mov v28.16b, v31.16b",
|
||||
"mov v27.16b, v31.16b",
|
||||
"mov v26.16b, v31.16b",
|
||||
"mov v25.16b, v31.16b",
|
||||
"mov v24.16b, v31.16b",
|
||||
"mov v23.16b, v31.16b",
|
||||
"mov v22.16b, v31.16b",
|
||||
"mov v21.16b, v31.16b",
|
||||
"mov v20.16b, v31.16b",
|
||||
"mov v19.16b, v31.16b",
|
||||
"mov v18.16b, v31.16b",
|
||||
"mov v17.16b, v31.16b",
|
||||
"mov v16.16b, v31.16b",
|
||||
"ldr x20, [x4, #512]",
|
||||
"ubfx x20, x20, #1, #2",
|
||||
"cbnz x20, #+0x8",
|
||||
|
||||
@@ -349,9 +349,9 @@
|
||||
"Map 2 0b00 0xf2 32-bit"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"bic w4, w5, w7",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"bic w26, w5, w7",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"andn rax, rbx, rcx": {
|
||||
@@ -360,9 +360,9 @@
|
||||
"Map 2 0b00 0xf2 64-bit"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"bic x4, x5, x7",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"bic x26, x5, x7",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"bzhi eax, ebx, ecx": {
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -104,35 +104,39 @@
|
||||
]
|
||||
},
|
||||
"add al, 1": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"ExpectedInstructionCount": 8,
|
||||
"Comment": "0x04",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #24",
|
||||
"cmn w0, w20, lsl #24",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #8",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"add ax, 1": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"ExpectedInstructionCount": 8,
|
||||
"Comment": "0x05",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #16",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"add eax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x05",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -140,8 +144,8 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x05",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x4, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -220,18 +224,18 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x09",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr w7, w7, w5",
|
||||
"mov x26, x7",
|
||||
"tst w7, w7"
|
||||
"orr w26, w7, w5",
|
||||
"tst w26, w26",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
"or rbx, rcx": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x09",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr x7, x7, x5",
|
||||
"mov x26, x7",
|
||||
"tst x7, x7"
|
||||
"orr x26, x7, x5",
|
||||
"tst x26, x26",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
"db 0x0A, 0xcb": {
|
||||
@@ -265,9 +269,9 @@
|
||||
"or ebx, ecx but modrm.rm as source"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"orr w5, w5, w7",
|
||||
"mov x26, x5",
|
||||
"tst w5, w5"
|
||||
"orr w26, w5, w7",
|
||||
"tst w26, w26",
|
||||
"mov x5, x26"
|
||||
]
|
||||
},
|
||||
"db 0x48, 0x0B, 0xcb": {
|
||||
@@ -277,9 +281,9 @@
|
||||
"or rbx, rcx but modrm.rm as source"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"orr x5, x5, x7",
|
||||
"mov x26, x5",
|
||||
"tst x5, x5"
|
||||
"orr x26, x5, x7",
|
||||
"tst x26, x26",
|
||||
"mov x5, x26"
|
||||
]
|
||||
},
|
||||
"or al, 1": {
|
||||
@@ -304,18 +308,18 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x0D",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr w4, w4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"orr w26, w4, #0x1",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"or rax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x0D",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr x4, x4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"orr x26, x4, #0x1",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"or al, -1": {
|
||||
@@ -341,9 +345,9 @@
|
||||
"Comment": "0x0D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffffff",
|
||||
"orr w4, w4, w20",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"orr w26, w4, w20",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"or rax, -1": {
|
||||
@@ -351,9 +355,9 @@
|
||||
"Comment": "0x0D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"orr x4, x4, x20",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"orr x26, x4, x20",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"adc bl, cl": {
|
||||
@@ -497,10 +501,9 @@
|
||||
]
|
||||
},
|
||||
"adc al, 1": {
|
||||
"ExpectedInstructionCount": 17,
|
||||
"ExpectedInstructionCount": 19,
|
||||
"Comment": "0x14",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"mov w20, #0x1",
|
||||
"adc w20, wzr, w20",
|
||||
"add w21, w4, w20",
|
||||
@@ -515,15 +518,17 @@
|
||||
"bic w21, w22, w21",
|
||||
"ubfx x21, x21, #7, #1",
|
||||
"orr w20, w20, w21, lsl #28",
|
||||
"bfxil x4, x26, #0, #8",
|
||||
"msr nzcv, x20"
|
||||
"mov x21, x4",
|
||||
"bfxil x21, x26, #0, #8",
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x21"
|
||||
]
|
||||
},
|
||||
"adc ax, 1": {
|
||||
"ExpectedInstructionCount": 17,
|
||||
"ExpectedInstructionCount": 19,
|
||||
"Comment": "0x15",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"mov w20, #0x1",
|
||||
"adc w20, wzr, w20",
|
||||
"add w21, w4, w20",
|
||||
@@ -538,8 +543,11 @@
|
||||
"bic w21, w22, w21",
|
||||
"ubfx x21, x21, #15, #1",
|
||||
"orr w20, w20, w21, lsl #28",
|
||||
"bfxil x4, x26, #0, #16",
|
||||
"msr nzcv, x20"
|
||||
"mov x21, x4",
|
||||
"bfxil x21, x26, #0, #16",
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x21"
|
||||
]
|
||||
},
|
||||
"adc eax, 1": {
|
||||
@@ -547,8 +555,8 @@
|
||||
"Comment": "0x15",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -557,8 +565,8 @@
|
||||
"Comment": "0x15",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -687,8 +695,8 @@
|
||||
"sbcs w26, w7, w5",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x7, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
"sbb rbx, rcx": {
|
||||
@@ -702,8 +710,8 @@
|
||||
"sbcs x26, x7, x5",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x7, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
"db 0x1A, 0xcb": {
|
||||
@@ -774,8 +782,8 @@
|
||||
"sbcs w26, w5, w7",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x5, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x5, x26"
|
||||
]
|
||||
},
|
||||
"db 0x48, 0x1B, 0xcb": {
|
||||
@@ -792,15 +800,14 @@
|
||||
"sbcs x26, x5, x7",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x5, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x5, x26"
|
||||
]
|
||||
},
|
||||
"sbb al, 1": {
|
||||
"ExpectedInstructionCount": 16,
|
||||
"ExpectedInstructionCount": 18,
|
||||
"Comment": "0x1C",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"uxtb w20, w4",
|
||||
"cset w21, hs",
|
||||
"sub w21, w20, w21",
|
||||
@@ -814,15 +821,17 @@
|
||||
"bic w20, w20, w26",
|
||||
"ubfx x20, x20, #7, #1",
|
||||
"orr w20, w21, w20, lsl #28",
|
||||
"bfxil x4, x26, #0, #8",
|
||||
"msr nzcv, x20"
|
||||
"mov x21, x4",
|
||||
"bfxil x21, x26, #0, #8",
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x21"
|
||||
]
|
||||
},
|
||||
"sbb ax, 1": {
|
||||
"ExpectedInstructionCount": 16,
|
||||
"ExpectedInstructionCount": 18,
|
||||
"Comment": "0x1D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"uxth w20, w4",
|
||||
"cset w21, hs",
|
||||
"sub w21, w20, w21",
|
||||
@@ -836,8 +845,11 @@
|
||||
"bic w20, w20, w26",
|
||||
"ubfx x20, x20, #15, #1",
|
||||
"orr w20, w21, w20, lsl #28",
|
||||
"bfxil x4, x26, #0, #16",
|
||||
"msr nzcv, x20"
|
||||
"mov x21, x4",
|
||||
"bfxil x21, x26, #0, #16",
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x21"
|
||||
]
|
||||
},
|
||||
"sbb eax, 1": {
|
||||
@@ -845,15 +857,15 @@
|
||||
"Comment": "0x1D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"sbb rax, 1": {
|
||||
@@ -861,15 +873,15 @@
|
||||
"Comment": "0x1D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs x26, x4, x20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"sbb al, -1": {
|
||||
@@ -929,8 +941,8 @@
|
||||
"sbcs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"sbb rax, -1": {
|
||||
@@ -945,8 +957,8 @@
|
||||
"sbcs x26, x4, x20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"and bl, cl": {
|
||||
@@ -1135,8 +1147,8 @@
|
||||
"subs w26, w7, w5",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x7, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
"sub rbx, rcx": {
|
||||
@@ -1147,8 +1159,8 @@
|
||||
"subs x26, x7, x5",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x7, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
"db 0x2A, 0xcb": {
|
||||
@@ -1196,8 +1208,8 @@
|
||||
"subs w26, w5, w7",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x5, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x5, x26"
|
||||
]
|
||||
},
|
||||
"db 0x48, 0x2B, 0xcb": {
|
||||
@@ -1211,62 +1223,66 @@
|
||||
"subs x26, x5, x7",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x5, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x5, x26"
|
||||
]
|
||||
},
|
||||
"sub al, 1": {
|
||||
"ExpectedInstructionCount": 9,
|
||||
"ExpectedInstructionCount": 11,
|
||||
"Comment": "0x2C",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"bfxil x4, x26, #0, #8",
|
||||
"msr nzcv, x20"
|
||||
"mov x21, x4",
|
||||
"bfxil x21, x26, #0, #8",
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x21"
|
||||
]
|
||||
},
|
||||
"sub ax, 1": {
|
||||
"ExpectedInstructionCount": 9,
|
||||
"ExpectedInstructionCount": 11,
|
||||
"Comment": "0x2D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #16",
|
||||
"cmp w0, w20, lsl #16",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"bfxil x4, x26, #0, #16",
|
||||
"msr nzcv, x20"
|
||||
"mov x21, x4",
|
||||
"bfxil x21, x26, #0, #16",
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x21"
|
||||
]
|
||||
},
|
||||
"sub eax, 1": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "0x2D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"sub rax, 1": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "0x2D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"sub al, -1": {
|
||||
@@ -1308,8 +1324,8 @@
|
||||
"subs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"sub rax, -1": {
|
||||
@@ -1320,8 +1336,8 @@
|
||||
"adds x26, x4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor bl, cl": {
|
||||
@@ -1346,18 +1362,18 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x31",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor w7, w7, w5",
|
||||
"mov x26, x7",
|
||||
"tst w7, w7"
|
||||
"eor w26, w7, w5",
|
||||
"tst w26, w26",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
"xor rbx, rcx": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x31",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor x7, x7, x5",
|
||||
"mov x26, x7",
|
||||
"tst x7, x7"
|
||||
"eor x26, x7, x5",
|
||||
"tst x26, x26",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
"db 0x32, 0xcb": {
|
||||
@@ -1391,9 +1407,9 @@
|
||||
"xor ebx, ecx but modrm.rm as source"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"eor w5, w5, w7",
|
||||
"mov x26, x5",
|
||||
"tst w5, w5"
|
||||
"eor w26, w5, w7",
|
||||
"tst w26, w26",
|
||||
"mov x5, x26"
|
||||
]
|
||||
},
|
||||
"db 0x48, 0x33, 0xcb": {
|
||||
@@ -1403,9 +1419,9 @@
|
||||
"xor rbx, rcx but modrm.rm as source"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"eor x5, x5, x7",
|
||||
"mov x26, x5",
|
||||
"tst x5, x5"
|
||||
"eor x26, x5, x7",
|
||||
"tst x26, x26",
|
||||
"mov x5, x26"
|
||||
]
|
||||
},
|
||||
"xor al, 1": {
|
||||
@@ -1430,18 +1446,18 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x35",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor w4, w4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"eor w26, w4, #0x1",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor rax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x35",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor x4, x4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"eor x26, x4, #0x1",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"cmp bl, cl": {
|
||||
@@ -1480,9 +1496,9 @@
|
||||
"Comment": "0x35",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffffff",
|
||||
"eor w4, w4, w20",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"eor w26, w4, w20",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor rax, -1": {
|
||||
@@ -1490,9 +1506,9 @@
|
||||
"Comment": "0x35",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"eor x4, x4, x20",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"eor x26, x4, x20",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"cmp bx, cx": {
|
||||
@@ -1595,13 +1611,13 @@
|
||||
"Comment": "0x3C",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"cmp ax, 1": {
|
||||
@@ -1609,35 +1625,35 @@
|
||||
"Comment": "0x3D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #16",
|
||||
"cmp w0, w20, lsl #16",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"cmp eax, 1": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "0x3D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"cmp rax, 1": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "0x3D",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"cmp al, -1": {
|
||||
@@ -1908,14 +1924,13 @@
|
||||
]
|
||||
},
|
||||
"xchg bl, cl": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "0x86",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x5",
|
||||
"bfxil x20, x7, #0, #8",
|
||||
"mov x21, x5",
|
||||
"mov x5, x20",
|
||||
"bfxil x7, x21, #0, #8"
|
||||
"bfxil x7, x5, #0, #8",
|
||||
"mov x5, x20"
|
||||
]
|
||||
},
|
||||
"xchg [rax], cl": {
|
||||
@@ -1927,14 +1942,13 @@
|
||||
]
|
||||
},
|
||||
"xchg bx, cx": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "0x87",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x5",
|
||||
"bfxil x20, x7, #0, #16",
|
||||
"mov x21, x5",
|
||||
"mov x5, x20",
|
||||
"bfxil x7, x21, #0, #16"
|
||||
"bfxil x7, x5, #0, #16",
|
||||
"mov x5, x20"
|
||||
]
|
||||
},
|
||||
"xchg [rax], cx": {
|
||||
@@ -1946,13 +1960,12 @@
|
||||
]
|
||||
},
|
||||
"xchg ebx, ecx": {
|
||||
"ExpectedInstructionCount": 4,
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x87",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, w7",
|
||||
"mov x21, x5",
|
||||
"mov x5, x20",
|
||||
"mov w7, w21"
|
||||
"mov w7, w5",
|
||||
"mov x5, x20"
|
||||
]
|
||||
},
|
||||
"xchg [rax], ecx": {
|
||||
@@ -1966,9 +1979,9 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x87",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x5",
|
||||
"mov x5, x7",
|
||||
"mov x7, x20"
|
||||
"mov x20, x7",
|
||||
"mov x7, x5",
|
||||
"mov x5, x20"
|
||||
]
|
||||
},
|
||||
"xchg [rax], rcx": {
|
||||
@@ -2431,24 +2444,22 @@
|
||||
]
|
||||
},
|
||||
"xchg ax, bx": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"ExpectedInstructionCount": 4,
|
||||
"Comment": "0x90",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, x7",
|
||||
"bfxil x20, x4, #0, #16",
|
||||
"mov x21, x7",
|
||||
"mov x7, x20",
|
||||
"bfxil x4, x21, #0, #16"
|
||||
"bfxil x4, x7, #0, #16",
|
||||
"mov x7, x20"
|
||||
]
|
||||
},
|
||||
"xchg eax, ebx": {
|
||||
"ExpectedInstructionCount": 4,
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "0x90",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, w4",
|
||||
"mov x21, x7",
|
||||
"mov x7, x20",
|
||||
"mov w4, w21"
|
||||
"mov w4, w7",
|
||||
"mov x7, x20"
|
||||
]
|
||||
},
|
||||
"xchg rax, rbx": {
|
||||
@@ -2630,26 +2641,26 @@
|
||||
"strb w21, [x28, #985]",
|
||||
"ubfx w21, w27, #10, #1",
|
||||
"sub x21, x22, x21, lsl #1",
|
||||
"strb w21, [x28, #986]",
|
||||
"ubfx x21, x27, #11, #1",
|
||||
"orr w20, w20, w21, lsl #28",
|
||||
"ubfx w21, w27, #12, #1",
|
||||
"strb w21, [x28, #988]",
|
||||
"ubfx w21, w27, #14, #1",
|
||||
"strb w21, [x28, #990]",
|
||||
"ubfx w21, w27, #16, #1",
|
||||
"strb w21, [x28, #992]",
|
||||
"ubfx w21, w27, #17, #1",
|
||||
"strb w21, [x28, #993]",
|
||||
"ubfx w21, w27, #18, #1",
|
||||
"strb w21, [x28, #994]",
|
||||
"ubfx w21, w27, #19, #1",
|
||||
"strb w21, [x28, #995]",
|
||||
"ubfx w21, w27, #20, #1",
|
||||
"strb w21, [x28, #996]",
|
||||
"ubfx w21, w27, #21, #1",
|
||||
"strb w21, [x28, #997]",
|
||||
"msr nzcv, x20"
|
||||
"ubfx x22, x27, #11, #1",
|
||||
"orr w20, w20, w22, lsl #28",
|
||||
"ubfx w22, w27, #12, #1",
|
||||
"strb w22, [x28, #988]",
|
||||
"ubfx w22, w27, #14, #1",
|
||||
"strb w22, [x28, #990]",
|
||||
"ubfx w22, w27, #16, #1",
|
||||
"strb w22, [x28, #992]",
|
||||
"ubfx w22, w27, #17, #1",
|
||||
"strb w22, [x28, #993]",
|
||||
"ubfx w22, w27, #18, #1",
|
||||
"strb w22, [x28, #994]",
|
||||
"ubfx w22, w27, #19, #1",
|
||||
"strb w22, [x28, #995]",
|
||||
"ubfx w22, w27, #20, #1",
|
||||
"strb w22, [x28, #996]",
|
||||
"ubfx w22, w27, #21, #1",
|
||||
"strb w22, [x28, #997]",
|
||||
"msr nzcv, x20",
|
||||
"strb w21, [x28, #986]"
|
||||
]
|
||||
},
|
||||
"sahf": {
|
||||
@@ -3236,10 +3247,10 @@
|
||||
]
|
||||
},
|
||||
"repz cmpsb": {
|
||||
"ExpectedInstructionCount": 29,
|
||||
"ExpectedInstructionCount": 28,
|
||||
"Comment": "0xa6",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x74",
|
||||
"cbz x5, #+0x70",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3260,21 +3271,20 @@
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #24",
|
||||
"lsl w0, w27, #24",
|
||||
"cmp w0, w26, lsl #24",
|
||||
"sub w26, w21, w26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"sub w26, w27, w26",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"repz cmpsw": {
|
||||
"ExpectedInstructionCount": 29,
|
||||
"ExpectedInstructionCount": 28,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x74",
|
||||
"cbz x5, #+0x70",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3295,21 +3305,20 @@
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #16",
|
||||
"lsl w0, w27, #16",
|
||||
"cmp w0, w26, lsl #16",
|
||||
"sub w26, w21, w26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"sub w26, w27, w26",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"repz cmpsd": {
|
||||
"ExpectedInstructionCount": 27,
|
||||
"ExpectedInstructionCount": 26,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x6c",
|
||||
"cbz x5, #+0x68",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3330,19 +3339,18 @@
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs w26, w21, w26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"subs w26, w27, w26",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"repz cmpsq": {
|
||||
"ExpectedInstructionCount": 27,
|
||||
"ExpectedInstructionCount": 26,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x6c",
|
||||
"cbz x5, #+0x68",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3363,19 +3371,18 @@
|
||||
"ccmp x27, x26, #nzcv, ne",
|
||||
"b.eq #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs x26, x21, x26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"subs x26, x27, x26",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"repnz cmpsb": {
|
||||
"ExpectedInstructionCount": 29,
|
||||
"ExpectedInstructionCount": 28,
|
||||
"Comment": "0xa6",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x74",
|
||||
"cbz x5, #+0x70",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3396,21 +3403,20 @@
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #24",
|
||||
"lsl w0, w27, #24",
|
||||
"cmp w0, w26, lsl #24",
|
||||
"sub w26, w21, w26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"sub w26, w27, w26",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"repnz cmpsw": {
|
||||
"ExpectedInstructionCount": 29,
|
||||
"ExpectedInstructionCount": 28,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x74",
|
||||
"cbz x5, #+0x70",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3431,21 +3437,20 @@
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"lsl w0, w21, #16",
|
||||
"lsl w0, w27, #16",
|
||||
"cmp w0, w26, lsl #16",
|
||||
"sub w26, w21, w26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"sub w26, w27, w26",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"repnz cmpsd": {
|
||||
"ExpectedInstructionCount": 27,
|
||||
"ExpectedInstructionCount": 26,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x6c",
|
||||
"cbz x5, #+0x68",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3466,19 +3471,18 @@
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs w26, w21, w26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"subs w26, w27, w26",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"repnz cmpsq": {
|
||||
"ExpectedInstructionCount": 27,
|
||||
"ExpectedInstructionCount": 26,
|
||||
"Comment": "0xa7",
|
||||
"ExpectedArm64ASM": [
|
||||
"cbz x5, #+0x6c",
|
||||
"cbz x5, #+0x68",
|
||||
"ldrsb x20, [x28, #986]",
|
||||
"lsr x20, x20, #63",
|
||||
"cbz x20, #+0x8",
|
||||
@@ -3499,12 +3503,11 @@
|
||||
"ccmp x27, x26, #nZcv, ne",
|
||||
"b.ne #-0x18",
|
||||
"eor w20, w27, w26",
|
||||
"mov x21, x27",
|
||||
"mov x27, x20",
|
||||
"subs x26, x21, x26",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"subs x26, x27, x26",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"mov x27, x20"
|
||||
]
|
||||
},
|
||||
"test al, 1": {
|
||||
|
||||
@@ -16,15 +16,17 @@
|
||||
],
|
||||
"Instructions": {
|
||||
"add al, 1": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"ExpectedInstructionCount": 8,
|
||||
"Comment": "GROUP1 0x80 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #24",
|
||||
"cmn w0, w20, lsl #24",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #8"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #8",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"or al, 1": {
|
||||
@@ -37,10 +39,9 @@
|
||||
]
|
||||
},
|
||||
"adc al, 1": {
|
||||
"ExpectedInstructionCount": 17,
|
||||
"ExpectedInstructionCount": 19,
|
||||
"Comment": "GROUP1 0x80 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"mov w20, #0x1",
|
||||
"adc w20, wzr, w20",
|
||||
"add w21, w4, w20",
|
||||
@@ -55,15 +56,17 @@
|
||||
"bic w21, w22, w21",
|
||||
"ubfx x21, x21, #7, #1",
|
||||
"orr w20, w20, w21, lsl #28",
|
||||
"bfxil x4, x26, #0, #8",
|
||||
"msr nzcv, x20"
|
||||
"mov x21, x4",
|
||||
"bfxil x21, x26, #0, #8",
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x21"
|
||||
]
|
||||
},
|
||||
"sbb al, 1": {
|
||||
"ExpectedInstructionCount": 16,
|
||||
"ExpectedInstructionCount": 18,
|
||||
"Comment": "GROUP1 0x80 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"uxtb w20, w4",
|
||||
"cset w21, hs",
|
||||
"sub w21, w20, w21",
|
||||
@@ -77,8 +80,11 @@
|
||||
"bic w20, w20, w26",
|
||||
"ubfx x20, x20, #7, #1",
|
||||
"orr w20, w21, w20, lsl #28",
|
||||
"bfxil x4, x26, #0, #8",
|
||||
"msr nzcv, x20"
|
||||
"mov x21, x4",
|
||||
"bfxil x21, x26, #0, #8",
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x21"
|
||||
]
|
||||
},
|
||||
"and al, 1": {
|
||||
@@ -91,18 +97,20 @@
|
||||
]
|
||||
},
|
||||
"sub al, 1": {
|
||||
"ExpectedInstructionCount": 9,
|
||||
"ExpectedInstructionCount": 11,
|
||||
"Comment": "GROUP1 0x80 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"bfxil x4, x26, #0, #8",
|
||||
"msr nzcv, x20"
|
||||
"mov x21, x4",
|
||||
"bfxil x21, x26, #0, #8",
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x21"
|
||||
]
|
||||
},
|
||||
"xor al, 1": {
|
||||
@@ -119,13 +127,13 @@
|
||||
"Comment": "GROUP1 0x80 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #24",
|
||||
"cmp w0, w20, lsl #24",
|
||||
"sub w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"add al, -1": {
|
||||
@@ -242,23 +250,25 @@
|
||||
]
|
||||
},
|
||||
"add ax, 256": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"ExpectedInstructionCount": 8,
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w4, #0x100 (256)",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #16",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"add eax, 256": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, #0x100 (256)",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -266,8 +276,8 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x4, #0x100 (256)",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -275,18 +285,18 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr w4, w4, #0x100",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"orr w26, w4, #0x100",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"or rax, 256": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr x4, x4, #0x100",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"orr x26, x4, #0x100",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"adc eax, 256": {
|
||||
@@ -294,8 +304,8 @@
|
||||
"Comment": "GROUP1 0x81 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -304,8 +314,8 @@
|
||||
"Comment": "GROUP1 0x81 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -314,15 +324,15 @@
|
||||
"Comment": "GROUP1 0x81 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"sbb rax, 256": {
|
||||
@@ -330,15 +340,15 @@
|
||||
"Comment": "GROUP1 0x81 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x100",
|
||||
"mov x27, x4",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs x26, x4, x20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"and eax, 256": {
|
||||
@@ -361,76 +371,78 @@
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP1 0x81 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x100 (256)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"sub rax, 256": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP1 0x81 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x100 (256)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor eax, 256": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor w4, w4, #0x100",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"eor w26, w4, #0x100",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor rax, 256": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor x4, x4, #0x100",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"eor x26, x4, #0x100",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"cmp eax, 256": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "GROUP1 0x81 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x100 (256)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"cmp rax, 256": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "GROUP1 0x81 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x100 (256)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"add ax, -256": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"ExpectedInstructionCount": 8,
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xff00",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w4, w20",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #16",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"add eax, -256": {
|
||||
@@ -438,8 +450,8 @@
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, w20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -447,8 +459,8 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x100 (256)",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -456,18 +468,18 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr w4, w4, #0xffffff00",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"orr w26, w4, #0xffffff00",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"or rax, -256": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr x4, x4, #0xffffffffffffff00",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"orr x26, x4, #0xffffffffffffff00",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"adc eax, -256": {
|
||||
@@ -475,8 +487,8 @@
|
||||
"Comment": "GROUP1 0x81 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -485,8 +497,8 @@
|
||||
"Comment": "GROUP1 0x81 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffff00",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -495,15 +507,15 @@
|
||||
"Comment": "GROUP1 0x81 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"sbb rax, -256": {
|
||||
@@ -511,15 +523,15 @@
|
||||
"Comment": "GROUP1 0x81 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffff00",
|
||||
"mov x27, x4",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs x26, x4, x20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"and eax, -256": {
|
||||
@@ -543,42 +555,42 @@
|
||||
"Comment": "GROUP1 0x81 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"sub rax, -256": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP1 0x81 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x4, #0x100 (256)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor eax, -256": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor w4, w4, #0xffffff00",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"eor w26, w4, #0xffffff00",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor rax, -256": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x81 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor x4, x4, #0xffffffffffffff00",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"eor x26, x4, #0xffffffffffffff00",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"cmp eax, -256": {
|
||||
@@ -586,42 +598,44 @@
|
||||
"Comment": "GROUP1 0x81 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffff00",
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"cmp rax, -256": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "GROUP1 0x81 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x4, #0x100 (256)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"add ax, 1": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"ExpectedInstructionCount": 8,
|
||||
"Comment": "GROUP1 0x83 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"lsl w0, w4, #16",
|
||||
"cmn w0, w20, lsl #16",
|
||||
"add w26, w4, #0x1 (1)",
|
||||
"bfxil x4, x26, #0, #16"
|
||||
"mov x20, x4",
|
||||
"bfxil x20, x26, #0, #16",
|
||||
"mov x27, x4",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"add eax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x83 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -629,8 +643,8 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x83 /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"adds x26, x4, #0x1 (1)",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -638,18 +652,18 @@
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x83 /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr w4, w4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"orr w26, w4, #0x1",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"or rax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x83 /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"orr x4, x4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"orr x26, x4, #0x1",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"adc eax, 1": {
|
||||
@@ -657,8 +671,8 @@
|
||||
"Comment": "GROUP1 0x83 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs w26, w4, w20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -667,8 +681,8 @@
|
||||
"Comment": "GROUP1 0x83 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"adcs x26, x4, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
@@ -677,15 +691,15 @@
|
||||
"Comment": "GROUP1 0x83 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"sbb rax, 1": {
|
||||
@@ -693,15 +707,15 @@
|
||||
"Comment": "GROUP1 0x83 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0x1",
|
||||
"mov x27, x4",
|
||||
"mrs x21, nzcv",
|
||||
"eor w21, w21, #0x20000000",
|
||||
"msr nzcv, x21",
|
||||
"sbcs x26, x4, x20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"and eax, 1": {
|
||||
@@ -724,64 +738,64 @@
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP1 0x83 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"sub rax, 1": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP1 0x83 /5",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor eax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x83 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor w4, w4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"eor w26, w4, #0x1",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor rax, 1": {
|
||||
"ExpectedInstructionCount": 3,
|
||||
"Comment": "GROUP1 0x83 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"eor x4, x4, #0x1",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"eor x26, x4, #0x1",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"cmp eax, 1": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "GROUP1 0x83 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"cmp rax, 1": {
|
||||
"ExpectedInstructionCount": 5,
|
||||
"Comment": "GROUP1 0x83 /7",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x4"
|
||||
]
|
||||
},
|
||||
"add ax, -1": {
|
||||
@@ -820,9 +834,9 @@
|
||||
"Comment": "GROUP1 0x83 /-1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffffff",
|
||||
"orr w4, w4, w20",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"orr w26, w4, w20",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"or rax, -1": {
|
||||
@@ -830,9 +844,9 @@
|
||||
"Comment": "GROUP1 0x83 /-1",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"orr x4, x4, x20",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"orr x26, x4, x20",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"adc eax, -1": {
|
||||
@@ -867,8 +881,8 @@
|
||||
"sbcs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"sbb rax, -1": {
|
||||
@@ -883,8 +897,8 @@
|
||||
"sbcs x26, x4, x20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"and eax, -1": {
|
||||
@@ -914,8 +928,8 @@
|
||||
"subs w26, w4, w20",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"sub rax, -1": {
|
||||
@@ -926,8 +940,8 @@
|
||||
"adds x26, x4, #0x1 (1)",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor eax, -1": {
|
||||
@@ -935,9 +949,9 @@
|
||||
"Comment": "GROUP1 0x83 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov w20, #0xffffffff",
|
||||
"eor w4, w4, w20",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"eor w26, w4, w20",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"xor rax, -1": {
|
||||
@@ -945,9 +959,9 @@
|
||||
"Comment": "GROUP1 0x83 /6",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x20, #0xffffffffffffffff",
|
||||
"eor x4, x4, x20",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"eor x26, x4, x20",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"cmp eax, -1": {
|
||||
@@ -1622,8 +1636,8 @@
|
||||
"eor x21, x20, x4",
|
||||
"lsr x21, x21, #63",
|
||||
"bfi w22, w21, #28, #1",
|
||||
"mov x4, x20",
|
||||
"msr nzcv, x22"
|
||||
"msr nzcv, x22",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"rcr ax, 1": {
|
||||
@@ -2405,16 +2419,18 @@
|
||||
]
|
||||
},
|
||||
"neg bl": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "GROUP2 0xf6 /3",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"cmp wzr, w7, lsl #24",
|
||||
"neg w26, w7",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"bfxil x7, x26, #0, #8",
|
||||
"msr nzcv, x20"
|
||||
"mov x21, x7",
|
||||
"bfxil x21, x26, #0, #8",
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x7",
|
||||
"mov x7, x21"
|
||||
]
|
||||
},
|
||||
"mul bl": {
|
||||
@@ -2542,40 +2558,42 @@
|
||||
]
|
||||
},
|
||||
"neg bx": {
|
||||
"ExpectedInstructionCount": 7,
|
||||
"ExpectedInstructionCount": 9,
|
||||
"Comment": "GROUP2 0xf7 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"cmp wzr, w7, lsl #16",
|
||||
"neg w26, w7",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"bfxil x7, x26, #0, #16",
|
||||
"msr nzcv, x20"
|
||||
"mov x21, x7",
|
||||
"bfxil x21, x26, #0, #16",
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x7",
|
||||
"mov x7, x21"
|
||||
]
|
||||
},
|
||||
"neg ebx": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP2 0xf7 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"negs w26, w7",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x7, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x7",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
"neg rbx": {
|
||||
"ExpectedInstructionCount": 6,
|
||||
"Comment": "GROUP2 0xf7 /2",
|
||||
"ExpectedArm64ASM": [
|
||||
"mov x27, x7",
|
||||
"negs x26, x7",
|
||||
"mrs x20, nzcv",
|
||||
"eor w20, w20, #0x20000000",
|
||||
"mov x7, x26",
|
||||
"msr nzcv, x20"
|
||||
"msr nzcv, x20",
|
||||
"mov x27, x7",
|
||||
"mov x7, x26"
|
||||
]
|
||||
},
|
||||
"mul bx": {
|
||||
@@ -2611,9 +2629,9 @@
|
||||
"ExpectedArm64ASM": [
|
||||
"mul x20, x7, x4",
|
||||
"umulh x6, x7, x4",
|
||||
"mov x4, x20",
|
||||
"cmp x6, #0x0 (0)",
|
||||
"ccmn xzr, #0, #nzCV, eq"
|
||||
"ccmn xzr, #0, #nzCV, eq",
|
||||
"mov x4, x20"
|
||||
]
|
||||
},
|
||||
"imul bx": {
|
||||
@@ -2851,12 +2869,12 @@
|
||||
"Comment": "GROUP4 0xfe /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"cset w20, hs",
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"mrs x21, nzcv",
|
||||
"bfi w21, w20, #29, #1",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x21"
|
||||
"msr nzcv, x21",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"inc rax": {
|
||||
@@ -2864,12 +2882,12 @@
|
||||
"Comment": "GROUP4 0xfe /0",
|
||||
"ExpectedArm64ASM": [
|
||||
"cset w20, hs",
|
||||
"mov x27, x4",
|
||||
"adds x26, x4, #0x1 (1)",
|
||||
"mrs x21, nzcv",
|
||||
"bfi w21, w20, #29, #1",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x21"
|
||||
"msr nzcv, x21",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"dec ax": {
|
||||
@@ -2893,12 +2911,12 @@
|
||||
"Comment": "GROUP4 0xfe /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"cset w20, hs",
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"mrs x21, nzcv",
|
||||
"bfi w21, w20, #29, #1",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x21"
|
||||
"msr nzcv, x21",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"dec rax": {
|
||||
@@ -2906,12 +2924,12 @@
|
||||
"Comment": "GROUP4 0xfe /1",
|
||||
"ExpectedArm64ASM": [
|
||||
"cset w20, hs",
|
||||
"mov x27, x4",
|
||||
"subs x26, x4, #0x1 (1)",
|
||||
"mrs x21, nzcv",
|
||||
"bfi w21, w20, #29, #1",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x21"
|
||||
"msr nzcv, x21",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"push ax": {
|
||||
|
||||
@@ -204,12 +204,12 @@
|
||||
"Comment": "0x40",
|
||||
"ExpectedArm64ASM": [
|
||||
"cset w20, hs",
|
||||
"mov x27, x4",
|
||||
"adds w26, w4, #0x1 (1)",
|
||||
"mrs x21, nzcv",
|
||||
"bfi w21, w20, #29, #1",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x21"
|
||||
"msr nzcv, x21",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"dec ax": {
|
||||
@@ -247,12 +247,12 @@
|
||||
"Comment": "0x48",
|
||||
"ExpectedArm64ASM": [
|
||||
"cset w20, hs",
|
||||
"mov x27, x4",
|
||||
"subs w26, w4, #0x1 (1)",
|
||||
"mrs x21, nzcv",
|
||||
"bfi w21, w20, #29, #1",
|
||||
"mov x4, x26",
|
||||
"msr nzcv, x21"
|
||||
"msr nzcv, x21",
|
||||
"mov x27, x4",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"pusha": {
|
||||
|
||||
@@ -1389,21 +1389,21 @@
|
||||
"strh w20, [x4, #2]",
|
||||
"ldrb w20, [x28, #1298]",
|
||||
"strb w20, [x4, #4]",
|
||||
"ldr q2, [x28, #1040]",
|
||||
"ldr d2, [x28, #1040]",
|
||||
"str q2, [x4, #32]",
|
||||
"ldr q2, [x28, #1056]",
|
||||
"ldr d2, [x28, #1056]",
|
||||
"str q2, [x4, #48]",
|
||||
"ldr q2, [x28, #1072]",
|
||||
"ldr d2, [x28, #1072]",
|
||||
"str q2, [x4, #64]",
|
||||
"ldr q2, [x28, #1088]",
|
||||
"ldr d2, [x28, #1088]",
|
||||
"str q2, [x4, #80]",
|
||||
"ldr q2, [x28, #1104]",
|
||||
"ldr d2, [x28, #1104]",
|
||||
"str q2, [x4, #96]",
|
||||
"ldr q2, [x28, #1120]",
|
||||
"ldr d2, [x28, #1120]",
|
||||
"str q2, [x4, #112]",
|
||||
"ldr q2, [x28, #1136]",
|
||||
"ldr d2, [x28, #1136]",
|
||||
"str q2, [x4, #128]",
|
||||
"ldr q2, [x28, #1152]",
|
||||
"ldr d2, [x28, #1152]",
|
||||
"str q2, [x4, #144]",
|
||||
"str q16, [x4, #160]",
|
||||
"str q17, [x4, #176]",
|
||||
@@ -1464,23 +1464,14 @@
|
||||
"strb w23, [x28, #1018]",
|
||||
"strb w20, [x28, #1022]",
|
||||
"ldrb w20, [x4, #4]",
|
||||
"strb w20, [x28, #1298]",
|
||||
"ldr q2, [x4, #32]",
|
||||
"str q2, [x28, #1040]",
|
||||
"ldr q2, [x4, #48]",
|
||||
"str q2, [x28, #1056]",
|
||||
"ldr q2, [x4, #64]",
|
||||
"str q2, [x28, #1072]",
|
||||
"ldr q2, [x4, #80]",
|
||||
"str q2, [x28, #1088]",
|
||||
"ldr q2, [x4, #96]",
|
||||
"str q2, [x28, #1104]",
|
||||
"ldr q2, [x4, #112]",
|
||||
"str q2, [x28, #1120]",
|
||||
"ldr q2, [x4, #128]",
|
||||
"str q2, [x28, #1136]",
|
||||
"ldr q2, [x4, #144]",
|
||||
"str q2, [x28, #1152]",
|
||||
"ldr q3, [x4, #48]",
|
||||
"ldr q4, [x4, #64]",
|
||||
"ldr q5, [x4, #80]",
|
||||
"ldr q6, [x4, #96]",
|
||||
"ldr q7, [x4, #112]",
|
||||
"ldr q8, [x4, #128]",
|
||||
"ldr q9, [x4, #144]",
|
||||
"ldr q16, [x4, #160]",
|
||||
"ldr q17, [x4, #176]",
|
||||
"ldr q18, [x4, #192]",
|
||||
@@ -1497,15 +1488,24 @@
|
||||
"ldr q29, [x4, #368]",
|
||||
"ldr q30, [x4, #384]",
|
||||
"ldr q31, [x4, #400]",
|
||||
"ldr w20, [x4, #24]",
|
||||
"ubfx w20, w20, #13, #3",
|
||||
"rbit w1, w20",
|
||||
"ldr w21, [x4, #24]",
|
||||
"ubfx w21, w21, #13, #3",
|
||||
"rbit w1, w21",
|
||||
"lsr w1, w1, #30",
|
||||
"mrs x0, fpcr",
|
||||
"bfi x0, x1, #22, #2",
|
||||
"lsr x1, x20, #2",
|
||||
"lsr x1, x21, #2",
|
||||
"bfi x0, x1, #24, #1",
|
||||
"msr fpcr, x0"
|
||||
"msr fpcr, x0",
|
||||
"strb w20, [x28, #1298]",
|
||||
"str d9, [x28, #1152]",
|
||||
"str d8, [x28, #1136]",
|
||||
"str d7, [x28, #1120]",
|
||||
"str d6, [x28, #1104]",
|
||||
"str d5, [x28, #1088]",
|
||||
"str d4, [x28, #1072]",
|
||||
"str d3, [x28, #1056]",
|
||||
"str d2, [x28, #1040]"
|
||||
]
|
||||
},
|
||||
"rdgsbase eax": {
|
||||
@@ -1603,21 +1603,21 @@
|
||||
"strh w20, [x4, #2]",
|
||||
"ldrb w20, [x28, #1298]",
|
||||
"strb w20, [x4, #4]",
|
||||
"ldr q2, [x28, #1040]",
|
||||
"ldr d2, [x28, #1040]",
|
||||
"str q2, [x4, #32]",
|
||||
"ldr q2, [x28, #1056]",
|
||||
"ldr d2, [x28, #1056]",
|
||||
"str q2, [x4, #48]",
|
||||
"ldr q2, [x28, #1072]",
|
||||
"ldr d2, [x28, #1072]",
|
||||
"str q2, [x4, #64]",
|
||||
"ldr q2, [x28, #1088]",
|
||||
"ldr d2, [x28, #1088]",
|
||||
"str q2, [x4, #80]",
|
||||
"ldr q2, [x28, #1104]",
|
||||
"ldr d2, [x28, #1104]",
|
||||
"str q2, [x4, #96]",
|
||||
"ldr q2, [x28, #1120]",
|
||||
"ldr d2, [x28, #1120]",
|
||||
"str q2, [x4, #112]",
|
||||
"ldr q2, [x28, #1136]",
|
||||
"ldr d2, [x28, #1136]",
|
||||
"str q2, [x4, #128]",
|
||||
"ldr q2, [x28, #1152]",
|
||||
"ldr d2, [x28, #1152]",
|
||||
"str q2, [x4, #144]",
|
||||
"ubfx x20, x4, #1, #1",
|
||||
"cbnz x20, #+0x8",
|
||||
@@ -1683,23 +1683,23 @@
|
||||
"strb w23, [x28, #1018]",
|
||||
"strb w20, [x28, #1022]",
|
||||
"ldrb w20, [x4, #4]",
|
||||
"strb w20, [x28, #1298]",
|
||||
"ldr q2, [x4, #32]",
|
||||
"str q2, [x28, #1040]",
|
||||
"ldr q2, [x4, #48]",
|
||||
"str q2, [x28, #1056]",
|
||||
"ldr q2, [x4, #64]",
|
||||
"str q2, [x28, #1072]",
|
||||
"ldr q2, [x4, #80]",
|
||||
"str q2, [x28, #1088]",
|
||||
"ldr q2, [x4, #96]",
|
||||
"str q2, [x28, #1104]",
|
||||
"ldr q2, [x4, #112]",
|
||||
"str q2, [x28, #1120]",
|
||||
"ldr q2, [x4, #128]",
|
||||
"str q2, [x28, #1136]",
|
||||
"ldr q2, [x4, #144]",
|
||||
"str q2, [x28, #1152]",
|
||||
"ldr q3, [x4, #48]",
|
||||
"ldr q4, [x4, #64]",
|
||||
"ldr q5, [x4, #80]",
|
||||
"ldr q6, [x4, #96]",
|
||||
"ldr q7, [x4, #112]",
|
||||
"ldr q8, [x4, #128]",
|
||||
"ldr q9, [x4, #144]",
|
||||
"strb w20, [x28, #1298]",
|
||||
"str d9, [x28, #1152]",
|
||||
"str d8, [x28, #1136]",
|
||||
"str d7, [x28, #1120]",
|
||||
"str d6, [x28, #1104]",
|
||||
"str d5, [x28, #1088]",
|
||||
"str d4, [x28, #1072]",
|
||||
"str d3, [x28, #1056]",
|
||||
"str d2, [x28, #1040]",
|
||||
"b #+0x4c",
|
||||
"mov w20, #0x0",
|
||||
"mov w21, #0x37f",
|
||||
@@ -1709,16 +1709,16 @@
|
||||
"strb w20, [x28, #1017]",
|
||||
"strb w20, [x28, #1018]",
|
||||
"strb w20, [x28, #1022]",
|
||||
"strb w20, [x28, #1298]",
|
||||
"movi v2.2d, #0x0",
|
||||
"str q2, [x28, #1040]",
|
||||
"str q2, [x28, #1056]",
|
||||
"str q2, [x28, #1072]",
|
||||
"str q2, [x28, #1088]",
|
||||
"str q2, [x28, #1104]",
|
||||
"str q2, [x28, #1120]",
|
||||
"str q2, [x28, #1136]",
|
||||
"str q2, [x28, #1152]",
|
||||
"strb w20, [x28, #1298]",
|
||||
"str d2, [x28, #1152]",
|
||||
"str d2, [x28, #1136]",
|
||||
"str d2, [x28, #1120]",
|
||||
"str d2, [x28, #1104]",
|
||||
"str d2, [x28, #1088]",
|
||||
"str d2, [x28, #1072]",
|
||||
"str d2, [x28, #1056]",
|
||||
"str d2, [x28, #1040]",
|
||||
"ldr x20, [x4, #512]",
|
||||
"ubfx x20, x20, #1, #1",
|
||||
"cbnz x20, #+0x8",
|
||||
@@ -1740,22 +1740,22 @@
|
||||
"ldr q30, [x4, #384]",
|
||||
"ldr q31, [x4, #400]",
|
||||
"b #+0x44",
|
||||
"movi v16.2d, #0x0",
|
||||
"mov v17.16b, v16.16b",
|
||||
"mov v18.16b, v16.16b",
|
||||
"mov v19.16b, v16.16b",
|
||||
"mov v20.16b, v16.16b",
|
||||
"mov v21.16b, v16.16b",
|
||||
"mov v22.16b, v16.16b",
|
||||
"mov v23.16b, v16.16b",
|
||||
"mov v24.16b, v16.16b",
|
||||
"mov v25.16b, v16.16b",
|
||||
"mov v26.16b, v16.16b",
|
||||
"mov v27.16b, v16.16b",
|
||||
"mov v28.16b, v16.16b",
|
||||
"mov v29.16b, v16.16b",
|
||||
"mov v30.16b, v16.16b",
|
||||
"mov v31.16b, v16.16b",
|
||||
"movi v31.2d, #0x0",
|
||||
"mov v30.16b, v31.16b",
|
||||
"mov v29.16b, v31.16b",
|
||||
"mov v28.16b, v31.16b",
|
||||
"mov v27.16b, v31.16b",
|
||||
"mov v26.16b, v31.16b",
|
||||
"mov v25.16b, v31.16b",
|
||||
"mov v24.16b, v31.16b",
|
||||
"mov v23.16b, v31.16b",
|
||||
"mov v22.16b, v31.16b",
|
||||
"mov v21.16b, v31.16b",
|
||||
"mov v20.16b, v31.16b",
|
||||
"mov v19.16b, v31.16b",
|
||||
"mov v18.16b, v31.16b",
|
||||
"mov v17.16b, v31.16b",
|
||||
"mov v16.16b, v31.16b",
|
||||
"ldr x20, [x4, #512]",
|
||||
"ubfx x20, x20, #1, #2",
|
||||
"cbnz x20, #+0x8",
|
||||
|
||||
@@ -3172,9 +3172,9 @@
|
||||
"Map 2 0b00 0xf2 32-bit"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"bic w4, w5, w7",
|
||||
"mov x26, x4",
|
||||
"tst w4, w4"
|
||||
"bic w26, w5, w7",
|
||||
"tst w26, w26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"andn rax, rbx, rcx": {
|
||||
@@ -3183,9 +3183,9 @@
|
||||
"Map 2 0b00 0xf2 64-bit"
|
||||
],
|
||||
"ExpectedArm64ASM": [
|
||||
"bic x4, x5, x7",
|
||||
"mov x26, x4",
|
||||
"tst x4, x4"
|
||||
"bic x26, x5, x7",
|
||||
"tst x26, x26",
|
||||
"mov x4, x26"
|
||||
]
|
||||
},
|
||||
"bzhi eax, ebx, ecx": {
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user