1static constexpr uint8_t expected_asm_kThumb2[] = {
2    0x2D, 0xE9, 0xE0, 0x4D, 0x2D, 0xED, 0x10, 0x8A, 0x89, 0xB0, 0x00, 0x90,
3    0x21, 0x91, 0x8D, 0xED, 0x22, 0x0A, 0x23, 0x92, 0x24, 0x93, 0x88, 0xB0,
4    0x08, 0xB0, 0x09, 0xB0, 0xBD, 0xEC, 0x10, 0x8A, 0xBD, 0xE8, 0xE0, 0x8D,
5};
6static constexpr uint8_t expected_cfi_kThumb2[] = {
7    0x44, 0x0E, 0x1C, 0x85, 0x07, 0x86, 0x06, 0x87, 0x05, 0x88, 0x04, 0x8A,
8    0x03, 0x8B, 0x02, 0x8E, 0x01, 0x44, 0x0E, 0x5C, 0x05, 0x50, 0x17, 0x05,
9    0x51, 0x16, 0x05, 0x52, 0x15, 0x05, 0x53, 0x14, 0x05, 0x54, 0x13, 0x05,
10    0x55, 0x12, 0x05, 0x56, 0x11, 0x05, 0x57, 0x10, 0x05, 0x58, 0x0F, 0x05,
11    0x59, 0x0E, 0x05, 0x5A, 0x0D, 0x05, 0x5B, 0x0C, 0x05, 0x5C, 0x0B, 0x05,
12    0x5D, 0x0A, 0x05, 0x5E, 0x09, 0x05, 0x5F, 0x08, 0x42, 0x0E, 0x80, 0x01,
13    0x4E, 0x0E, 0xA0, 0x01, 0x42, 0x0E, 0x80, 0x01, 0x0A, 0x42, 0x0E, 0x5C,
14    0x44, 0x0E, 0x1C, 0x06, 0x50, 0x06, 0x51, 0x06, 0x52, 0x06, 0x53, 0x06,
15    0x54, 0x06, 0x55, 0x06, 0x56, 0x06, 0x57, 0x06, 0x58, 0x06, 0x59, 0x06,
16    0x5A, 0x06, 0x5B, 0x06, 0x5C, 0x06, 0x5D, 0x06, 0x5E, 0x06, 0x5F, 0x44,
17    0x0B, 0x0E, 0x80, 0x01,
18};
19// 0x00000000: push {r5, r6, r7, r8, r10, r11, lr}
20// 0x00000004: .cfi_def_cfa_offset: 28
21// 0x00000004: .cfi_offset: r5 at cfa-28
22// 0x00000004: .cfi_offset: r6 at cfa-24
23// 0x00000004: .cfi_offset: r7 at cfa-20
24// 0x00000004: .cfi_offset: r8 at cfa-16
25// 0x00000004: .cfi_offset: r10 at cfa-12
26// 0x00000004: .cfi_offset: r11 at cfa-8
27// 0x00000004: .cfi_offset: r14 at cfa-4
28// 0x00000004: vpush.f32 {s16-s31}
29// 0x00000008: .cfi_def_cfa_offset: 92
30// 0x00000008: .cfi_offset_extended: r80 at cfa-92
31// 0x00000008: .cfi_offset_extended: r81 at cfa-88
32// 0x00000008: .cfi_offset_extended: r82 at cfa-84
33// 0x00000008: .cfi_offset_extended: r83 at cfa-80
34// 0x00000008: .cfi_offset_extended: r84 at cfa-76
35// 0x00000008: .cfi_offset_extended: r85 at cfa-72
36// 0x00000008: .cfi_offset_extended: r86 at cfa-68
37// 0x00000008: .cfi_offset_extended: r87 at cfa-64
38// 0x00000008: .cfi_offset_extended: r88 at cfa-60
39// 0x00000008: .cfi_offset_extended: r89 at cfa-56
40// 0x00000008: .cfi_offset_extended: r90 at cfa-52
41// 0x00000008: .cfi_offset_extended: r91 at cfa-48
42// 0x00000008: .cfi_offset_extended: r92 at cfa-44
43// 0x00000008: .cfi_offset_extended: r93 at cfa-40
44// 0x00000008: .cfi_offset_extended: r94 at cfa-36
45// 0x00000008: .cfi_offset_extended: r95 at cfa-32
46// 0x00000008: sub sp, sp, #36
47// 0x0000000a: .cfi_def_cfa_offset: 128
48// 0x0000000a: str r0, [sp, #0]
49// 0x0000000c: str r1, [sp, #132]
50// 0x0000000e: vstr.f32 s0, [sp, #136]
51// 0x00000012: str r2, [sp, #140]
52// 0x00000014: str r3, [sp, #144]
53// 0x00000016: sub sp, sp, #32
54// 0x00000018: .cfi_def_cfa_offset: 160
55// 0x00000018: add sp, sp, #32
56// 0x0000001a: .cfi_def_cfa_offset: 128
57// 0x0000001a: .cfi_remember_state
58// 0x0000001a: add sp, sp, #36
59// 0x0000001c: .cfi_def_cfa_offset: 92
60// 0x0000001c: vpop.f32 {s16-s31}
61// 0x00000020: .cfi_def_cfa_offset: 28
62// 0x00000020: .cfi_restore_extended: r80
63// 0x00000020: .cfi_restore_extended: r81
64// 0x00000020: .cfi_restore_extended: r82
65// 0x00000020: .cfi_restore_extended: r83
66// 0x00000020: .cfi_restore_extended: r84
67// 0x00000020: .cfi_restore_extended: r85
68// 0x00000020: .cfi_restore_extended: r86
69// 0x00000020: .cfi_restore_extended: r87
70// 0x00000020: .cfi_restore_extended: r88
71// 0x00000020: .cfi_restore_extended: r89
72// 0x00000020: .cfi_restore_extended: r90
73// 0x00000020: .cfi_restore_extended: r91
74// 0x00000020: .cfi_restore_extended: r92
75// 0x00000020: .cfi_restore_extended: r93
76// 0x00000020: .cfi_restore_extended: r94
77// 0x00000020: .cfi_restore_extended: r95
78// 0x00000020: pop {r5, r6, r7, r8, r10, r11, pc}
79// 0x00000024: .cfi_restore_state
80// 0x00000024: .cfi_def_cfa_offset: 128
81
82static constexpr uint8_t expected_asm_kArm64[] = {
83    0xFF, 0x03, 0x03, 0xD1, 0xF3, 0x53, 0x06, 0xA9, 0xF5, 0x5B, 0x07, 0xA9,
84    0xF7, 0x63, 0x08, 0xA9, 0xF9, 0x6B, 0x09, 0xA9, 0xFB, 0x73, 0x0A, 0xA9,
85    0xFD, 0x7B, 0x0B, 0xA9, 0xE8, 0x27, 0x02, 0x6D, 0xEA, 0x2F, 0x03, 0x6D,
86    0xEC, 0x37, 0x04, 0x6D, 0xEE, 0x3F, 0x05, 0x6D, 0xE0, 0x03, 0x00, 0xF9,
87    0xE1, 0xCB, 0x00, 0xB9, 0xE0, 0xCF, 0x00, 0xBD, 0xE2, 0xD3, 0x00, 0xB9,
88    0xE3, 0xD7, 0x00, 0xB9, 0xFF, 0x83, 0x00, 0xD1, 0xFF, 0x83, 0x00, 0x91,
89    0xF3, 0x53, 0x46, 0xA9, 0xF5, 0x5B, 0x47, 0xA9, 0xF7, 0x63, 0x48, 0xA9,
90    0xF9, 0x6B, 0x49, 0xA9, 0xFB, 0x73, 0x4A, 0xA9, 0xFD, 0x7B, 0x4B, 0xA9,
91    0xE8, 0x27, 0x42, 0x6D, 0xEA, 0x2F, 0x43, 0x6D, 0xEC, 0x37, 0x44, 0x6D,
92    0xEE, 0x3F, 0x45, 0x6D, 0xFF, 0x03, 0x03, 0x91, 0xC0, 0x03, 0x5F, 0xD6,
93};
94static constexpr uint8_t expected_cfi_kArm64[] = {
95    0x44, 0x0E, 0xC0, 0x01, 0x44, 0x93, 0x18, 0x94, 0x16, 0x44, 0x95, 0x14,
96    0x96, 0x12, 0x44, 0x97, 0x10, 0x98, 0x0E, 0x44, 0x99, 0x0C, 0x9A, 0x0A,
97    0x44, 0x9B, 0x08, 0x9C, 0x06, 0x44, 0x9D, 0x04, 0x9E, 0x02, 0x44, 0x05,
98    0x48, 0x28, 0x05, 0x49, 0x26, 0x44, 0x05, 0x4A, 0x24, 0x05, 0x4B, 0x22,
99    0x44, 0x05, 0x4C, 0x20, 0x05, 0x4D, 0x1E, 0x44, 0x05, 0x4E, 0x1C, 0x05,
100    0x4F, 0x1A, 0x58, 0x0E, 0xE0, 0x01, 0x44, 0x0E, 0xC0, 0x01, 0x0A, 0x44,
101    0xD3, 0xD4, 0x44, 0xD5, 0xD6, 0x44, 0xD7, 0xD8, 0x44, 0xD9, 0xDA, 0x44,
102    0xDB, 0xDC, 0x44, 0xDD, 0xDE, 0x44, 0x06, 0x48, 0x06, 0x49, 0x44, 0x06,
103    0x4A, 0x06, 0x4B, 0x44, 0x06, 0x4C, 0x06, 0x4D, 0x44, 0x06, 0x4E, 0x06,
104    0x4F, 0x44, 0x0E, 0x00, 0x44, 0x0B, 0x0E, 0xC0, 0x01,
105};
106// 0x00000000: sub sp, sp, #0xc0 (192)
107// 0x00000004: .cfi_def_cfa_offset: 192
108// 0x00000004: stp tr, x20, [sp, #96]
109// 0x00000008: .cfi_offset: r19 at cfa-96
110// 0x00000008: .cfi_offset: r20 at cfa-88
111// 0x00000008: stp x21, x22, [sp, #112]
112// 0x0000000c: .cfi_offset: r21 at cfa-80
113// 0x0000000c: .cfi_offset: r22 at cfa-72
114// 0x0000000c: stp x23, x24, [sp, #128]
115// 0x00000010: .cfi_offset: r23 at cfa-64
116// 0x00000010: .cfi_offset: r24 at cfa-56
117// 0x00000010: stp x25, x26, [sp, #144]
118// 0x00000014: .cfi_offset: r25 at cfa-48
119// 0x00000014: .cfi_offset: r26 at cfa-40
120// 0x00000014: stp x27, x28, [sp, #160]
121// 0x00000018: .cfi_offset: r27 at cfa-32
122// 0x00000018: .cfi_offset: r28 at cfa-24
123// 0x00000018: stp x29, lr, [sp, #176]
124// 0x0000001c: .cfi_offset: r29 at cfa-16
125// 0x0000001c: .cfi_offset: r30 at cfa-8
126// 0x0000001c: stp d8, d9, [sp, #32]
127// 0x00000020: .cfi_offset_extended: r72 at cfa-160
128// 0x00000020: .cfi_offset_extended: r73 at cfa-152
129// 0x00000020: stp d10, d11, [sp, #48]
130// 0x00000024: .cfi_offset_extended: r74 at cfa-144
131// 0x00000024: .cfi_offset_extended: r75 at cfa-136
132// 0x00000024: stp d12, d13, [sp, #64]
133// 0x00000028: .cfi_offset_extended: r76 at cfa-128
134// 0x00000028: .cfi_offset_extended: r77 at cfa-120
135// 0x00000028: stp d14, d15, [sp, #80]
136// 0x0000002c: .cfi_offset_extended: r78 at cfa-112
137// 0x0000002c: .cfi_offset_extended: r79 at cfa-104
138// 0x0000002c: str x0, [sp]
139// 0x00000030: str w1, [sp, #200]
140// 0x00000034: str s0, [sp, #204]
141// 0x00000038: str w2, [sp, #208]
142// 0x0000003c: str w3, [sp, #212]
143// 0x00000040: sub sp, sp, #0x20 (32)
144// 0x00000044: .cfi_def_cfa_offset: 224
145// 0x00000044: add sp, sp, #0x20 (32)
146// 0x00000048: .cfi_def_cfa_offset: 192
147// 0x00000048: .cfi_remember_state
148// 0x00000048: ldp tr, x20, [sp, #96]
149// 0x0000004c: .cfi_restore: r19
150// 0x0000004c: .cfi_restore: r20
151// 0x0000004c: ldp x21, x22, [sp, #112]
152// 0x00000050: .cfi_restore: r21
153// 0x00000050: .cfi_restore: r22
154// 0x00000050: ldp x23, x24, [sp, #128]
155// 0x00000054: .cfi_restore: r23
156// 0x00000054: .cfi_restore: r24
157// 0x00000054: ldp x25, x26, [sp, #144]
158// 0x00000058: .cfi_restore: r25
159// 0x00000058: .cfi_restore: r26
160// 0x00000058: ldp x27, x28, [sp, #160]
161// 0x0000005c: .cfi_restore: r27
162// 0x0000005c: .cfi_restore: r28
163// 0x0000005c: ldp x29, lr, [sp, #176]
164// 0x00000060: .cfi_restore: r29
165// 0x00000060: .cfi_restore: r30
166// 0x00000060: ldp d8, d9, [sp, #32]
167// 0x00000064: .cfi_restore_extended: r72
168// 0x00000064: .cfi_restore_extended: r73
169// 0x00000064: ldp d10, d11, [sp, #48]
170// 0x00000068: .cfi_restore_extended: r74
171// 0x00000068: .cfi_restore_extended: r75
172// 0x00000068: ldp d12, d13, [sp, #64]
173// 0x0000006c: .cfi_restore_extended: r76
174// 0x0000006c: .cfi_restore_extended: r77
175// 0x0000006c: ldp d14, d15, [sp, #80]
176// 0x00000070: .cfi_restore_extended: r78
177// 0x00000070: .cfi_restore_extended: r79
178// 0x00000070: add sp, sp, #0xc0 (192)
179// 0x00000074: .cfi_def_cfa_offset: 0
180// 0x00000074: ret
181// 0x00000078: .cfi_restore_state
182// 0x00000078: .cfi_def_cfa_offset: 192
183
184static constexpr uint8_t expected_asm_kX86[] = {
185    0x57, 0x56, 0x55, 0x83, 0xC4, 0xE4, 0x50, 0x89, 0x4C, 0x24, 0x34, 0xF3,
186    0x0F, 0x11, 0x44, 0x24, 0x38, 0x89, 0x54, 0x24, 0x3C, 0x89, 0x5C, 0x24,
187    0x40, 0x83, 0xC4, 0xE0, 0x83, 0xC4, 0x20, 0x83, 0xC4, 0x20, 0x5D, 0x5E,
188    0x5F, 0xC3,
189};
190static constexpr uint8_t expected_cfi_kX86[] = {
191    0x41, 0x0E, 0x08, 0x87, 0x02, 0x41, 0x0E, 0x0C, 0x86, 0x03, 0x41, 0x0E,
192    0x10, 0x85, 0x04, 0x43, 0x0E, 0x2C, 0x41, 0x0E, 0x30, 0x55, 0x0E, 0x50,
193    0x43, 0x0E, 0x30, 0x0A, 0x43, 0x0E, 0x10, 0x41, 0x0E, 0x0C, 0xC5, 0x41,
194    0x0E, 0x08, 0xC6, 0x41, 0x0E, 0x04, 0xC7, 0x41, 0x0B, 0x0E, 0x30,
195};
196// 0x00000000: push edi
197// 0x00000001: .cfi_def_cfa_offset: 8
198// 0x00000001: .cfi_offset: r7 at cfa-8
199// 0x00000001: push esi
200// 0x00000002: .cfi_def_cfa_offset: 12
201// 0x00000002: .cfi_offset: r6 at cfa-12
202// 0x00000002: push ebp
203// 0x00000003: .cfi_def_cfa_offset: 16
204// 0x00000003: .cfi_offset: r5 at cfa-16
205// 0x00000003: add esp, -28
206// 0x00000006: .cfi_def_cfa_offset: 44
207// 0x00000006: push eax
208// 0x00000007: .cfi_def_cfa_offset: 48
209// 0x00000007: mov [esp + 52], ecx
210// 0x0000000b: movss [esp + 56], xmm0
211// 0x00000011: mov [esp + 60], edx
212// 0x00000015: mov [esp + 64], ebx
213// 0x00000019: add esp, -32
214// 0x0000001c: .cfi_def_cfa_offset: 80
215// 0x0000001c: add esp, 32
216// 0x0000001f: .cfi_def_cfa_offset: 48
217// 0x0000001f: .cfi_remember_state
218// 0x0000001f: add esp, 32
219// 0x00000022: .cfi_def_cfa_offset: 16
220// 0x00000022: pop ebp
221// 0x00000023: .cfi_def_cfa_offset: 12
222// 0x00000023: .cfi_restore: r5
223// 0x00000023: pop esi
224// 0x00000024: .cfi_def_cfa_offset: 8
225// 0x00000024: .cfi_restore: r6
226// 0x00000024: pop edi
227// 0x00000025: .cfi_def_cfa_offset: 4
228// 0x00000025: .cfi_restore: r7
229// 0x00000025: ret
230// 0x00000026: .cfi_restore_state
231// 0x00000026: .cfi_def_cfa_offset: 48
232
233static constexpr uint8_t expected_asm_kX86_64[] = {
234    0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, 0x55, 0x53, 0x48, 0x83,
235    0xEC, 0x48, 0xF2, 0x44, 0x0F, 0x11, 0x7C, 0x24, 0x40, 0xF2, 0x44, 0x0F,
236    0x11, 0x74, 0x24, 0x38, 0xF2, 0x44, 0x0F, 0x11, 0x6C, 0x24, 0x30, 0xF2,
237    0x44, 0x0F, 0x11, 0x64, 0x24, 0x28, 0x48, 0x89, 0x3C, 0x24, 0x89, 0xB4,
238    0x24, 0x88, 0x00, 0x00, 0x00, 0xF3, 0x0F, 0x11, 0x84, 0x24, 0x8C, 0x00,
239    0x00, 0x00, 0x89, 0x94, 0x24, 0x90, 0x00, 0x00, 0x00, 0x89, 0x8C, 0x24,
240    0x94, 0x00, 0x00, 0x00, 0x48, 0x83, 0xC4, 0xE0, 0x48, 0x83, 0xC4, 0x20,
241    0xF2, 0x44, 0x0F, 0x10, 0x64, 0x24, 0x28, 0xF2, 0x44, 0x0F, 0x10, 0x6C,
242    0x24, 0x30, 0xF2, 0x44, 0x0F, 0x10, 0x74, 0x24, 0x38, 0xF2, 0x44, 0x0F,
243    0x10, 0x7C, 0x24, 0x40, 0x48, 0x83, 0xC4, 0x48, 0x5B, 0x5D, 0x41, 0x5C,
244    0x41, 0x5D, 0x41, 0x5E, 0x41, 0x5F, 0xC3,
245};
246static constexpr uint8_t expected_cfi_kX86_64[] = {
247    0x42, 0x0E, 0x10, 0x8F, 0x04, 0x42, 0x0E, 0x18, 0x8E, 0x06, 0x42, 0x0E,
248    0x20, 0x8D, 0x08, 0x42, 0x0E, 0x28, 0x8C, 0x0A, 0x41, 0x0E, 0x30, 0x86,
249    0x0C, 0x41, 0x0E, 0x38, 0x83, 0x0E, 0x44, 0x0E, 0x80, 0x01, 0x47, 0xA0,
250    0x10, 0x47, 0x9F, 0x12, 0x47, 0x9E, 0x14, 0x47, 0x9D, 0x16, 0x66, 0x0E,
251    0xA0, 0x01, 0x44, 0x0E, 0x80, 0x01, 0x0A, 0x47, 0xDD, 0x47, 0xDE, 0x47,
252    0xDF, 0x47, 0xE0, 0x44, 0x0E, 0x38, 0x41, 0x0E, 0x30, 0xC3, 0x41, 0x0E,
253    0x28, 0xC6, 0x42, 0x0E, 0x20, 0xCC, 0x42, 0x0E, 0x18, 0xCD, 0x42, 0x0E,
254    0x10, 0xCE, 0x42, 0x0E, 0x08, 0xCF, 0x41, 0x0B, 0x0E, 0x80, 0x01,
255};
256// 0x00000000: push r15
257// 0x00000002: .cfi_def_cfa_offset: 16
258// 0x00000002: .cfi_offset: r15 at cfa-16
259// 0x00000002: push r14
260// 0x00000004: .cfi_def_cfa_offset: 24
261// 0x00000004: .cfi_offset: r14 at cfa-24
262// 0x00000004: push r13
263// 0x00000006: .cfi_def_cfa_offset: 32
264// 0x00000006: .cfi_offset: r13 at cfa-32
265// 0x00000006: push r12
266// 0x00000008: .cfi_def_cfa_offset: 40
267// 0x00000008: .cfi_offset: r12 at cfa-40
268// 0x00000008: push rbp
269// 0x00000009: .cfi_def_cfa_offset: 48
270// 0x00000009: .cfi_offset: r6 at cfa-48
271// 0x00000009: push rbx
272// 0x0000000a: .cfi_def_cfa_offset: 56
273// 0x0000000a: .cfi_offset: r3 at cfa-56
274// 0x0000000a: subq rsp, 72
275// 0x0000000e: .cfi_def_cfa_offset: 128
276// 0x0000000e: movsd [rsp + 64], xmm15
277// 0x00000015: .cfi_offset: r32 at cfa-64
278// 0x00000015: movsd [rsp + 56], xmm14
279// 0x0000001c: .cfi_offset: r31 at cfa-72
280// 0x0000001c: movsd [rsp + 48], xmm13
281// 0x00000023: .cfi_offset: r30 at cfa-80
282// 0x00000023: movsd [rsp + 40], xmm12
283// 0x0000002a: .cfi_offset: r29 at cfa-88
284// 0x0000002a: movq [rsp], rdi
285// 0x0000002e: mov [rsp + 136], esi
286// 0x00000035: movss [rsp + 140], xmm0
287// 0x0000003e: mov [rsp + 144], edx
288// 0x00000045: mov [rsp + 148], ecx
289// 0x0000004c: addq rsp, -32
290// 0x00000050: .cfi_def_cfa_offset: 160
291// 0x00000050: addq rsp, 32
292// 0x00000054: .cfi_def_cfa_offset: 128
293// 0x00000054: .cfi_remember_state
294// 0x00000054: movsd xmm12, [rsp + 40]
295// 0x0000005b: .cfi_restore: r29
296// 0x0000005b: movsd xmm13, [rsp + 48]
297// 0x00000062: .cfi_restore: r30
298// 0x00000062: movsd xmm14, [rsp + 56]
299// 0x00000069: .cfi_restore: r31
300// 0x00000069: movsd xmm15, [rsp + 64]
301// 0x00000070: .cfi_restore: r32
302// 0x00000070: addq rsp, 72
303// 0x00000074: .cfi_def_cfa_offset: 56
304// 0x00000074: pop rbx
305// 0x00000075: .cfi_def_cfa_offset: 48
306// 0x00000075: .cfi_restore: r3
307// 0x00000075: pop rbp
308// 0x00000076: .cfi_def_cfa_offset: 40
309// 0x00000076: .cfi_restore: r6
310// 0x00000076: pop r12
311// 0x00000078: .cfi_def_cfa_offset: 32
312// 0x00000078: .cfi_restore: r12
313// 0x00000078: pop r13
314// 0x0000007a: .cfi_def_cfa_offset: 24
315// 0x0000007a: .cfi_restore: r13
316// 0x0000007a: pop r14
317// 0x0000007c: .cfi_def_cfa_offset: 16
318// 0x0000007c: .cfi_restore: r14
319// 0x0000007c: pop r15
320// 0x0000007e: .cfi_def_cfa_offset: 8
321// 0x0000007e: .cfi_restore: r15
322// 0x0000007e: ret
323// 0x0000007f: .cfi_restore_state
324// 0x0000007f: .cfi_def_cfa_offset: 128
325
326static constexpr uint8_t expected_asm_kMips[] = {
327    0xC0, 0xFF, 0xBD, 0x27, 0x3C, 0x00, 0xBF, 0xAF, 0x38, 0x00, 0xBE, 0xAF,
328    0x34, 0x00, 0xB7, 0xAF, 0x30, 0x00, 0xB6, 0xAF, 0x2C, 0x00, 0xB5, 0xAF,
329    0x28, 0x00, 0xB4, 0xAF, 0x24, 0x00, 0xB3, 0xAF, 0x20, 0x00, 0xB2, 0xAF,
330    0x00, 0x00, 0xA4, 0xAF, 0x44, 0x00, 0xA5, 0xAF, 0x48, 0x00, 0xA8, 0xE7,
331    0x4C, 0x00, 0xA6, 0xAF, 0x50, 0x00, 0xA7, 0xAF, 0xE0, 0xFF, 0xBD, 0x27,
332    0x20, 0x00, 0xBD, 0x27, 0x20, 0x00, 0xB2, 0x8F, 0x24, 0x00, 0xB3, 0x8F,
333    0x28, 0x00, 0xB4, 0x8F, 0x2C, 0x00, 0xB5, 0x8F, 0x30, 0x00, 0xB6, 0x8F,
334    0x34, 0x00, 0xB7, 0x8F, 0x38, 0x00, 0xBE, 0x8F, 0x3C, 0x00, 0xBF, 0x8F,
335    0x09, 0x00, 0xE0, 0x03, 0x40, 0x00, 0xBD, 0x27,
336};
337static constexpr uint8_t expected_cfi_kMips[] = {
338    0x44, 0x0E, 0x40, 0x44, 0x9F, 0x01, 0x44, 0x9E, 0x02, 0x44, 0x97, 0x03,
339    0x44, 0x96, 0x04, 0x44, 0x95, 0x05, 0x44, 0x94, 0x06, 0x44, 0x93, 0x07,
340    0x44, 0x92, 0x08, 0x58, 0x0E, 0x60, 0x44, 0x0E, 0x40, 0x0A, 0x44, 0xD2,
341    0x44, 0xD3, 0x44, 0xD4, 0x44, 0xD5, 0x44, 0xD6, 0x44, 0xD7, 0x44, 0xDE,
342    0x44, 0xDF, 0x48, 0x0E, 0x00, 0x0B, 0x0E, 0x40,
343};
344// 0x00000000: addiu r29, r29, -64
345// 0x00000004: .cfi_def_cfa_offset: 64
346// 0x00000004: sw r31, +60(r29)
347// 0x00000008: .cfi_offset: r31 at cfa-4
348// 0x00000008: sw r30, +56(r29)
349// 0x0000000c: .cfi_offset: r30 at cfa-8
350// 0x0000000c: sw r23, +52(r29)
351// 0x00000010: .cfi_offset: r23 at cfa-12
352// 0x00000010: sw r22, +48(r29)
353// 0x00000014: .cfi_offset: r22 at cfa-16
354// 0x00000014: sw r21, +44(r29)
355// 0x00000018: .cfi_offset: r21 at cfa-20
356// 0x00000018: sw r20, +40(r29)
357// 0x0000001c: .cfi_offset: r20 at cfa-24
358// 0x0000001c: sw r19, +36(r29)
359// 0x00000020: .cfi_offset: r19 at cfa-28
360// 0x00000020: sw r18, +32(r29)
361// 0x00000024: .cfi_offset: r18 at cfa-32
362// 0x00000024: sw r4, +0(r29)
363// 0x00000028: sw r5, +68(r29)
364// 0x0000002c: swc1 f8, +72(r29)
365// 0x00000030: sw r6, +76(r29)
366// 0x00000034: sw r7, +80(r29)
367// 0x00000038: addiu r29, r29, -32
368// 0x0000003c: .cfi_def_cfa_offset: 96
369// 0x0000003c: addiu r29, r29, 32
370// 0x00000040: .cfi_def_cfa_offset: 64
371// 0x00000040: .cfi_remember_state
372// 0x00000040: lw r18, +32(r29)
373// 0x00000044: .cfi_restore: r18
374// 0x00000044: lw r19, +36(r29)
375// 0x00000048: .cfi_restore: r19
376// 0x00000048: lw r20, +40(r29)
377// 0x0000004c: .cfi_restore: r20
378// 0x0000004c: lw r21, +44(r29)
379// 0x00000050: .cfi_restore: r21
380// 0x00000050: lw r22, +48(r29)
381// 0x00000054: .cfi_restore: r22
382// 0x00000054: lw r23, +52(r29)
383// 0x00000058: .cfi_restore: r23
384// 0x00000058: lw r30, +56(r29)
385// 0x0000005c: .cfi_restore: r30
386// 0x0000005c: lw r31, +60(r29)
387// 0x00000060: .cfi_restore: r31
388// 0x00000060: jr r31
389// 0x00000064: addiu r29, r29, 64
390// 0x00000068: .cfi_def_cfa_offset: 0
391// 0x00000068: .cfi_restore_state
392// 0x00000068: .cfi_def_cfa_offset: 64
393
394static constexpr uint8_t expected_asm_kMips64[] = {
395    0x90, 0xFF, 0xBD, 0x67, 0x68, 0x00, 0xBF, 0xFF, 0x60, 0x00, 0xBE, 0xFF,
396    0x58, 0x00, 0xBC, 0xFF, 0x50, 0x00, 0xB7, 0xFF, 0x48, 0x00, 0xB6, 0xFF,
397    0x40, 0x00, 0xB5, 0xFF, 0x38, 0x00, 0xB4, 0xFF, 0x30, 0x00, 0xB3, 0xFF,
398    0x28, 0x00, 0xB2, 0xFF, 0x00, 0x00, 0xA4, 0xFF, 0x78, 0x00, 0xA5, 0xAF,
399    0x7C, 0x00, 0xAE, 0xE7, 0x80, 0x00, 0xA7, 0xAF, 0x84, 0x00, 0xA8, 0xAF,
400    0xE0, 0xFF, 0xBD, 0x67, 0x20, 0x00, 0xBD, 0x67, 0x28, 0x00, 0xB2, 0xDF,
401    0x30, 0x00, 0xB3, 0xDF, 0x38, 0x00, 0xB4, 0xDF, 0x40, 0x00, 0xB5, 0xDF,
402    0x48, 0x00, 0xB6, 0xDF, 0x50, 0x00, 0xB7, 0xDF, 0x58, 0x00, 0xBC, 0xDF,
403    0x60, 0x00, 0xBE, 0xDF, 0x68, 0x00, 0xBF, 0xDF, 0x70, 0x00, 0xBD, 0x67,
404    0x09, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x00, 0x00,
405};
406static constexpr uint8_t expected_cfi_kMips64[] = {
407    0x44, 0x0E, 0x70, 0x44, 0x9F, 0x02, 0x44, 0x9E, 0x04, 0x44, 0x9C, 0x06,
408    0x44, 0x97, 0x08, 0x44, 0x96, 0x0A, 0x44, 0x95, 0x0C, 0x44, 0x94, 0x0E,
409    0x44, 0x93, 0x10, 0x44, 0x92, 0x12, 0x58, 0x0E, 0x90, 0x01, 0x44, 0x0E,
410    0x70, 0x0A, 0x44, 0xD2, 0x44, 0xD3, 0x44, 0xD4, 0x44, 0xD5, 0x44, 0xD6,
411    0x44, 0xD7, 0x44, 0xDC, 0x44, 0xDE, 0x44, 0xDF, 0x44, 0x0E, 0x00, 0x48,
412    0x0B, 0x0E, 0x70,
413};
414// 0x00000000: daddiu r29, r29, -112
415// 0x00000004: .cfi_def_cfa_offset: 112
416// 0x00000004: sd r31, +104(r29)
417// 0x00000008: .cfi_offset: r31 at cfa-8
418// 0x00000008: sd r30, +96(r29)
419// 0x0000000c: .cfi_offset: r30 at cfa-16
420// 0x0000000c: sd r28, +88(r29)
421// 0x00000010: .cfi_offset: r28 at cfa-24
422// 0x00000010: sd r23, +80(r29)
423// 0x00000014: .cfi_offset: r23 at cfa-32
424// 0x00000014: sd r22, +72(r29)
425// 0x00000018: .cfi_offset: r22 at cfa-40
426// 0x00000018: sd r21, +64(r29)
427// 0x0000001c: .cfi_offset: r21 at cfa-48
428// 0x0000001c: sd r20, +56(r29)
429// 0x00000020: .cfi_offset: r20 at cfa-56
430// 0x00000020: sd r19, +48(r29)
431// 0x00000024: .cfi_offset: r19 at cfa-64
432// 0x00000024: sd r18, +40(r29)
433// 0x00000028: .cfi_offset: r18 at cfa-72
434// 0x00000028: sd r4, +0(r29)
435// 0x0000002c: sw r5, +120(r29)
436// 0x00000030: swc1 f14, +124(r29)
437// 0x00000034: sw r7, +128(r29)
438// 0x00000038: sw r8, +132(r29)
439// 0x0000003c: daddiu r29, r29, -32
440// 0x00000040: .cfi_def_cfa_offset: 144
441// 0x00000040: daddiu r29, r29, 32
442// 0x00000044: .cfi_def_cfa_offset: 112
443// 0x00000044: .cfi_remember_state
444// 0x00000044: ld r18, +40(r29)
445// 0x00000048: .cfi_restore: r18
446// 0x00000048: ld r19, +48(r29)
447// 0x0000004c: .cfi_restore: r19
448// 0x0000004c: ld r20, +56(r29)
449// 0x00000050: .cfi_restore: r20
450// 0x00000050: ld r21, +64(r29)
451// 0x00000054: .cfi_restore: r21
452// 0x00000054: ld r22, +72(r29)
453// 0x00000058: .cfi_restore: r22
454// 0x00000058: ld r23, +80(r29)
455// 0x0000005c: .cfi_restore: r23
456// 0x0000005c: ld r28, +88(r29)
457// 0x00000060: .cfi_restore: r28
458// 0x00000060: ld r30, +96(r29)
459// 0x00000064: .cfi_restore: r30
460// 0x00000064: ld r31, +104(r29)
461// 0x00000068: .cfi_restore: r31
462// 0x00000068: daddiu r29, r29, 112
463// 0x0000006c: .cfi_def_cfa_offset: 0
464// 0x0000006c: jr r31
465// 0x00000070: nop
466// 0x00000074: .cfi_restore_state
467// 0x00000074: .cfi_def_cfa_offset: 112
468
469