1static constexpr uint8_t expected_asm_kThumb2[] = {
2    0x60, 0xB5, 0x2D, 0xED, 0x02, 0x8A, 0x8B, 0xB0, 0x00, 0x90, 0x0B, 0xB0,
3    0xBD, 0xEC, 0x02, 0x8A, 0x60, 0xBD,
4};
5static constexpr uint8_t expected_cfi_kThumb2[] = {
6    0x42, 0x0E, 0x0C, 0x85, 0x03, 0x86, 0x02, 0x8E, 0x01, 0x44, 0x0E, 0x14,
7    0x05, 0x50, 0x05, 0x05, 0x51, 0x04, 0x42, 0x0E, 0x40, 0x42, 0x0A, 0x42,
8    0x0E, 0x14, 0x44, 0x0E, 0x0C, 0x06, 0x50, 0x06, 0x51, 0x42, 0x0B, 0x0E,
9    0x40,
10};
11// 0x00000000: push {r5, r6, lr}
12// 0x00000002: .cfi_def_cfa_offset: 12
13// 0x00000002: .cfi_offset: r5 at cfa-12
14// 0x00000002: .cfi_offset: r6 at cfa-8
15// 0x00000002: .cfi_offset: r14 at cfa-4
16// 0x00000002: vpush.f32 {s16-s17}
17// 0x00000006: .cfi_def_cfa_offset: 20
18// 0x00000006: .cfi_offset_extended: r80 at cfa-20
19// 0x00000006: .cfi_offset_extended: r81 at cfa-16
20// 0x00000006: sub sp, sp, #44
21// 0x00000008: .cfi_def_cfa_offset: 64
22// 0x00000008: str r0, [sp, #0]
23// 0x0000000a: .cfi_remember_state
24// 0x0000000a: add sp, sp, #44
25// 0x0000000c: .cfi_def_cfa_offset: 20
26// 0x0000000c: vpop.f32 {s16-s17}
27// 0x00000010: .cfi_def_cfa_offset: 12
28// 0x00000010: .cfi_restore_extended: r80
29// 0x00000010: .cfi_restore_extended: r81
30// 0x00000010: pop {r5, r6, pc}
31// 0x00000012: .cfi_restore_state
32// 0x00000012: .cfi_def_cfa_offset: 64
33
34static constexpr uint8_t expected_asm_kArm64[] = {
35    0xE0, 0x0F, 0x1C, 0xF8, 0xF3, 0xD3, 0x02, 0xA9, 0xFE, 0x1F, 0x00, 0xF9,
36    0xE8, 0xA7, 0x01, 0x6D, 0xE8, 0xA7, 0x41, 0x6D, 0xF3, 0xD3, 0x42, 0xA9,
37    0xFE, 0x1F, 0x40, 0xF9, 0xFF, 0x03, 0x01, 0x91, 0xC0, 0x03, 0x5F, 0xD6,
38};
39static constexpr uint8_t expected_cfi_kArm64[] = {
40    0x44, 0x0E, 0x40, 0x44, 0x93, 0x06, 0x94, 0x04, 0x44, 0x9E, 0x02, 0x44,
41    0x05, 0x48, 0x0A, 0x05, 0x49, 0x08, 0x0A, 0x44, 0x06, 0x48, 0x06, 0x49,
42    0x44, 0xD3, 0xD4, 0x44, 0xDE, 0x44, 0x0E, 0x00, 0x44, 0x0B, 0x0E, 0x40,
43};
44// 0x00000000: str x0, [sp, #-64]!
45// 0x00000004: .cfi_def_cfa_offset: 64
46// 0x00000004: stp x19, x20, [sp, #40]
47// 0x00000008: .cfi_offset: r19 at cfa-24
48// 0x00000008: .cfi_offset: r20 at cfa-16
49// 0x00000008: str lr, [sp, #56]
50// 0x0000000c: .cfi_offset: r30 at cfa-8
51// 0x0000000c: stp d8, d9, [sp, #24]
52// 0x00000010: .cfi_offset_extended: r72 at cfa-40
53// 0x00000010: .cfi_offset_extended: r73 at cfa-32
54// 0x00000010: .cfi_remember_state
55// 0x00000010: ldp d8, d9, [sp, #24]
56// 0x00000014: .cfi_restore_extended: r72
57// 0x00000014: .cfi_restore_extended: r73
58// 0x00000014: ldp x19, x20, [sp, #40]
59// 0x00000018: .cfi_restore: r19
60// 0x00000018: .cfi_restore: r20
61// 0x00000018: ldr lr, [sp, #56]
62// 0x0000001c: .cfi_restore: r30
63// 0x0000001c: add sp, sp, #0x40 (64)
64// 0x00000020: .cfi_def_cfa_offset: 0
65// 0x00000020: ret
66// 0x00000024: .cfi_restore_state
67// 0x00000024: .cfi_def_cfa_offset: 64
68
69static constexpr uint8_t expected_asm_kX86[] = {
70    0x56, 0x55, 0x83, 0xEC, 0x34, 0x89, 0x04, 0x24, 0x83, 0xC4, 0x34, 0x5D,
71    0x5E, 0xC3,
72};
73static constexpr uint8_t expected_cfi_kX86[] = {
74    0x41, 0x0E, 0x08, 0x86, 0x02, 0x41, 0x0E, 0x0C, 0x85, 0x03, 0x43, 0x0E,
75    0x40, 0x43, 0x0A, 0x43, 0x0E, 0x0C, 0x41, 0x0E, 0x08, 0xC5, 0x41, 0x0E,
76    0x04, 0xC6, 0x41, 0x0B, 0x0E, 0x40,
77};
78// 0x00000000: push esi
79// 0x00000001: .cfi_def_cfa_offset: 8
80// 0x00000001: .cfi_offset: r6 at cfa-8
81// 0x00000001: push ebp
82// 0x00000002: .cfi_def_cfa_offset: 12
83// 0x00000002: .cfi_offset: r5 at cfa-12
84// 0x00000002: sub esp, 52
85// 0x00000005: .cfi_def_cfa_offset: 64
86// 0x00000005: mov [esp], eax
87// 0x00000008: .cfi_remember_state
88// 0x00000008: add esp, 52
89// 0x0000000b: .cfi_def_cfa_offset: 12
90// 0x0000000b: pop ebp
91// 0x0000000c: .cfi_def_cfa_offset: 8
92// 0x0000000c: .cfi_restore: r5
93// 0x0000000c: pop esi
94// 0x0000000d: .cfi_def_cfa_offset: 4
95// 0x0000000d: .cfi_restore: r6
96// 0x0000000d: ret
97// 0x0000000e: .cfi_restore_state
98// 0x0000000e: .cfi_def_cfa_offset: 64
99
100static constexpr uint8_t expected_asm_kX86_64[] = {
101    0x55, 0x53, 0x48, 0x83, 0xEC, 0x28, 0xF2, 0x44, 0x0F, 0x11, 0x6C, 0x24,
102    0x20, 0xF2, 0x44, 0x0F, 0x11, 0x64, 0x24, 0x18, 0x48, 0x89, 0x3C, 0x24,
103    0xF2, 0x44, 0x0F, 0x10, 0x64, 0x24, 0x18, 0xF2, 0x44, 0x0F, 0x10, 0x6C,
104    0x24, 0x20, 0x48, 0x83, 0xC4, 0x28, 0x5B, 0x5D, 0xC3,
105};
106static constexpr uint8_t expected_cfi_kX86_64[] = {
107    0x41, 0x0E, 0x10, 0x86, 0x04, 0x41, 0x0E, 0x18, 0x83, 0x06, 0x44, 0x0E,
108    0x40, 0x47, 0x9E, 0x08, 0x47, 0x9D, 0x0A, 0x44, 0x0A, 0x47, 0xDD, 0x47,
109    0xDE, 0x44, 0x0E, 0x18, 0x41, 0x0E, 0x10, 0xC3, 0x41, 0x0E, 0x08, 0xC6,
110    0x41, 0x0B, 0x0E, 0x40,
111};
112// 0x00000000: push rbp
113// 0x00000001: .cfi_def_cfa_offset: 16
114// 0x00000001: .cfi_offset: r6 at cfa-16
115// 0x00000001: push rbx
116// 0x00000002: .cfi_def_cfa_offset: 24
117// 0x00000002: .cfi_offset: r3 at cfa-24
118// 0x00000002: subq rsp, 40
119// 0x00000006: .cfi_def_cfa_offset: 64
120// 0x00000006: movsd [rsp + 32], xmm13
121// 0x0000000d: .cfi_offset: r30 at cfa-32
122// 0x0000000d: movsd [rsp + 24], xmm12
123// 0x00000014: .cfi_offset: r29 at cfa-40
124// 0x00000014: movq [rsp], rdi
125// 0x00000018: .cfi_remember_state
126// 0x00000018: movsd xmm12, [rsp + 24]
127// 0x0000001f: .cfi_restore: r29
128// 0x0000001f: movsd xmm13, [rsp + 32]
129// 0x00000026: .cfi_restore: r30
130// 0x00000026: addq rsp, 40
131// 0x0000002a: .cfi_def_cfa_offset: 24
132// 0x0000002a: pop rbx
133// 0x0000002b: .cfi_def_cfa_offset: 16
134// 0x0000002b: .cfi_restore: r3
135// 0x0000002b: pop rbp
136// 0x0000002c: .cfi_def_cfa_offset: 8
137// 0x0000002c: .cfi_restore: r6
138// 0x0000002c: ret
139// 0x0000002d: .cfi_restore_state
140// 0x0000002d: .cfi_def_cfa_offset: 64
141