Skip to main content

asmkit/aarch64/
emitter.rs

1#![allow(non_snake_case, non_camel_case_types)]
2use super::{assembler::*, instdb::*, operands::*};
3use crate::core::globals::CondCode;
4use crate::core::operand::*;
5
6pub trait AdcEmitter<T0, T1, T2> {
7    fn adc(&mut self, op0: T0, op1: T1, op2: T2);
8}
9
10pub trait AdcsEmitter<T0, T1, T2> {
11    fn adcs(&mut self, op0: T0, op1: T1, op2: T2);
12}
13
14pub trait AddEmitter<T0, T1, T2> {
15    fn add(&mut self, op0: T0, op1: T1, op2: T2);
16}
17
18pub trait Add4Emitter<T0, T1, T2, T3> {
19    fn add_4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
20}
21
22pub trait AddsEmitter<T0, T1, T2> {
23    fn adds(&mut self, op0: T0, op1: T1, op2: T2);
24}
25
26pub trait Adds4Emitter<T0, T1, T2, T3> {
27    fn adds_4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
28}
29
30pub trait AdrEmitter<T0, T1> {
31    fn adr(&mut self, op0: T0, op1: T1);
32}
33
34pub trait AdrpEmitter<T0, T1> {
35    fn adrp(&mut self, op0: T0, op1: T1);
36}
37
38pub trait AndEmitter<T0, T1, T2> {
39    fn and_(&mut self, op0: T0, op1: T1, op2: T2);
40}
41
42pub trait And4Emitter<T0, T1, T2, T3> {
43    fn and__4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
44}
45
46pub trait AndsEmitter<T0, T1, T2> {
47    fn ands(&mut self, op0: T0, op1: T1, op2: T2);
48}
49
50pub trait Ands4Emitter<T0, T1, T2, T3> {
51    fn ands_4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
52}
53
54pub trait AsrEmitter<T0, T1, T2> {
55    fn asr(&mut self, op0: T0, op1: T1, op2: T2);
56}
57
58pub trait AsrvEmitter<T0, T1, T2> {
59    fn asrv(&mut self, op0: T0, op1: T1, op2: T2);
60}
61
62pub trait AtEmitter<T0, T1> {
63    fn at(&mut self, op0: T0, op1: T1);
64}
65
66pub trait BfcEmitter<T0, T1, T2> {
67    fn bfc(&mut self, op0: T0, op1: T1, op2: T2);
68}
69
70pub trait BfiEmitter<T0, T1, T2, T3> {
71    fn bfi(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
72}
73
74pub trait BfmEmitter<T0, T1, T2, T3> {
75    fn bfm(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
76}
77
78pub trait BfxilEmitter<T0, T1, T2, T3> {
79    fn bfxil(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
80}
81
82pub trait BicEmitter<T0, T1, T2> {
83    fn bic(&mut self, op0: T0, op1: T1, op2: T2);
84}
85
86pub trait Bic4Emitter<T0, T1, T2, T3> {
87    fn bic_4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
88}
89
90pub trait BicsEmitter<T0, T1, T2> {
91    fn bics(&mut self, op0: T0, op1: T1, op2: T2);
92}
93
94pub trait Bics4Emitter<T0, T1, T2, T3> {
95    fn bics_4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
96}
97
98pub trait BrkEmitter<T0> {
99    fn brk(&mut self, op0: T0);
100}
101
102pub trait CcmnEmitter<T0, T1, T2, T3> {
103    fn ccmn(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
104}
105
106pub trait CcmpEmitter<T0, T1, T2, T3> {
107    fn ccmp(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
108}
109
110pub trait CincEmitter<T0, T1, T2> {
111    fn cinc(&mut self, op0: T0, op1: T1, op2: T2);
112}
113
114pub trait CinvEmitter<T0, T1, T2> {
115    fn cinv(&mut self, op0: T0, op1: T1, op2: T2);
116}
117
118pub trait ClrexEmitter<T0> {
119    fn clrex(&mut self, op0: T0);
120}
121
122pub trait ClsEmitter<T0, T1> {
123    fn cls(&mut self, op0: T0, op1: T1);
124}
125
126pub trait ClzEmitter<T0, T1> {
127    fn clz(&mut self, op0: T0, op1: T1);
128}
129
130pub trait CmnEmitter<T0, T1> {
131    fn cmn(&mut self, op0: T0, op1: T1);
132}
133
134pub trait Cmn3Emitter<T0, T1, T2> {
135    fn cmn_3(&mut self, op0: T0, op1: T1, op2: T2);
136}
137
138pub trait CmpEmitter<T0, T1> {
139    fn cmp(&mut self, op0: T0, op1: T1);
140}
141
142pub trait Cmp3Emitter<T0, T1, T2> {
143    fn cmp_3(&mut self, op0: T0, op1: T1, op2: T2);
144}
145
146pub trait CnegEmitter<T0, T1, T2> {
147    fn cneg(&mut self, op0: T0, op1: T1, op2: T2);
148}
149
150pub trait CselEmitter<T0, T1, T2, T3> {
151    fn csel(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
152}
153
154pub trait CsetEmitter<T0, T1> {
155    fn cset(&mut self, op0: T0, op1: T1);
156}
157
158pub trait CsetmEmitter<T0, T1> {
159    fn csetm(&mut self, op0: T0, op1: T1);
160}
161
162pub trait CsincEmitter<T0, T1, T2, T3> {
163    fn csinc(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
164}
165
166pub trait CsinvEmitter<T0, T1, T2, T3> {
167    fn csinv(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
168}
169
170pub trait CsnegEmitter<T0, T1, T2, T3> {
171    fn csneg(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
172}
173
174pub trait DcEmitter<T0, T1> {
175    fn dc(&mut self, op0: T0, op1: T1);
176}
177
178pub trait DmbEmitter<T0> {
179    fn dmb(&mut self, op0: T0);
180}
181
182pub trait DsbEmitter<T0> {
183    fn dsb(&mut self, op0: T0);
184}
185
186pub trait DrpsEmitter {
187    fn drps(&mut self);
188}
189
190pub trait EonEmitter<T0, T1, T2> {
191    fn eon(&mut self, op0: T0, op1: T1, op2: T2);
192}
193
194pub trait Eon4Emitter<T0, T1, T2, T3> {
195    fn eon_4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
196}
197
198pub trait EorEmitter<T0, T1, T2> {
199    fn eor(&mut self, op0: T0, op1: T1, op2: T2);
200}
201
202pub trait Eor4Emitter<T0, T1, T2, T3> {
203    fn eor_4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
204}
205
206pub trait EretEmitter {
207    fn eret(&mut self);
208}
209
210pub trait EsbEmitter {
211    fn esb(&mut self);
212}
213
214pub trait ExtrEmitter<T0, T1, T2, T3> {
215    fn extr(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
216}
217
218pub trait HltEmitter<T0> {
219    fn hlt(&mut self, op0: T0);
220}
221
222pub trait HvcEmitter<T0> {
223    fn hvc(&mut self, op0: T0);
224}
225
226pub trait IcEmitter<T0, T1> {
227    fn ic(&mut self, op0: T0, op1: T1);
228}
229
230pub trait IsbEmitter<T0> {
231    fn isb(&mut self, op0: T0);
232}
233
234pub trait LslEmitter<T0, T1, T2> {
235    fn lsl(&mut self, op0: T0, op1: T1, op2: T2);
236}
237
238pub trait LslvEmitter<T0, T1, T2> {
239    fn lslv(&mut self, op0: T0, op1: T1, op2: T2);
240}
241
242pub trait LsrEmitter<T0, T1, T2> {
243    fn lsr(&mut self, op0: T0, op1: T1, op2: T2);
244}
245
246pub trait LsrvEmitter<T0, T1, T2> {
247    fn lsrv(&mut self, op0: T0, op1: T1, op2: T2);
248}
249
250pub trait MaddEmitter<T0, T1, T2, T3> {
251    fn madd(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
252}
253
254pub trait MnegEmitter<T0, T1, T2> {
255    fn mneg(&mut self, op0: T0, op1: T1, op2: T2);
256}
257
258pub trait MovEmitter<T0, T1> {
259    fn mov(&mut self, op0: T0, op1: T1);
260}
261
262pub trait MovkEmitter<T0, T1> {
263    fn movk(&mut self, op0: T0, op1: T1);
264}
265
266pub trait Movk3Emitter<T0, T1, T2> {
267    fn movk_3(&mut self, op0: T0, op1: T1, op2: T2);
268}
269
270pub trait MovnEmitter<T0, T1> {
271    fn movn(&mut self, op0: T0, op1: T1);
272}
273
274pub trait Movn3Emitter<T0, T1, T2> {
275    fn movn_3(&mut self, op0: T0, op1: T1, op2: T2);
276}
277
278pub trait MovzEmitter<T0, T1> {
279    fn movz(&mut self, op0: T0, op1: T1);
280}
281
282pub trait Movz3Emitter<T0, T1, T2> {
283    fn movz_3(&mut self, op0: T0, op1: T1, op2: T2);
284}
285
286pub trait MrsEmitter<T0, T1> {
287    fn mrs(&mut self, op0: T0, op1: T1);
288}
289
290pub trait MsrEmitter<T0, T1> {
291    fn msr(&mut self, op0: T0, op1: T1);
292}
293
294pub trait MsubEmitter<T0, T1, T2, T3> {
295    fn msub(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
296}
297
298pub trait MulEmitter<T0, T1, T2> {
299    fn mul(&mut self, op0: T0, op1: T1, op2: T2);
300}
301
302pub trait MvnEmitter<T0, T1> {
303    fn mvn(&mut self, op0: T0, op1: T1);
304}
305
306pub trait Mvn3Emitter<T0, T1, T2> {
307    fn mvn_3(&mut self, op0: T0, op1: T1, op2: T2);
308}
309
310pub trait Mvn_Emitter<T0, T1> {
311    fn mvn_(&mut self, op0: T0, op1: T1);
312}
313
314pub trait Mvn_3Emitter<T0, T1, T2> {
315    fn mvn__3(&mut self, op0: T0, op1: T1, op2: T2);
316}
317
318pub trait NegEmitter<T0, T1> {
319    fn neg(&mut self, op0: T0, op1: T1);
320}
321
322pub trait Neg3Emitter<T0, T1, T2> {
323    fn neg_3(&mut self, op0: T0, op1: T1, op2: T2);
324}
325
326pub trait NegsEmitter<T0, T1> {
327    fn negs(&mut self, op0: T0, op1: T1);
328}
329
330pub trait Negs3Emitter<T0, T1, T2> {
331    fn negs_3(&mut self, op0: T0, op1: T1, op2: T2);
332}
333
334pub trait NgcEmitter<T0, T1> {
335    fn ngc(&mut self, op0: T0, op1: T1);
336}
337
338pub trait NgcsEmitter<T0, T1> {
339    fn ngcs(&mut self, op0: T0, op1: T1);
340}
341
342pub trait OrnEmitter<T0, T1, T2> {
343    fn orn(&mut self, op0: T0, op1: T1, op2: T2);
344}
345
346pub trait Orn4Emitter<T0, T1, T2, T3> {
347    fn orn_4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
348}
349
350pub trait OrrEmitter<T0, T1, T2> {
351    fn orr(&mut self, op0: T0, op1: T1, op2: T2);
352}
353
354pub trait Orr4Emitter<T0, T1, T2, T3> {
355    fn orr_4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
356}
357
358pub trait RbitEmitter<T0, T1> {
359    fn rbit(&mut self, op0: T0, op1: T1);
360}
361
362pub trait RetEmitter<T0> {
363    fn ret(&mut self, op0: T0);
364}
365
366pub trait RevEmitter<T0, T1> {
367    fn rev(&mut self, op0: T0, op1: T1);
368}
369
370pub trait Rev16Emitter<T0, T1> {
371    fn rev16(&mut self, op0: T0, op1: T1);
372}
373
374pub trait Rev32Emitter<T0, T1> {
375    fn rev32(&mut self, op0: T0, op1: T1);
376}
377
378pub trait Rev64Emitter<T0, T1> {
379    fn rev64(&mut self, op0: T0, op1: T1);
380}
381
382pub trait RorEmitter<T0, T1, T2> {
383    fn ror(&mut self, op0: T0, op1: T1, op2: T2);
384}
385
386pub trait RorvEmitter<T0, T1, T2> {
387    fn rorv(&mut self, op0: T0, op1: T1, op2: T2);
388}
389
390pub trait SbcEmitter<T0, T1, T2> {
391    fn sbc(&mut self, op0: T0, op1: T1, op2: T2);
392}
393
394pub trait SbcsEmitter<T0, T1, T2> {
395    fn sbcs(&mut self, op0: T0, op1: T1, op2: T2);
396}
397
398pub trait SbfizEmitter<T0, T1, T2, T3> {
399    fn sbfiz(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
400}
401
402pub trait SbfmEmitter<T0, T1, T2, T3> {
403    fn sbfm(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
404}
405
406pub trait SbfxEmitter<T0, T1, T2, T3> {
407    fn sbfx(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
408}
409
410pub trait SdivEmitter<T0, T1, T2> {
411    fn sdiv(&mut self, op0: T0, op1: T1, op2: T2);
412}
413
414pub trait SmaddlEmitter<T0, T1, T2, T3> {
415    fn smaddl(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
416}
417
418pub trait SmcEmitter<T0> {
419    fn smc(&mut self, op0: T0);
420}
421
422pub trait SmneglEmitter<T0, T1, T2> {
423    fn smnegl(&mut self, op0: T0, op1: T1, op2: T2);
424}
425
426pub trait SmsublEmitter<T0, T1, T2, T3> {
427    fn smsubl(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
428}
429
430pub trait SmulhEmitter<T0, T1, T2> {
431    fn smulh(&mut self, op0: T0, op1: T1, op2: T2);
432}
433
434pub trait SmullEmitter<T0, T1, T2> {
435    fn smull(&mut self, op0: T0, op1: T1, op2: T2);
436}
437
438pub trait SubEmitter<T0, T1, T2> {
439    fn sub(&mut self, op0: T0, op1: T1, op2: T2);
440}
441
442pub trait Sub4Emitter<T0, T1, T2, T3> {
443    fn sub_4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
444}
445
446pub trait SubsEmitter<T0, T1, T2> {
447    fn subs(&mut self, op0: T0, op1: T1, op2: T2);
448}
449
450pub trait Subs4Emitter<T0, T1, T2, T3> {
451    fn subs_4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
452}
453
454pub trait SvcEmitter<T0> {
455    fn svc(&mut self, op0: T0);
456}
457
458pub trait SxtbEmitter<T0, T1> {
459    fn sxtb(&mut self, op0: T0, op1: T1);
460}
461
462pub trait SxthEmitter<T0, T1> {
463    fn sxth(&mut self, op0: T0, op1: T1);
464}
465
466pub trait SxtwEmitter<T0, T1> {
467    fn sxtw(&mut self, op0: T0, op1: T1);
468}
469
470pub trait SysEmitter<T0, T1, T2, T3> {
471    fn sys(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
472}
473
474pub trait Sys5Emitter<T0, T1, T2, T3, T4> {
475    fn sys_5(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4);
476}
477
478pub trait TlbiEmitter<T0, T1> {
479    fn tlbi(&mut self, op0: T0, op1: T1);
480}
481
482pub trait TstEmitter<T0, T1> {
483    fn tst(&mut self, op0: T0, op1: T1);
484}
485
486pub trait Tst3Emitter<T0, T1, T2> {
487    fn tst_3(&mut self, op0: T0, op1: T1, op2: T2);
488}
489
490pub trait UdivEmitter<T0, T1, T2> {
491    fn udiv(&mut self, op0: T0, op1: T1, op2: T2);
492}
493
494pub trait UbfizEmitter<T0, T1, T2, T3> {
495    fn ubfiz(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
496}
497
498pub trait UbfmEmitter<T0, T1, T2, T3> {
499    fn ubfm(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
500}
501
502pub trait UbfxEmitter<T0, T1, T2, T3> {
503    fn ubfx(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
504}
505
506pub trait UmaddlEmitter<T0, T1, T2, T3> {
507    fn umaddl(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
508}
509
510pub trait UmneglEmitter<T0, T1, T2> {
511    fn umnegl(&mut self, op0: T0, op1: T1, op2: T2);
512}
513
514pub trait UmsublEmitter<T0, T1, T2, T3> {
515    fn umsubl(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
516}
517
518pub trait UmullEmitter<T0, T1, T2> {
519    fn umull(&mut self, op0: T0, op1: T1, op2: T2);
520}
521
522pub trait UmulhEmitter<T0, T1, T2> {
523    fn umulh(&mut self, op0: T0, op1: T1, op2: T2);
524}
525
526pub trait UxtbEmitter<T0, T1> {
527    fn uxtb(&mut self, op0: T0, op1: T1);
528}
529
530pub trait UxthEmitter<T0, T1> {
531    fn uxth(&mut self, op0: T0, op1: T1);
532}
533
534pub trait CsdbEmitter {
535    fn csdb(&mut self);
536}
537
538pub trait Dcps1Emitter<T0> {
539    fn dcps1(&mut self, op0: T0);
540}
541
542pub trait Dcps2Emitter<T0> {
543    fn dcps2(&mut self, op0: T0);
544}
545
546pub trait Dcps3Emitter<T0> {
547    fn dcps3(&mut self, op0: T0);
548}
549
550pub trait PssbbEmitter {
551    fn pssbb(&mut self);
552}
553
554pub trait SsbbEmitter {
555    fn ssbb(&mut self);
556}
557
558pub trait UdfEmitter<T0> {
559    fn udf(&mut self, op0: T0);
560}
561
562pub trait BEmitter<T0> {
563    fn b(&mut self, op0: T0);
564    fn b_eq(&mut self, op0: T0);
565    fn b_ne(&mut self, op0: T0);
566    fn b_cs(&mut self, op0: T0);
567    fn b_hs(&mut self, op0: T0);
568    fn b_cc(&mut self, op0: T0);
569    fn b_lo(&mut self, op0: T0);
570    fn b_mi(&mut self, op0: T0);
571    fn b_pl(&mut self, op0: T0);
572    fn b_vs(&mut self, op0: T0);
573    fn b_vc(&mut self, op0: T0);
574    fn b_hi(&mut self, op0: T0);
575    fn b_ls(&mut self, op0: T0);
576    fn b_ge(&mut self, op0: T0);
577    fn b_lt(&mut self, op0: T0);
578    fn b_gt(&mut self, op0: T0);
579    fn b_le(&mut self, op0: T0);
580    fn b_al(&mut self, op0: T0);
581}
582
583pub trait BlEmitter<T0> {
584    fn bl(&mut self, op0: T0);
585}
586
587pub trait BlrEmitter<T0> {
588    fn blr(&mut self, op0: T0);
589}
590
591pub trait BrEmitter<T0> {
592    fn br(&mut self, op0: T0);
593}
594
595pub trait CbzEmitter<T0, T1> {
596    fn cbz(&mut self, op0: T0, op1: T1);
597}
598
599pub trait CbnzEmitter<T0, T1> {
600    fn cbnz(&mut self, op0: T0, op1: T1);
601}
602
603pub trait TbnzEmitter<T0, T1, T2> {
604    fn tbnz(&mut self, op0: T0, op1: T1, op2: T2);
605}
606
607pub trait TbzEmitter<T0, T1, T2> {
608    fn tbz(&mut self, op0: T0, op1: T1, op2: T2);
609}
610
611pub trait CasEmitter<T0, T1, T2> {
612    fn cas(&mut self, op0: T0, op1: T1, op2: T2);
613}
614
615pub trait CasaEmitter<T0, T1, T2> {
616    fn casa(&mut self, op0: T0, op1: T1, op2: T2);
617}
618
619pub trait CasabEmitter<T0, T1, T2> {
620    fn casab(&mut self, op0: T0, op1: T1, op2: T2);
621}
622
623pub trait CasahEmitter<T0, T1, T2> {
624    fn casah(&mut self, op0: T0, op1: T1, op2: T2);
625}
626
627pub trait CasalEmitter<T0, T1, T2> {
628    fn casal(&mut self, op0: T0, op1: T1, op2: T2);
629}
630
631pub trait CasalbEmitter<T0, T1, T2> {
632    fn casalb(&mut self, op0: T0, op1: T1, op2: T2);
633}
634
635pub trait CasalhEmitter<T0, T1, T2> {
636    fn casalh(&mut self, op0: T0, op1: T1, op2: T2);
637}
638
639pub trait CasbEmitter<T0, T1, T2> {
640    fn casb(&mut self, op0: T0, op1: T1, op2: T2);
641}
642
643pub trait CashEmitter<T0, T1, T2> {
644    fn cash(&mut self, op0: T0, op1: T1, op2: T2);
645}
646
647pub trait CaslEmitter<T0, T1, T2> {
648    fn casl(&mut self, op0: T0, op1: T1, op2: T2);
649}
650
651pub trait CaslbEmitter<T0, T1, T2> {
652    fn caslb(&mut self, op0: T0, op1: T1, op2: T2);
653}
654
655pub trait CaslhEmitter<T0, T1, T2> {
656    fn caslh(&mut self, op0: T0, op1: T1, op2: T2);
657}
658
659pub trait CaspEmitter<T0, T1, T2, T3, T4> {
660    fn casp(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4);
661}
662
663pub trait CaspaEmitter<T0, T1, T2, T3, T4> {
664    fn caspa(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4);
665}
666
667pub trait CaspalEmitter<T0, T1, T2, T3, T4> {
668    fn caspal(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4);
669}
670
671pub trait CasplEmitter<T0, T1, T2, T3, T4> {
672    fn caspl(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4);
673}
674
675pub trait LdaddEmitter<T0, T1, T2> {
676    fn ldadd(&mut self, op0: T0, op1: T1, op2: T2);
677}
678
679pub trait LdaddaEmitter<T0, T1, T2> {
680    fn ldadda(&mut self, op0: T0, op1: T1, op2: T2);
681}
682
683pub trait LdaddabEmitter<T0, T1, T2> {
684    fn ldaddab(&mut self, op0: T0, op1: T1, op2: T2);
685}
686
687pub trait LdaddahEmitter<T0, T1, T2> {
688    fn ldaddah(&mut self, op0: T0, op1: T1, op2: T2);
689}
690
691pub trait LdaddalEmitter<T0, T1, T2> {
692    fn ldaddal(&mut self, op0: T0, op1: T1, op2: T2);
693}
694
695pub trait LdaddalbEmitter<T0, T1, T2> {
696    fn ldaddalb(&mut self, op0: T0, op1: T1, op2: T2);
697}
698
699pub trait LdaddalhEmitter<T0, T1, T2> {
700    fn ldaddalh(&mut self, op0: T0, op1: T1, op2: T2);
701}
702
703pub trait LdaddbEmitter<T0, T1, T2> {
704    fn ldaddb(&mut self, op0: T0, op1: T1, op2: T2);
705}
706
707pub trait LdaddhEmitter<T0, T1, T2> {
708    fn ldaddh(&mut self, op0: T0, op1: T1, op2: T2);
709}
710
711pub trait LdaddlEmitter<T0, T1, T2> {
712    fn ldaddl(&mut self, op0: T0, op1: T1, op2: T2);
713}
714
715pub trait LdaddlbEmitter<T0, T1, T2> {
716    fn ldaddlb(&mut self, op0: T0, op1: T1, op2: T2);
717}
718
719pub trait LdaddlhEmitter<T0, T1, T2> {
720    fn ldaddlh(&mut self, op0: T0, op1: T1, op2: T2);
721}
722
723pub trait LdarEmitter<T0, T1> {
724    fn ldar(&mut self, op0: T0, op1: T1);
725}
726
727pub trait LdarbEmitter<T0, T1> {
728    fn ldarb(&mut self, op0: T0, op1: T1);
729}
730
731pub trait LdarhEmitter<T0, T1> {
732    fn ldarh(&mut self, op0: T0, op1: T1);
733}
734
735pub trait LdaxrEmitter<T0, T1> {
736    fn ldaxr(&mut self, op0: T0, op1: T1);
737}
738
739pub trait LdaxrbEmitter<T0, T1> {
740    fn ldaxrb(&mut self, op0: T0, op1: T1);
741}
742
743pub trait LdaxrhEmitter<T0, T1> {
744    fn ldaxrh(&mut self, op0: T0, op1: T1);
745}
746
747pub trait LdclrEmitter<T0, T1, T2> {
748    fn ldclr(&mut self, op0: T0, op1: T1, op2: T2);
749}
750
751pub trait LdclraEmitter<T0, T1, T2> {
752    fn ldclra(&mut self, op0: T0, op1: T1, op2: T2);
753}
754
755pub trait LdclrabEmitter<T0, T1, T2> {
756    fn ldclrab(&mut self, op0: T0, op1: T1, op2: T2);
757}
758
759pub trait LdclrahEmitter<T0, T1, T2> {
760    fn ldclrah(&mut self, op0: T0, op1: T1, op2: T2);
761}
762
763pub trait LdclralEmitter<T0, T1, T2> {
764    fn ldclral(&mut self, op0: T0, op1: T1, op2: T2);
765}
766
767pub trait LdclralbEmitter<T0, T1, T2> {
768    fn ldclralb(&mut self, op0: T0, op1: T1, op2: T2);
769}
770
771pub trait LdclralhEmitter<T0, T1, T2> {
772    fn ldclralh(&mut self, op0: T0, op1: T1, op2: T2);
773}
774
775pub trait LdclrbEmitter<T0, T1, T2> {
776    fn ldclrb(&mut self, op0: T0, op1: T1, op2: T2);
777}
778
779pub trait LdclrhEmitter<T0, T1, T2> {
780    fn ldclrh(&mut self, op0: T0, op1: T1, op2: T2);
781}
782
783pub trait LdclrlEmitter<T0, T1, T2> {
784    fn ldclrl(&mut self, op0: T0, op1: T1, op2: T2);
785}
786
787pub trait LdclrlbEmitter<T0, T1, T2> {
788    fn ldclrlb(&mut self, op0: T0, op1: T1, op2: T2);
789}
790
791pub trait LdclrlhEmitter<T0, T1, T2> {
792    fn ldclrlh(&mut self, op0: T0, op1: T1, op2: T2);
793}
794
795pub trait LdeorEmitter<T0, T1, T2> {
796    fn ldeor(&mut self, op0: T0, op1: T1, op2: T2);
797}
798
799pub trait LdeoraEmitter<T0, T1, T2> {
800    fn ldeora(&mut self, op0: T0, op1: T1, op2: T2);
801}
802
803pub trait LdeorabEmitter<T0, T1, T2> {
804    fn ldeorab(&mut self, op0: T0, op1: T1, op2: T2);
805}
806
807pub trait LdeorahEmitter<T0, T1, T2> {
808    fn ldeorah(&mut self, op0: T0, op1: T1, op2: T2);
809}
810
811pub trait LdeoralEmitter<T0, T1, T2> {
812    fn ldeoral(&mut self, op0: T0, op1: T1, op2: T2);
813}
814
815pub trait LdeoralbEmitter<T0, T1, T2> {
816    fn ldeoralb(&mut self, op0: T0, op1: T1, op2: T2);
817}
818
819pub trait LdeoralhEmitter<T0, T1, T2> {
820    fn ldeoralh(&mut self, op0: T0, op1: T1, op2: T2);
821}
822
823pub trait LdeorbEmitter<T0, T1, T2> {
824    fn ldeorb(&mut self, op0: T0, op1: T1, op2: T2);
825}
826
827pub trait LdeorhEmitter<T0, T1, T2> {
828    fn ldeorh(&mut self, op0: T0, op1: T1, op2: T2);
829}
830
831pub trait LdeorlEmitter<T0, T1, T2> {
832    fn ldeorl(&mut self, op0: T0, op1: T1, op2: T2);
833}
834
835pub trait LdeorlbEmitter<T0, T1, T2> {
836    fn ldeorlb(&mut self, op0: T0, op1: T1, op2: T2);
837}
838
839pub trait LdeorlhEmitter<T0, T1, T2> {
840    fn ldeorlh(&mut self, op0: T0, op1: T1, op2: T2);
841}
842
843pub trait LdlarEmitter<T0, T1> {
844    fn ldlar(&mut self, op0: T0, op1: T1);
845}
846
847pub trait LdlarbEmitter<T0, T1> {
848    fn ldlarb(&mut self, op0: T0, op1: T1);
849}
850
851pub trait LdlarhEmitter<T0, T1> {
852    fn ldlarh(&mut self, op0: T0, op1: T1);
853}
854
855pub trait LdnpEmitter<T0, T1, T2> {
856    fn ldnp(&mut self, op0: T0, op1: T1, op2: T2);
857}
858
859pub trait LdpEmitter<T0, T1, T2> {
860    fn ldp(&mut self, op0: T0, op1: T1, op2: T2);
861}
862
863pub trait LdpswEmitter<T0, T1, T2> {
864    fn ldpsw(&mut self, op0: T0, op1: T1, op2: T2);
865}
866
867pub trait LdrEmitter<T0, T1> {
868    fn ldr(&mut self, op0: T0, op1: T1);
869}
870
871pub trait LdrbEmitter<T0, T1> {
872    fn ldrb(&mut self, op0: T0, op1: T1);
873}
874
875pub trait LdrhEmitter<T0, T1> {
876    fn ldrh(&mut self, op0: T0, op1: T1);
877}
878
879pub trait LdrsbEmitter<T0, T1> {
880    fn ldrsb(&mut self, op0: T0, op1: T1);
881}
882
883pub trait LdrshEmitter<T0, T1> {
884    fn ldrsh(&mut self, op0: T0, op1: T1);
885}
886
887pub trait LdrswEmitter<T0, T1> {
888    fn ldrsw(&mut self, op0: T0, op1: T1);
889}
890
891pub trait LdsetEmitter<T0, T1, T2> {
892    fn ldset(&mut self, op0: T0, op1: T1, op2: T2);
893}
894
895pub trait LdsetaEmitter<T0, T1, T2> {
896    fn ldseta(&mut self, op0: T0, op1: T1, op2: T2);
897}
898
899pub trait LdsetabEmitter<T0, T1, T2> {
900    fn ldsetab(&mut self, op0: T0, op1: T1, op2: T2);
901}
902
903pub trait LdsetahEmitter<T0, T1, T2> {
904    fn ldsetah(&mut self, op0: T0, op1: T1, op2: T2);
905}
906
907pub trait LdsetalEmitter<T0, T1, T2> {
908    fn ldsetal(&mut self, op0: T0, op1: T1, op2: T2);
909}
910
911pub trait LdsetalbEmitter<T0, T1, T2> {
912    fn ldsetalb(&mut self, op0: T0, op1: T1, op2: T2);
913}
914
915pub trait LdsetalhEmitter<T0, T1, T2> {
916    fn ldsetalh(&mut self, op0: T0, op1: T1, op2: T2);
917}
918
919pub trait LdsetbEmitter<T0, T1, T2> {
920    fn ldsetb(&mut self, op0: T0, op1: T1, op2: T2);
921}
922
923pub trait LdsethEmitter<T0, T1, T2> {
924    fn ldseth(&mut self, op0: T0, op1: T1, op2: T2);
925}
926
927pub trait LdsetlEmitter<T0, T1, T2> {
928    fn ldsetl(&mut self, op0: T0, op1: T1, op2: T2);
929}
930
931pub trait LdsetlbEmitter<T0, T1, T2> {
932    fn ldsetlb(&mut self, op0: T0, op1: T1, op2: T2);
933}
934
935pub trait LdsetlhEmitter<T0, T1, T2> {
936    fn ldsetlh(&mut self, op0: T0, op1: T1, op2: T2);
937}
938
939pub trait LdsmaxEmitter<T0, T1, T2> {
940    fn ldsmax(&mut self, op0: T0, op1: T1, op2: T2);
941}
942
943pub trait LdsmaxaEmitter<T0, T1, T2> {
944    fn ldsmaxa(&mut self, op0: T0, op1: T1, op2: T2);
945}
946
947pub trait LdsmaxabEmitter<T0, T1, T2> {
948    fn ldsmaxab(&mut self, op0: T0, op1: T1, op2: T2);
949}
950
951pub trait LdsmaxahEmitter<T0, T1, T2> {
952    fn ldsmaxah(&mut self, op0: T0, op1: T1, op2: T2);
953}
954
955pub trait LdsmaxalEmitter<T0, T1, T2> {
956    fn ldsmaxal(&mut self, op0: T0, op1: T1, op2: T2);
957}
958
959pub trait LdsmaxalbEmitter<T0, T1, T2> {
960    fn ldsmaxalb(&mut self, op0: T0, op1: T1, op2: T2);
961}
962
963pub trait LdsmaxalhEmitter<T0, T1, T2> {
964    fn ldsmaxalh(&mut self, op0: T0, op1: T1, op2: T2);
965}
966
967pub trait LdsmaxbEmitter<T0, T1, T2> {
968    fn ldsmaxb(&mut self, op0: T0, op1: T1, op2: T2);
969}
970
971pub trait LdsmaxhEmitter<T0, T1, T2> {
972    fn ldsmaxh(&mut self, op0: T0, op1: T1, op2: T2);
973}
974
975pub trait LdsmaxlEmitter<T0, T1, T2> {
976    fn ldsmaxl(&mut self, op0: T0, op1: T1, op2: T2);
977}
978
979pub trait LdsmaxlbEmitter<T0, T1, T2> {
980    fn ldsmaxlb(&mut self, op0: T0, op1: T1, op2: T2);
981}
982
983pub trait LdsmaxlhEmitter<T0, T1, T2> {
984    fn ldsmaxlh(&mut self, op0: T0, op1: T1, op2: T2);
985}
986
987pub trait LdsminEmitter<T0, T1, T2> {
988    fn ldsmin(&mut self, op0: T0, op1: T1, op2: T2);
989}
990
991pub trait LdsminaEmitter<T0, T1, T2> {
992    fn ldsmina(&mut self, op0: T0, op1: T1, op2: T2);
993}
994
995pub trait LdsminabEmitter<T0, T1, T2> {
996    fn ldsminab(&mut self, op0: T0, op1: T1, op2: T2);
997}
998
999pub trait LdsminahEmitter<T0, T1, T2> {
1000    fn ldsminah(&mut self, op0: T0, op1: T1, op2: T2);
1001}
1002
1003pub trait LdsminalEmitter<T0, T1, T2> {
1004    fn ldsminal(&mut self, op0: T0, op1: T1, op2: T2);
1005}
1006
1007pub trait LdsminalbEmitter<T0, T1, T2> {
1008    fn ldsminalb(&mut self, op0: T0, op1: T1, op2: T2);
1009}
1010
1011pub trait LdsminalhEmitter<T0, T1, T2> {
1012    fn ldsminalh(&mut self, op0: T0, op1: T1, op2: T2);
1013}
1014
1015pub trait LdsminbEmitter<T0, T1, T2> {
1016    fn ldsminb(&mut self, op0: T0, op1: T1, op2: T2);
1017}
1018
1019pub trait LdsminhEmitter<T0, T1, T2> {
1020    fn ldsminh(&mut self, op0: T0, op1: T1, op2: T2);
1021}
1022
1023pub trait LdsminlEmitter<T0, T1, T2> {
1024    fn ldsminl(&mut self, op0: T0, op1: T1, op2: T2);
1025}
1026
1027pub trait LdsminlbEmitter<T0, T1, T2> {
1028    fn ldsminlb(&mut self, op0: T0, op1: T1, op2: T2);
1029}
1030
1031pub trait LdsminlhEmitter<T0, T1, T2> {
1032    fn ldsminlh(&mut self, op0: T0, op1: T1, op2: T2);
1033}
1034
1035pub trait LdtrEmitter<T0, T1> {
1036    fn ldtr(&mut self, op0: T0, op1: T1);
1037}
1038
1039pub trait LdtrbEmitter<T0, T1> {
1040    fn ldtrb(&mut self, op0: T0, op1: T1);
1041}
1042
1043pub trait LdtrhEmitter<T0, T1> {
1044    fn ldtrh(&mut self, op0: T0, op1: T1);
1045}
1046
1047pub trait LdtrsbEmitter<T0, T1> {
1048    fn ldtrsb(&mut self, op0: T0, op1: T1);
1049}
1050
1051pub trait LdtrshEmitter<T0, T1> {
1052    fn ldtrsh(&mut self, op0: T0, op1: T1);
1053}
1054
1055pub trait LdtrswEmitter<T0, T1> {
1056    fn ldtrsw(&mut self, op0: T0, op1: T1);
1057}
1058
1059pub trait LdumaxEmitter<T0, T1, T2> {
1060    fn ldumax(&mut self, op0: T0, op1: T1, op2: T2);
1061}
1062
1063pub trait LdumaxaEmitter<T0, T1, T2> {
1064    fn ldumaxa(&mut self, op0: T0, op1: T1, op2: T2);
1065}
1066
1067pub trait LdumaxabEmitter<T0, T1, T2> {
1068    fn ldumaxab(&mut self, op0: T0, op1: T1, op2: T2);
1069}
1070
1071pub trait LdumaxahEmitter<T0, T1, T2> {
1072    fn ldumaxah(&mut self, op0: T0, op1: T1, op2: T2);
1073}
1074
1075pub trait LdumaxalEmitter<T0, T1, T2> {
1076    fn ldumaxal(&mut self, op0: T0, op1: T1, op2: T2);
1077}
1078
1079pub trait LdumaxalbEmitter<T0, T1, T2> {
1080    fn ldumaxalb(&mut self, op0: T0, op1: T1, op2: T2);
1081}
1082
1083pub trait LdumaxalhEmitter<T0, T1, T2> {
1084    fn ldumaxalh(&mut self, op0: T0, op1: T1, op2: T2);
1085}
1086
1087pub trait LdumaxbEmitter<T0, T1, T2> {
1088    fn ldumaxb(&mut self, op0: T0, op1: T1, op2: T2);
1089}
1090
1091pub trait LdumaxhEmitter<T0, T1, T2> {
1092    fn ldumaxh(&mut self, op0: T0, op1: T1, op2: T2);
1093}
1094
1095pub trait LdumaxlEmitter<T0, T1, T2> {
1096    fn ldumaxl(&mut self, op0: T0, op1: T1, op2: T2);
1097}
1098
1099pub trait LdumaxlbEmitter<T0, T1, T2> {
1100    fn ldumaxlb(&mut self, op0: T0, op1: T1, op2: T2);
1101}
1102
1103pub trait LdumaxlhEmitter<T0, T1, T2> {
1104    fn ldumaxlh(&mut self, op0: T0, op1: T1, op2: T2);
1105}
1106
1107pub trait LduminEmitter<T0, T1, T2> {
1108    fn ldumin(&mut self, op0: T0, op1: T1, op2: T2);
1109}
1110
1111pub trait LduminaEmitter<T0, T1, T2> {
1112    fn ldumina(&mut self, op0: T0, op1: T1, op2: T2);
1113}
1114
1115pub trait LduminabEmitter<T0, T1, T2> {
1116    fn lduminab(&mut self, op0: T0, op1: T1, op2: T2);
1117}
1118
1119pub trait LduminahEmitter<T0, T1, T2> {
1120    fn lduminah(&mut self, op0: T0, op1: T1, op2: T2);
1121}
1122
1123pub trait LduminalEmitter<T0, T1, T2> {
1124    fn lduminal(&mut self, op0: T0, op1: T1, op2: T2);
1125}
1126
1127pub trait LduminalbEmitter<T0, T1, T2> {
1128    fn lduminalb(&mut self, op0: T0, op1: T1, op2: T2);
1129}
1130
1131pub trait LduminalhEmitter<T0, T1, T2> {
1132    fn lduminalh(&mut self, op0: T0, op1: T1, op2: T2);
1133}
1134
1135pub trait LduminbEmitter<T0, T1, T2> {
1136    fn lduminb(&mut self, op0: T0, op1: T1, op2: T2);
1137}
1138
1139pub trait LduminhEmitter<T0, T1, T2> {
1140    fn lduminh(&mut self, op0: T0, op1: T1, op2: T2);
1141}
1142
1143pub trait LduminlEmitter<T0, T1, T2> {
1144    fn lduminl(&mut self, op0: T0, op1: T1, op2: T2);
1145}
1146
1147pub trait LduminlbEmitter<T0, T1, T2> {
1148    fn lduminlb(&mut self, op0: T0, op1: T1, op2: T2);
1149}
1150
1151pub trait LduminlhEmitter<T0, T1, T2> {
1152    fn lduminlh(&mut self, op0: T0, op1: T1, op2: T2);
1153}
1154
1155pub trait LdurEmitter<T0, T1> {
1156    fn ldur(&mut self, op0: T0, op1: T1);
1157}
1158
1159pub trait LdurbEmitter<T0, T1> {
1160    fn ldurb(&mut self, op0: T0, op1: T1);
1161}
1162
1163pub trait LdurhEmitter<T0, T1> {
1164    fn ldurh(&mut self, op0: T0, op1: T1);
1165}
1166
1167pub trait LdursbEmitter<T0, T1> {
1168    fn ldursb(&mut self, op0: T0, op1: T1);
1169}
1170
1171pub trait LdurshEmitter<T0, T1> {
1172    fn ldursh(&mut self, op0: T0, op1: T1);
1173}
1174
1175pub trait LdurswEmitter<T0, T1> {
1176    fn ldursw(&mut self, op0: T0, op1: T1);
1177}
1178
1179pub trait LdxpEmitter<T0, T1, T2> {
1180    fn ldxp(&mut self, op0: T0, op1: T1, op2: T2);
1181}
1182
1183pub trait LdaxpEmitter<T0, T1, T2> {
1184    fn ldaxp(&mut self, op0: T0, op1: T1, op2: T2);
1185}
1186
1187pub trait LdxrEmitter<T0, T1> {
1188    fn ldxr(&mut self, op0: T0, op1: T1);
1189}
1190
1191pub trait LdxrbEmitter<T0, T1> {
1192    fn ldxrb(&mut self, op0: T0, op1: T1);
1193}
1194
1195pub trait LdxrhEmitter<T0, T1> {
1196    fn ldxrh(&mut self, op0: T0, op1: T1);
1197}
1198
1199pub trait PrfmEmitter<T0, T1> {
1200    fn prfm(&mut self, op0: T0, op1: T1);
1201}
1202
1203pub trait StaddEmitter<T0, T1> {
1204    fn stadd(&mut self, op0: T0, op1: T1);
1205}
1206
1207pub trait StaddbEmitter<T0, T1> {
1208    fn staddb(&mut self, op0: T0, op1: T1);
1209}
1210
1211pub trait StaddhEmitter<T0, T1> {
1212    fn staddh(&mut self, op0: T0, op1: T1);
1213}
1214
1215pub trait StaddlEmitter<T0, T1> {
1216    fn staddl(&mut self, op0: T0, op1: T1);
1217}
1218
1219pub trait StaddlbEmitter<T0, T1> {
1220    fn staddlb(&mut self, op0: T0, op1: T1);
1221}
1222
1223pub trait StaddlhEmitter<T0, T1> {
1224    fn staddlh(&mut self, op0: T0, op1: T1);
1225}
1226
1227pub trait StclrEmitter<T0, T1> {
1228    fn stclr(&mut self, op0: T0, op1: T1);
1229}
1230
1231pub trait StclrbEmitter<T0, T1> {
1232    fn stclrb(&mut self, op0: T0, op1: T1);
1233}
1234
1235pub trait StclrhEmitter<T0, T1> {
1236    fn stclrh(&mut self, op0: T0, op1: T1);
1237}
1238
1239pub trait StclrlEmitter<T0, T1> {
1240    fn stclrl(&mut self, op0: T0, op1: T1);
1241}
1242
1243pub trait StclrlbEmitter<T0, T1> {
1244    fn stclrlb(&mut self, op0: T0, op1: T1);
1245}
1246
1247pub trait StclrlhEmitter<T0, T1> {
1248    fn stclrlh(&mut self, op0: T0, op1: T1);
1249}
1250
1251pub trait SteorEmitter<T0, T1> {
1252    fn steor(&mut self, op0: T0, op1: T1);
1253}
1254
1255pub trait SteorbEmitter<T0, T1> {
1256    fn steorb(&mut self, op0: T0, op1: T1);
1257}
1258
1259pub trait SteorhEmitter<T0, T1> {
1260    fn steorh(&mut self, op0: T0, op1: T1);
1261}
1262
1263pub trait SteorlEmitter<T0, T1> {
1264    fn steorl(&mut self, op0: T0, op1: T1);
1265}
1266
1267pub trait SteorlbEmitter<T0, T1> {
1268    fn steorlb(&mut self, op0: T0, op1: T1);
1269}
1270
1271pub trait SteorlhEmitter<T0, T1> {
1272    fn steorlh(&mut self, op0: T0, op1: T1);
1273}
1274
1275pub trait StllrEmitter<T0, T1> {
1276    fn stllr(&mut self, op0: T0, op1: T1);
1277}
1278
1279pub trait StllrbEmitter<T0, T1> {
1280    fn stllrb(&mut self, op0: T0, op1: T1);
1281}
1282
1283pub trait StllrhEmitter<T0, T1> {
1284    fn stllrh(&mut self, op0: T0, op1: T1);
1285}
1286
1287pub trait StlrEmitter<T0, T1> {
1288    fn stlr(&mut self, op0: T0, op1: T1);
1289}
1290
1291pub trait StlrbEmitter<T0, T1> {
1292    fn stlrb(&mut self, op0: T0, op1: T1);
1293}
1294
1295pub trait StlrhEmitter<T0, T1> {
1296    fn stlrh(&mut self, op0: T0, op1: T1);
1297}
1298
1299pub trait StlxrEmitter<T0, T1, T2> {
1300    fn stlxr(&mut self, op0: T0, op1: T1, op2: T2);
1301}
1302
1303pub trait StlxrbEmitter<T0, T1, T2> {
1304    fn stlxrb(&mut self, op0: T0, op1: T1, op2: T2);
1305}
1306
1307pub trait StlxrhEmitter<T0, T1, T2> {
1308    fn stlxrh(&mut self, op0: T0, op1: T1, op2: T2);
1309}
1310
1311pub trait StnpEmitter<T0, T1, T2> {
1312    fn stnp(&mut self, op0: T0, op1: T1, op2: T2);
1313}
1314
1315pub trait StpEmitter<T0, T1, T2> {
1316    fn stp(&mut self, op0: T0, op1: T1, op2: T2);
1317}
1318
1319pub trait StrEmitter<T0, T1> {
1320    fn str(&mut self, op0: T0, op1: T1);
1321}
1322
1323pub trait StrbEmitter<T0, T1> {
1324    fn strb(&mut self, op0: T0, op1: T1);
1325}
1326
1327pub trait StrhEmitter<T0, T1> {
1328    fn strh(&mut self, op0: T0, op1: T1);
1329}
1330
1331pub trait StsetEmitter<T0, T1> {
1332    fn stset(&mut self, op0: T0, op1: T1);
1333}
1334
1335pub trait StsetbEmitter<T0, T1> {
1336    fn stsetb(&mut self, op0: T0, op1: T1);
1337}
1338
1339pub trait StsethEmitter<T0, T1> {
1340    fn stseth(&mut self, op0: T0, op1: T1);
1341}
1342
1343pub trait StsetlEmitter<T0, T1> {
1344    fn stsetl(&mut self, op0: T0, op1: T1);
1345}
1346
1347pub trait StsetlbEmitter<T0, T1> {
1348    fn stsetlb(&mut self, op0: T0, op1: T1);
1349}
1350
1351pub trait StsetlhEmitter<T0, T1> {
1352    fn stsetlh(&mut self, op0: T0, op1: T1);
1353}
1354
1355pub trait StsmaxEmitter<T0, T1> {
1356    fn stsmax(&mut self, op0: T0, op1: T1);
1357}
1358
1359pub trait StsmaxbEmitter<T0, T1> {
1360    fn stsmaxb(&mut self, op0: T0, op1: T1);
1361}
1362
1363pub trait StsmaxhEmitter<T0, T1> {
1364    fn stsmaxh(&mut self, op0: T0, op1: T1);
1365}
1366
1367pub trait StsmaxlEmitter<T0, T1> {
1368    fn stsmaxl(&mut self, op0: T0, op1: T1);
1369}
1370
1371pub trait StsmaxlbEmitter<T0, T1> {
1372    fn stsmaxlb(&mut self, op0: T0, op1: T1);
1373}
1374
1375pub trait StsmaxlhEmitter<T0, T1> {
1376    fn stsmaxlh(&mut self, op0: T0, op1: T1);
1377}
1378
1379pub trait StsminEmitter<T0, T1> {
1380    fn stsmin(&mut self, op0: T0, op1: T1);
1381}
1382
1383pub trait StsminbEmitter<T0, T1> {
1384    fn stsminb(&mut self, op0: T0, op1: T1);
1385}
1386
1387pub trait StsminhEmitter<T0, T1> {
1388    fn stsminh(&mut self, op0: T0, op1: T1);
1389}
1390
1391pub trait StsminlEmitter<T0, T1> {
1392    fn stsminl(&mut self, op0: T0, op1: T1);
1393}
1394
1395pub trait StsminlbEmitter<T0, T1> {
1396    fn stsminlb(&mut self, op0: T0, op1: T1);
1397}
1398
1399pub trait StsminlhEmitter<T0, T1> {
1400    fn stsminlh(&mut self, op0: T0, op1: T1);
1401}
1402
1403pub trait SttrEmitter<T0, T1> {
1404    fn sttr(&mut self, op0: T0, op1: T1);
1405}
1406
1407pub trait SttrbEmitter<T0, T1> {
1408    fn sttrb(&mut self, op0: T0, op1: T1);
1409}
1410
1411pub trait SttrhEmitter<T0, T1> {
1412    fn sttrh(&mut self, op0: T0, op1: T1);
1413}
1414
1415pub trait StumaxEmitter<T0, T1> {
1416    fn stumax(&mut self, op0: T0, op1: T1);
1417}
1418
1419pub trait StumaxbEmitter<T0, T1> {
1420    fn stumaxb(&mut self, op0: T0, op1: T1);
1421}
1422
1423pub trait StumaxhEmitter<T0, T1> {
1424    fn stumaxh(&mut self, op0: T0, op1: T1);
1425}
1426
1427pub trait StumaxlEmitter<T0, T1> {
1428    fn stumaxl(&mut self, op0: T0, op1: T1);
1429}
1430
1431pub trait StumaxlbEmitter<T0, T1> {
1432    fn stumaxlb(&mut self, op0: T0, op1: T1);
1433}
1434
1435pub trait StumaxlhEmitter<T0, T1> {
1436    fn stumaxlh(&mut self, op0: T0, op1: T1);
1437}
1438
1439pub trait StuminEmitter<T0, T1> {
1440    fn stumin(&mut self, op0: T0, op1: T1);
1441}
1442
1443pub trait StuminbEmitter<T0, T1> {
1444    fn stuminb(&mut self, op0: T0, op1: T1);
1445}
1446
1447pub trait StuminhEmitter<T0, T1> {
1448    fn stuminh(&mut self, op0: T0, op1: T1);
1449}
1450
1451pub trait StuminlEmitter<T0, T1> {
1452    fn stuminl(&mut self, op0: T0, op1: T1);
1453}
1454
1455pub trait StuminlbEmitter<T0, T1> {
1456    fn stuminlb(&mut self, op0: T0, op1: T1);
1457}
1458
1459pub trait StuminlhEmitter<T0, T1> {
1460    fn stuminlh(&mut self, op0: T0, op1: T1);
1461}
1462
1463pub trait SturEmitter<T0, T1> {
1464    fn stur(&mut self, op0: T0, op1: T1);
1465}
1466
1467pub trait SturbEmitter<T0, T1> {
1468    fn sturb(&mut self, op0: T0, op1: T1);
1469}
1470
1471pub trait SturhEmitter<T0, T1> {
1472    fn sturh(&mut self, op0: T0, op1: T1);
1473}
1474
1475pub trait StxpEmitter<T0, T1, T2, T3> {
1476    fn stxp(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
1477}
1478
1479pub trait StlxpEmitter<T0, T1, T2, T3> {
1480    fn stlxp(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
1481}
1482
1483pub trait StxrEmitter<T0, T1, T2> {
1484    fn stxr(&mut self, op0: T0, op1: T1, op2: T2);
1485}
1486
1487pub trait StxrbEmitter<T0, T1, T2> {
1488    fn stxrb(&mut self, op0: T0, op1: T1, op2: T2);
1489}
1490
1491pub trait StxrhEmitter<T0, T1, T2> {
1492    fn stxrh(&mut self, op0: T0, op1: T1, op2: T2);
1493}
1494
1495pub trait SwpEmitter<T0, T1, T2> {
1496    fn swp(&mut self, op0: T0, op1: T1, op2: T2);
1497}
1498
1499pub trait SwpaEmitter<T0, T1, T2> {
1500    fn swpa(&mut self, op0: T0, op1: T1, op2: T2);
1501}
1502
1503pub trait SwpabEmitter<T0, T1, T2> {
1504    fn swpab(&mut self, op0: T0, op1: T1, op2: T2);
1505}
1506
1507pub trait SwpahEmitter<T0, T1, T2> {
1508    fn swpah(&mut self, op0: T0, op1: T1, op2: T2);
1509}
1510
1511pub trait SwpalEmitter<T0, T1, T2> {
1512    fn swpal(&mut self, op0: T0, op1: T1, op2: T2);
1513}
1514
1515pub trait SwpalbEmitter<T0, T1, T2> {
1516    fn swpalb(&mut self, op0: T0, op1: T1, op2: T2);
1517}
1518
1519pub trait SwpalhEmitter<T0, T1, T2> {
1520    fn swpalh(&mut self, op0: T0, op1: T1, op2: T2);
1521}
1522
1523pub trait SwpbEmitter<T0, T1, T2> {
1524    fn swpb(&mut self, op0: T0, op1: T1, op2: T2);
1525}
1526
1527pub trait SwphEmitter<T0, T1, T2> {
1528    fn swph(&mut self, op0: T0, op1: T1, op2: T2);
1529}
1530
1531pub trait SwplEmitter<T0, T1, T2> {
1532    fn swpl(&mut self, op0: T0, op1: T1, op2: T2);
1533}
1534
1535pub trait SwplbEmitter<T0, T1, T2> {
1536    fn swplb(&mut self, op0: T0, op1: T1, op2: T2);
1537}
1538
1539pub trait SwplhEmitter<T0, T1, T2> {
1540    fn swplh(&mut self, op0: T0, op1: T1, op2: T2);
1541}
1542
1543pub trait BtiEmitter<T0> {
1544    fn bti(&mut self, op0: T0);
1545}
1546
1547pub trait ChkfeatEmitter<T0> {
1548    fn chkfeat(&mut self, op0: T0);
1549}
1550
1551pub trait ClrbhbEmitter {
1552    fn clrbhb(&mut self);
1553}
1554
1555pub trait Crc32bEmitter<T0, T1, T2> {
1556    fn crc32b(&mut self, op0: T0, op1: T1, op2: T2);
1557}
1558
1559pub trait Crc32hEmitter<T0, T1, T2> {
1560    fn crc32h(&mut self, op0: T0, op1: T1, op2: T2);
1561}
1562
1563pub trait Crc32wEmitter<T0, T1, T2> {
1564    fn crc32w(&mut self, op0: T0, op1: T1, op2: T2);
1565}
1566
1567pub trait Crc32xEmitter<T0, T1, T2> {
1568    fn crc32x(&mut self, op0: T0, op1: T1, op2: T2);
1569}
1570
1571pub trait Crc32cbEmitter<T0, T1, T2> {
1572    fn crc32cb(&mut self, op0: T0, op1: T1, op2: T2);
1573}
1574
1575pub trait Crc32chEmitter<T0, T1, T2> {
1576    fn crc32ch(&mut self, op0: T0, op1: T1, op2: T2);
1577}
1578
1579pub trait Crc32cwEmitter<T0, T1, T2> {
1580    fn crc32cw(&mut self, op0: T0, op1: T1, op2: T2);
1581}
1582
1583pub trait Crc32cxEmitter<T0, T1, T2> {
1584    fn crc32cx(&mut self, op0: T0, op1: T1, op2: T2);
1585}
1586
1587pub trait AbsEmitter<T0, T1> {
1588    fn abs(&mut self, op0: T0, op1: T1);
1589}
1590
1591pub trait CntEmitter<T0, T1> {
1592    fn cnt(&mut self, op0: T0, op1: T1);
1593}
1594
1595pub trait CtzEmitter<T0, T1> {
1596    fn ctz(&mut self, op0: T0, op1: T1);
1597}
1598
1599pub trait SmaxEmitter<T0, T1, T2> {
1600    fn smax(&mut self, op0: T0, op1: T1, op2: T2);
1601}
1602
1603pub trait SminEmitter<T0, T1, T2> {
1604    fn smin(&mut self, op0: T0, op1: T1, op2: T2);
1605}
1606
1607pub trait UmaxEmitter<T0, T1, T2> {
1608    fn umax(&mut self, op0: T0, op1: T1, op2: T2);
1609}
1610
1611pub trait UminEmitter<T0, T1, T2> {
1612    fn umin(&mut self, op0: T0, op1: T1, op2: T2);
1613}
1614
1615pub trait DghEmitter {
1616    fn dgh(&mut self);
1617}
1618
1619pub trait CfinvEmitter {
1620    fn cfinv(&mut self);
1621}
1622
1623pub trait Setf8Emitter<T0> {
1624    fn setf8(&mut self, op0: T0);
1625}
1626
1627pub trait Setf16Emitter<T0> {
1628    fn setf16(&mut self, op0: T0);
1629}
1630
1631pub trait AxflagEmitter {
1632    fn axflag(&mut self);
1633}
1634
1635pub trait XaflagEmitter {
1636    fn xaflag(&mut self);
1637}
1638
1639pub trait BcEmitter<T0> {
1640    fn bc_eq(&mut self, op0: T0);
1641    fn bc_ne(&mut self, op0: T0);
1642    fn bc_cs(&mut self, op0: T0);
1643    fn bc_hs(&mut self, op0: T0);
1644    fn bc_cc(&mut self, op0: T0);
1645    fn bc_lo(&mut self, op0: T0);
1646    fn bc_mi(&mut self, op0: T0);
1647    fn bc_pl(&mut self, op0: T0);
1648    fn bc_vs(&mut self, op0: T0);
1649    fn bc_vc(&mut self, op0: T0);
1650    fn bc_hi(&mut self, op0: T0);
1651    fn bc_ls(&mut self, op0: T0);
1652    fn bc_ge(&mut self, op0: T0);
1653    fn bc_lt(&mut self, op0: T0);
1654    fn bc_gt(&mut self, op0: T0);
1655    fn bc_le(&mut self, op0: T0);
1656    fn bc_al(&mut self, op0: T0);
1657}
1658
1659pub trait AutdaEmitter<T0, T1> {
1660    fn autda(&mut self, op0: T0, op1: T1);
1661}
1662
1663pub trait AutdbEmitter<T0, T1> {
1664    fn autdb(&mut self, op0: T0, op1: T1);
1665}
1666
1667pub trait AutdzaEmitter<T0> {
1668    fn autdza(&mut self, op0: T0);
1669}
1670
1671pub trait AutdzbEmitter<T0> {
1672    fn autdzb(&mut self, op0: T0);
1673}
1674
1675pub trait AutiaEmitter<T0, T1> {
1676    fn autia(&mut self, op0: T0, op1: T1);
1677}
1678
1679pub trait Autia1716Emitter {
1680    fn autia1716(&mut self);
1681}
1682
1683pub trait AutiaspEmitter {
1684    fn autiasp(&mut self);
1685}
1686
1687pub trait AutiazEmitter {
1688    fn autiaz(&mut self);
1689}
1690
1691pub trait AutibEmitter<T0, T1> {
1692    fn autib(&mut self, op0: T0, op1: T1);
1693}
1694
1695pub trait Autib1716Emitter {
1696    fn autib1716(&mut self);
1697}
1698
1699pub trait AutibspEmitter {
1700    fn autibsp(&mut self);
1701}
1702
1703pub trait AutibzEmitter {
1704    fn autibz(&mut self);
1705}
1706
1707pub trait AutizaEmitter<T0> {
1708    fn autiza(&mut self, op0: T0);
1709}
1710
1711pub trait AutizbEmitter<T0> {
1712    fn autizb(&mut self, op0: T0);
1713}
1714
1715pub trait GmiEmitter<T0, T1, T2> {
1716    fn gmi(&mut self, op0: T0, op1: T1, op2: T2);
1717}
1718
1719pub trait CmppEmitter<T0, T1> {
1720    fn cmpp(&mut self, op0: T0, op1: T1);
1721}
1722
1723pub trait AddgEmitter<T0, T1, T2, T3> {
1724    fn addg(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
1725}
1726
1727pub trait LdgEmitter<T0, T1> {
1728    fn ldg(&mut self, op0: T0, op1: T1);
1729}
1730
1731pub trait LdgmEmitter<T0, T1> {
1732    fn ldgm(&mut self, op0: T0, op1: T1);
1733}
1734
1735pub trait LdraaEmitter<T0, T1> {
1736    fn ldraa(&mut self, op0: T0, op1: T1);
1737}
1738
1739pub trait LdrabEmitter<T0, T1> {
1740    fn ldrab(&mut self, op0: T0, op1: T1);
1741}
1742
1743pub trait PacdaEmitter<T0, T1> {
1744    fn pacda(&mut self, op0: T0, op1: T1);
1745}
1746
1747pub trait PacdbEmitter<T0, T1> {
1748    fn pacdb(&mut self, op0: T0, op1: T1);
1749}
1750
1751pub trait PacdzaEmitter<T0> {
1752    fn pacdza(&mut self, op0: T0);
1753}
1754
1755pub trait PacdzbEmitter<T0> {
1756    fn pacdzb(&mut self, op0: T0);
1757}
1758
1759pub trait PacgaEmitter<T0, T1, T2> {
1760    fn pacga(&mut self, op0: T0, op1: T1, op2: T2);
1761}
1762
1763pub trait SubpEmitter<T0, T1, T2> {
1764    fn subp(&mut self, op0: T0, op1: T1, op2: T2);
1765}
1766
1767pub trait SubpsEmitter<T0, T1, T2> {
1768    fn subps(&mut self, op0: T0, op1: T1, op2: T2);
1769}
1770
1771pub trait SubgEmitter<T0, T1, T2, T3> {
1772    fn subg(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
1773}
1774
1775pub trait St2gEmitter<T0, T1> {
1776    fn st2g(&mut self, op0: T0, op1: T1);
1777}
1778
1779pub trait StgEmitter<T0, T1> {
1780    fn stg(&mut self, op0: T0, op1: T1);
1781}
1782
1783pub trait StgpEmitter<T0, T1, T2> {
1784    fn stgp(&mut self, op0: T0, op1: T1, op2: T2);
1785}
1786
1787pub trait StgmEmitter<T0, T1> {
1788    fn stgm(&mut self, op0: T0, op1: T1);
1789}
1790
1791pub trait StzgEmitter<T0, T1> {
1792    fn stzg(&mut self, op0: T0, op1: T1);
1793}
1794
1795pub trait Stz2gEmitter<T0, T1> {
1796    fn stz2g(&mut self, op0: T0, op1: T1);
1797}
1798
1799pub trait StzgmEmitter<T0, T1> {
1800    fn stzgm(&mut self, op0: T0, op1: T1);
1801}
1802
1803pub trait XpacdEmitter<T0> {
1804    fn xpacd(&mut self, op0: T0);
1805}
1806
1807pub trait XpaciEmitter<T0> {
1808    fn xpaci(&mut self, op0: T0);
1809}
1810
1811pub trait XpaclriEmitter {
1812    fn xpaclri(&mut self);
1813}
1814
1815pub trait HintEmitter<T0> {
1816    fn hint(&mut self, op0: T0);
1817}
1818
1819pub trait NopEmitter {
1820    fn nop(&mut self);
1821}
1822
1823pub trait SevEmitter {
1824    fn sev(&mut self);
1825}
1826
1827pub trait SevlEmitter {
1828    fn sevl(&mut self);
1829}
1830
1831pub trait WfeEmitter {
1832    fn wfe(&mut self);
1833}
1834
1835pub trait WfiEmitter {
1836    fn wfi(&mut self);
1837}
1838
1839pub trait YieldEmitter {
1840    fn r#yield(&mut self);
1841}
1842
1843pub trait AddhnEmitter<T0, T1, T2> {
1844    fn addhn(&mut self, op0: T0, op1: T1, op2: T2);
1845}
1846
1847pub trait Addhn2Emitter<T0, T1, T2> {
1848    fn addhn2(&mut self, op0: T0, op1: T1, op2: T2);
1849}
1850
1851pub trait AddpEmitter<T0, T1> {
1852    fn addp(&mut self, op0: T0, op1: T1);
1853}
1854
1855pub trait Addp3Emitter<T0, T1, T2> {
1856    fn addp_3(&mut self, op0: T0, op1: T1, op2: T2);
1857}
1858
1859pub trait AddvEmitter<T0, T1> {
1860    fn addv(&mut self, op0: T0, op1: T1);
1861}
1862
1863pub trait Bic2Emitter<T0, T1> {
1864    fn bic_2(&mut self, op0: T0, op1: T1);
1865}
1866
1867pub trait BifEmitter<T0, T1, T2> {
1868    fn bif(&mut self, op0: T0, op1: T1, op2: T2);
1869}
1870
1871pub trait BitEmitter<T0, T1, T2> {
1872    fn bit(&mut self, op0: T0, op1: T1, op2: T2);
1873}
1874
1875pub trait BslEmitter<T0, T1, T2> {
1876    fn bsl(&mut self, op0: T0, op1: T1, op2: T2);
1877}
1878
1879pub trait CmeqEmitter<T0, T1, T2> {
1880    fn cmeq(&mut self, op0: T0, op1: T1, op2: T2);
1881}
1882
1883pub trait CmgeEmitter<T0, T1, T2> {
1884    fn cmge(&mut self, op0: T0, op1: T1, op2: T2);
1885}
1886
1887pub trait CmgtEmitter<T0, T1, T2> {
1888    fn cmgt(&mut self, op0: T0, op1: T1, op2: T2);
1889}
1890
1891pub trait CmhiEmitter<T0, T1, T2> {
1892    fn cmhi(&mut self, op0: T0, op1: T1, op2: T2);
1893}
1894
1895pub trait CmhsEmitter<T0, T1, T2> {
1896    fn cmhs(&mut self, op0: T0, op1: T1, op2: T2);
1897}
1898
1899pub trait CmleEmitter<T0, T1, T2> {
1900    fn cmle(&mut self, op0: T0, op1: T1, op2: T2);
1901}
1902
1903pub trait CmltEmitter<T0, T1, T2> {
1904    fn cmlt(&mut self, op0: T0, op1: T1, op2: T2);
1905}
1906
1907pub trait CmtstEmitter<T0, T1, T2> {
1908    fn cmtst(&mut self, op0: T0, op1: T1, op2: T2);
1909}
1910
1911pub trait DupEmitter<T0, T1> {
1912    fn dup(&mut self, op0: T0, op1: T1);
1913}
1914
1915pub trait ExtEmitter<T0, T1, T2, T3> {
1916    fn ext(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
1917}
1918
1919pub trait FabdEmitter<T0, T1, T2> {
1920    fn fabd(&mut self, op0: T0, op1: T1, op2: T2);
1921}
1922
1923pub trait FabsEmitter<T0, T1> {
1924    fn fabs(&mut self, op0: T0, op1: T1);
1925}
1926
1927pub trait FacgeEmitter<T0, T1, T2> {
1928    fn facge(&mut self, op0: T0, op1: T1, op2: T2);
1929}
1930
1931pub trait FacgtEmitter<T0, T1, T2> {
1932    fn facgt(&mut self, op0: T0, op1: T1, op2: T2);
1933}
1934
1935pub trait FaddEmitter<T0, T1, T2> {
1936    fn fadd(&mut self, op0: T0, op1: T1, op2: T2);
1937}
1938
1939pub trait FaddpEmitter<T0, T1> {
1940    fn faddp(&mut self, op0: T0, op1: T1);
1941}
1942
1943pub trait Faddp3Emitter<T0, T1, T2> {
1944    fn faddp_3(&mut self, op0: T0, op1: T1, op2: T2);
1945}
1946
1947pub trait FccmpEmitter<T0, T1, T2, T3> {
1948    fn fccmp(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
1949}
1950
1951pub trait FccmpeEmitter<T0, T1, T2, T3> {
1952    fn fccmpe(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
1953}
1954
1955pub trait FcmeqEmitter<T0, T1, T2> {
1956    fn fcmeq(&mut self, op0: T0, op1: T1, op2: T2);
1957}
1958
1959pub trait FcmgeEmitter<T0, T1, T2> {
1960    fn fcmge(&mut self, op0: T0, op1: T1, op2: T2);
1961}
1962
1963pub trait FcmgtEmitter<T0, T1, T2> {
1964    fn fcmgt(&mut self, op0: T0, op1: T1, op2: T2);
1965}
1966
1967pub trait FcmleEmitter<T0, T1, T2> {
1968    fn fcmle(&mut self, op0: T0, op1: T1, op2: T2);
1969}
1970
1971pub trait FcmltEmitter<T0, T1, T2> {
1972    fn fcmlt(&mut self, op0: T0, op1: T1, op2: T2);
1973}
1974
1975pub trait FcmpEmitter<T0, T1> {
1976    fn fcmp(&mut self, op0: T0, op1: T1);
1977}
1978
1979pub trait FcmpeEmitter<T0, T1> {
1980    fn fcmpe(&mut self, op0: T0, op1: T1);
1981}
1982
1983pub trait FcselEmitter<T0, T1, T2, T3> {
1984    fn fcsel(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
1985}
1986
1987pub trait FcvtEmitter<T0, T1> {
1988    fn fcvt(&mut self, op0: T0, op1: T1);
1989}
1990
1991pub trait FcvtasEmitter<T0, T1> {
1992    fn fcvtas(&mut self, op0: T0, op1: T1);
1993}
1994
1995pub trait FcvtauEmitter<T0, T1> {
1996    fn fcvtau(&mut self, op0: T0, op1: T1);
1997}
1998
1999pub trait FcvtlEmitter<T0, T1> {
2000    fn fcvtl(&mut self, op0: T0, op1: T1);
2001}
2002
2003pub trait Fcvtl2Emitter<T0, T1> {
2004    fn fcvtl2(&mut self, op0: T0, op1: T1);
2005}
2006
2007pub trait FcvtmsEmitter<T0, T1> {
2008    fn fcvtms(&mut self, op0: T0, op1: T1);
2009}
2010
2011pub trait FcvtmuEmitter<T0, T1> {
2012    fn fcvtmu(&mut self, op0: T0, op1: T1);
2013}
2014
2015pub trait FcvtnEmitter<T0, T1> {
2016    fn fcvtn(&mut self, op0: T0, op1: T1);
2017}
2018
2019pub trait Fcvtn2Emitter<T0, T1> {
2020    fn fcvtn2(&mut self, op0: T0, op1: T1);
2021}
2022
2023pub trait FcvtnsEmitter<T0, T1> {
2024    fn fcvtns(&mut self, op0: T0, op1: T1);
2025}
2026
2027pub trait FcvtnuEmitter<T0, T1> {
2028    fn fcvtnu(&mut self, op0: T0, op1: T1);
2029}
2030
2031pub trait FcvtpsEmitter<T0, T1> {
2032    fn fcvtps(&mut self, op0: T0, op1: T1);
2033}
2034
2035pub trait FcvtpuEmitter<T0, T1> {
2036    fn fcvtpu(&mut self, op0: T0, op1: T1);
2037}
2038
2039pub trait FcvtxnEmitter<T0, T1> {
2040    fn fcvtxn(&mut self, op0: T0, op1: T1);
2041}
2042
2043pub trait Fcvtxn2Emitter<T0, T1> {
2044    fn fcvtxn2(&mut self, op0: T0, op1: T1);
2045}
2046
2047pub trait FcvtzsEmitter<T0, T1> {
2048    fn fcvtzs(&mut self, op0: T0, op1: T1);
2049}
2050
2051pub trait Fcvtzs3Emitter<T0, T1, T2> {
2052    fn fcvtzs_3(&mut self, op0: T0, op1: T1, op2: T2);
2053}
2054
2055pub trait FcvtzuEmitter<T0, T1> {
2056    fn fcvtzu(&mut self, op0: T0, op1: T1);
2057}
2058
2059pub trait Fcvtzu3Emitter<T0, T1, T2> {
2060    fn fcvtzu_3(&mut self, op0: T0, op1: T1, op2: T2);
2061}
2062
2063pub trait FdivEmitter<T0, T1, T2> {
2064    fn fdiv(&mut self, op0: T0, op1: T1, op2: T2);
2065}
2066
2067pub trait FmaddEmitter<T0, T1, T2, T3> {
2068    fn fmadd(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
2069}
2070
2071pub trait FmaxEmitter<T0, T1, T2> {
2072    fn fmax(&mut self, op0: T0, op1: T1, op2: T2);
2073}
2074
2075pub trait FmaxnmEmitter<T0, T1, T2> {
2076    fn fmaxnm(&mut self, op0: T0, op1: T1, op2: T2);
2077}
2078
2079pub trait FmaxnmpEmitter<T0, T1, T2> {
2080    fn fmaxnmp(&mut self, op0: T0, op1: T1, op2: T2);
2081}
2082
2083pub trait Fmaxnmp2Emitter<T0, T1> {
2084    fn fmaxnmp_2(&mut self, op0: T0, op1: T1);
2085}
2086
2087pub trait FmaxnmvEmitter<T0, T1> {
2088    fn fmaxnmv(&mut self, op0: T0, op1: T1);
2089}
2090
2091pub trait FmaxpEmitter<T0, T1, T2> {
2092    fn fmaxp(&mut self, op0: T0, op1: T1, op2: T2);
2093}
2094
2095pub trait Fmaxp2Emitter<T0, T1> {
2096    fn fmaxp_2(&mut self, op0: T0, op1: T1);
2097}
2098
2099pub trait FmaxvEmitter<T0, T1> {
2100    fn fmaxv(&mut self, op0: T0, op1: T1);
2101}
2102
2103pub trait FminEmitter<T0, T1, T2> {
2104    fn fmin(&mut self, op0: T0, op1: T1, op2: T2);
2105}
2106
2107pub trait FminnmEmitter<T0, T1, T2> {
2108    fn fminnm(&mut self, op0: T0, op1: T1, op2: T2);
2109}
2110
2111pub trait FminnmvEmitter<T0, T1> {
2112    fn fminnmv(&mut self, op0: T0, op1: T1);
2113}
2114
2115pub trait FminnmpEmitter<T0, T1, T2> {
2116    fn fminnmp(&mut self, op0: T0, op1: T1, op2: T2);
2117}
2118
2119pub trait Fminnmp2Emitter<T0, T1> {
2120    fn fminnmp_2(&mut self, op0: T0, op1: T1);
2121}
2122
2123pub trait FminpEmitter<T0, T1> {
2124    fn fminp(&mut self, op0: T0, op1: T1);
2125}
2126
2127pub trait Fminp3Emitter<T0, T1, T2> {
2128    fn fminp_3(&mut self, op0: T0, op1: T1, op2: T2);
2129}
2130
2131pub trait FminvEmitter<T0, T1> {
2132    fn fminv(&mut self, op0: T0, op1: T1);
2133}
2134
2135pub trait FmlaEmitter<T0, T1, T2> {
2136    fn fmla(&mut self, op0: T0, op1: T1, op2: T2);
2137}
2138
2139pub trait FmlsEmitter<T0, T1, T2> {
2140    fn fmls(&mut self, op0: T0, op1: T1, op2: T2);
2141}
2142
2143pub trait FmovEmitter<T0, T1> {
2144    fn fmov(&mut self, op0: T0, op1: T1);
2145}
2146
2147pub trait FmsubEmitter<T0, T1, T2, T3> {
2148    fn fmsub(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
2149}
2150
2151pub trait FmulEmitter<T0, T1, T2> {
2152    fn fmul(&mut self, op0: T0, op1: T1, op2: T2);
2153}
2154
2155pub trait FmulxEmitter<T0, T1, T2> {
2156    fn fmulx(&mut self, op0: T0, op1: T1, op2: T2);
2157}
2158
2159pub trait FnegEmitter<T0, T1> {
2160    fn fneg(&mut self, op0: T0, op1: T1);
2161}
2162
2163pub trait FnmaddEmitter<T0, T1, T2, T3> {
2164    fn fnmadd(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
2165}
2166
2167pub trait FnmsubEmitter<T0, T1, T2, T3> {
2168    fn fnmsub(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
2169}
2170
2171pub trait FnmulEmitter<T0, T1, T2> {
2172    fn fnmul(&mut self, op0: T0, op1: T1, op2: T2);
2173}
2174
2175pub trait FrecpeEmitter<T0, T1> {
2176    fn frecpe(&mut self, op0: T0, op1: T1);
2177}
2178
2179pub trait FrecpsEmitter<T0, T1, T2> {
2180    fn frecps(&mut self, op0: T0, op1: T1, op2: T2);
2181}
2182
2183pub trait FrecpxEmitter<T0, T1> {
2184    fn frecpx(&mut self, op0: T0, op1: T1);
2185}
2186
2187pub trait Frint32xEmitter<T0, T1> {
2188    fn frint32x(&mut self, op0: T0, op1: T1);
2189}
2190
2191pub trait Frint32zEmitter<T0, T1> {
2192    fn frint32z(&mut self, op0: T0, op1: T1);
2193}
2194
2195pub trait Frint64xEmitter<T0, T1> {
2196    fn frint64x(&mut self, op0: T0, op1: T1);
2197}
2198
2199pub trait Frint64zEmitter<T0, T1> {
2200    fn frint64z(&mut self, op0: T0, op1: T1);
2201}
2202
2203pub trait FrintaEmitter<T0, T1> {
2204    fn frinta(&mut self, op0: T0, op1: T1);
2205}
2206
2207pub trait FrintiEmitter<T0, T1> {
2208    fn frinti(&mut self, op0: T0, op1: T1);
2209}
2210
2211pub trait FrintmEmitter<T0, T1> {
2212    fn frintm(&mut self, op0: T0, op1: T1);
2213}
2214
2215pub trait FrintnEmitter<T0, T1> {
2216    fn frintn(&mut self, op0: T0, op1: T1);
2217}
2218
2219pub trait FrintpEmitter<T0, T1> {
2220    fn frintp(&mut self, op0: T0, op1: T1);
2221}
2222
2223pub trait FrintxEmitter<T0, T1> {
2224    fn frintx(&mut self, op0: T0, op1: T1);
2225}
2226
2227pub trait FrintzEmitter<T0, T1> {
2228    fn frintz(&mut self, op0: T0, op1: T1);
2229}
2230
2231pub trait FrsqrteEmitter<T0, T1> {
2232    fn frsqrte(&mut self, op0: T0, op1: T1);
2233}
2234
2235pub trait FrsqrtsEmitter<T0, T1, T2> {
2236    fn frsqrts(&mut self, op0: T0, op1: T1, op2: T2);
2237}
2238
2239pub trait FsqrtEmitter<T0, T1> {
2240    fn fsqrt(&mut self, op0: T0, op1: T1);
2241}
2242
2243pub trait FsubEmitter<T0, T1, T2> {
2244    fn fsub(&mut self, op0: T0, op1: T1, op2: T2);
2245}
2246
2247pub trait InsEmitter<T0, T1> {
2248    fn ins(&mut self, op0: T0, op1: T1);
2249}
2250
2251pub trait Ld1Emitter<T0, T1> {
2252    fn ld1(&mut self, op0: T0, op1: T1);
2253}
2254
2255pub trait Ld13Emitter<T0, T1, T2> {
2256    fn ld1_3(&mut self, op0: T0, op1: T1, op2: T2);
2257}
2258
2259pub trait Ld14Emitter<T0, T1, T2, T3> {
2260    fn ld1_4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
2261}
2262
2263pub trait Ld15Emitter<T0, T1, T2, T3, T4> {
2264    fn ld1_5(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4);
2265}
2266
2267pub trait Ld1rEmitter<T0, T1> {
2268    fn ld1r(&mut self, op0: T0, op1: T1);
2269}
2270
2271pub trait Ld2Emitter<T0, T1, T2> {
2272    fn ld2(&mut self, op0: T0, op1: T1, op2: T2);
2273}
2274
2275pub trait Ld2rEmitter<T0, T1, T2> {
2276    fn ld2r(&mut self, op0: T0, op1: T1, op2: T2);
2277}
2278
2279pub trait Ld3Emitter<T0, T1, T2, T3> {
2280    fn ld3(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
2281}
2282
2283pub trait Ld3rEmitter<T0, T1, T2, T3> {
2284    fn ld3r(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
2285}
2286
2287pub trait Ld4Emitter<T0, T1, T2, T3, T4> {
2288    fn ld4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4);
2289}
2290
2291pub trait Ld4rEmitter<T0, T1, T2, T3, T4> {
2292    fn ld4r(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4);
2293}
2294
2295pub trait MlaEmitter<T0, T1, T2> {
2296    fn mla(&mut self, op0: T0, op1: T1, op2: T2);
2297}
2298
2299pub trait MlsEmitter<T0, T1, T2> {
2300    fn mls(&mut self, op0: T0, op1: T1, op2: T2);
2301}
2302
2303pub trait MoviEmitter<T0, T1> {
2304    fn movi(&mut self, op0: T0, op1: T1);
2305}
2306
2307pub trait Movi3Emitter<T0, T1, T2> {
2308    fn movi_3(&mut self, op0: T0, op1: T1, op2: T2);
2309}
2310
2311pub trait MvniEmitter<T0, T1> {
2312    fn mvni(&mut self, op0: T0, op1: T1);
2313}
2314
2315pub trait Mvni3Emitter<T0, T1, T2> {
2316    fn mvni_3(&mut self, op0: T0, op1: T1, op2: T2);
2317}
2318
2319pub trait NotEmitter<T0, T1> {
2320    fn not_(&mut self, op0: T0, op1: T1);
2321}
2322
2323pub trait Orr2Emitter<T0, T1> {
2324    fn orr_2(&mut self, op0: T0, op1: T1);
2325}
2326
2327pub trait PmulEmitter<T0, T1, T2> {
2328    fn pmul(&mut self, op0: T0, op1: T1, op2: T2);
2329}
2330
2331pub trait PmullEmitter<T0, T1, T2> {
2332    fn pmull(&mut self, op0: T0, op1: T1, op2: T2);
2333}
2334
2335pub trait Pmull2Emitter<T0, T1, T2> {
2336    fn pmull2(&mut self, op0: T0, op1: T1, op2: T2);
2337}
2338
2339pub trait RaddhnEmitter<T0, T1, T2> {
2340    fn raddhn(&mut self, op0: T0, op1: T1, op2: T2);
2341}
2342
2343pub trait Raddhn2Emitter<T0, T1, T2> {
2344    fn raddhn2(&mut self, op0: T0, op1: T1, op2: T2);
2345}
2346
2347pub trait RshrnEmitter<T0, T1, T2> {
2348    fn rshrn(&mut self, op0: T0, op1: T1, op2: T2);
2349}
2350
2351pub trait Rshrn2Emitter<T0, T1, T2> {
2352    fn rshrn2(&mut self, op0: T0, op1: T1, op2: T2);
2353}
2354
2355pub trait RsubhnEmitter<T0, T1, T2> {
2356    fn rsubhn(&mut self, op0: T0, op1: T1, op2: T2);
2357}
2358
2359pub trait Rsubhn2Emitter<T0, T1, T2> {
2360    fn rsubhn2(&mut self, op0: T0, op1: T1, op2: T2);
2361}
2362
2363pub trait SabaEmitter<T0, T1, T2> {
2364    fn saba(&mut self, op0: T0, op1: T1, op2: T2);
2365}
2366
2367pub trait SabalEmitter<T0, T1, T2> {
2368    fn sabal(&mut self, op0: T0, op1: T1, op2: T2);
2369}
2370
2371pub trait Sabal2Emitter<T0, T1, T2> {
2372    fn sabal2(&mut self, op0: T0, op1: T1, op2: T2);
2373}
2374
2375pub trait SabdEmitter<T0, T1, T2> {
2376    fn sabd(&mut self, op0: T0, op1: T1, op2: T2);
2377}
2378
2379pub trait SabdlEmitter<T0, T1, T2> {
2380    fn sabdl(&mut self, op0: T0, op1: T1, op2: T2);
2381}
2382
2383pub trait Sabdl2Emitter<T0, T1, T2> {
2384    fn sabdl2(&mut self, op0: T0, op1: T1, op2: T2);
2385}
2386
2387pub trait SadalpEmitter<T0, T1> {
2388    fn sadalp(&mut self, op0: T0, op1: T1);
2389}
2390
2391pub trait SaddlEmitter<T0, T1, T2> {
2392    fn saddl(&mut self, op0: T0, op1: T1, op2: T2);
2393}
2394
2395pub trait Saddl2Emitter<T0, T1, T2> {
2396    fn saddl2(&mut self, op0: T0, op1: T1, op2: T2);
2397}
2398
2399pub trait SaddlpEmitter<T0, T1> {
2400    fn saddlp(&mut self, op0: T0, op1: T1);
2401}
2402
2403pub trait SaddlvEmitter<T0, T1> {
2404    fn saddlv(&mut self, op0: T0, op1: T1);
2405}
2406
2407pub trait SaddwEmitter<T0, T1, T2> {
2408    fn saddw(&mut self, op0: T0, op1: T1, op2: T2);
2409}
2410
2411pub trait Saddw2Emitter<T0, T1, T2> {
2412    fn saddw2(&mut self, op0: T0, op1: T1, op2: T2);
2413}
2414
2415pub trait ScvtfEmitter<T0, T1> {
2416    fn scvtf(&mut self, op0: T0, op1: T1);
2417}
2418
2419pub trait Scvtf3Emitter<T0, T1, T2> {
2420    fn scvtf_3(&mut self, op0: T0, op1: T1, op2: T2);
2421}
2422
2423pub trait ShaddEmitter<T0, T1, T2> {
2424    fn shadd(&mut self, op0: T0, op1: T1, op2: T2);
2425}
2426
2427pub trait ShlEmitter<T0, T1, T2> {
2428    fn shl(&mut self, op0: T0, op1: T1, op2: T2);
2429}
2430
2431pub trait ShllEmitter<T0, T1, T2> {
2432    fn shll(&mut self, op0: T0, op1: T1, op2: T2);
2433}
2434
2435pub trait Shll2Emitter<T0, T1, T2> {
2436    fn shll2(&mut self, op0: T0, op1: T1, op2: T2);
2437}
2438
2439pub trait ShrnEmitter<T0, T1, T2> {
2440    fn shrn(&mut self, op0: T0, op1: T1, op2: T2);
2441}
2442
2443pub trait Shrn2Emitter<T0, T1, T2> {
2444    fn shrn2(&mut self, op0: T0, op1: T1, op2: T2);
2445}
2446
2447pub trait ShsubEmitter<T0, T1, T2> {
2448    fn shsub(&mut self, op0: T0, op1: T1, op2: T2);
2449}
2450
2451pub trait SliEmitter<T0, T1, T2> {
2452    fn sli(&mut self, op0: T0, op1: T1, op2: T2);
2453}
2454
2455pub trait SmaxpEmitter<T0, T1, T2> {
2456    fn smaxp(&mut self, op0: T0, op1: T1, op2: T2);
2457}
2458
2459pub trait SmaxvEmitter<T0, T1> {
2460    fn smaxv(&mut self, op0: T0, op1: T1);
2461}
2462
2463pub trait SminpEmitter<T0, T1, T2> {
2464    fn sminp(&mut self, op0: T0, op1: T1, op2: T2);
2465}
2466
2467pub trait SminvEmitter<T0, T1> {
2468    fn sminv(&mut self, op0: T0, op1: T1);
2469}
2470
2471pub trait SmlalEmitter<T0, T1, T2> {
2472    fn smlal(&mut self, op0: T0, op1: T1, op2: T2);
2473}
2474
2475pub trait Smlal2Emitter<T0, T1, T2> {
2476    fn smlal2(&mut self, op0: T0, op1: T1, op2: T2);
2477}
2478
2479pub trait SmlslEmitter<T0, T1, T2> {
2480    fn smlsl(&mut self, op0: T0, op1: T1, op2: T2);
2481}
2482
2483pub trait Smlsl2Emitter<T0, T1, T2> {
2484    fn smlsl2(&mut self, op0: T0, op1: T1, op2: T2);
2485}
2486
2487pub trait SmovEmitter<T0, T1> {
2488    fn smov(&mut self, op0: T0, op1: T1);
2489}
2490
2491pub trait Smull2Emitter<T0, T1, T2> {
2492    fn smull2(&mut self, op0: T0, op1: T1, op2: T2);
2493}
2494
2495pub trait SqabsEmitter<T0, T1> {
2496    fn sqabs(&mut self, op0: T0, op1: T1);
2497}
2498
2499pub trait SqaddEmitter<T0, T1, T2> {
2500    fn sqadd(&mut self, op0: T0, op1: T1, op2: T2);
2501}
2502
2503pub trait SqdmlalEmitter<T0, T1, T2> {
2504    fn sqdmlal(&mut self, op0: T0, op1: T1, op2: T2);
2505}
2506
2507pub trait Sqdmlal2Emitter<T0, T1, T2> {
2508    fn sqdmlal2(&mut self, op0: T0, op1: T1, op2: T2);
2509}
2510
2511pub trait SqdmlslEmitter<T0, T1, T2> {
2512    fn sqdmlsl(&mut self, op0: T0, op1: T1, op2: T2);
2513}
2514
2515pub trait Sqdmlsl2Emitter<T0, T1, T2> {
2516    fn sqdmlsl2(&mut self, op0: T0, op1: T1, op2: T2);
2517}
2518
2519pub trait SqdmulhEmitter<T0, T1, T2> {
2520    fn sqdmulh(&mut self, op0: T0, op1: T1, op2: T2);
2521}
2522
2523pub trait SqdmullEmitter<T0, T1, T2> {
2524    fn sqdmull(&mut self, op0: T0, op1: T1, op2: T2);
2525}
2526
2527pub trait Sqdmull2Emitter<T0, T1, T2> {
2528    fn sqdmull2(&mut self, op0: T0, op1: T1, op2: T2);
2529}
2530
2531pub trait SqnegEmitter<T0, T1> {
2532    fn sqneg(&mut self, op0: T0, op1: T1);
2533}
2534
2535pub trait SqrdmulhEmitter<T0, T1, T2> {
2536    fn sqrdmulh(&mut self, op0: T0, op1: T1, op2: T2);
2537}
2538
2539pub trait SqrshlEmitter<T0, T1, T2> {
2540    fn sqrshl(&mut self, op0: T0, op1: T1, op2: T2);
2541}
2542
2543pub trait SqrshrnEmitter<T0, T1, T2> {
2544    fn sqrshrn(&mut self, op0: T0, op1: T1, op2: T2);
2545}
2546
2547pub trait Sqrshrn2Emitter<T0, T1, T2> {
2548    fn sqrshrn2(&mut self, op0: T0, op1: T1, op2: T2);
2549}
2550
2551pub trait SqrshrunEmitter<T0, T1, T2> {
2552    fn sqrshrun(&mut self, op0: T0, op1: T1, op2: T2);
2553}
2554
2555pub trait Sqrshrun2Emitter<T0, T1, T2> {
2556    fn sqrshrun2(&mut self, op0: T0, op1: T1, op2: T2);
2557}
2558
2559pub trait SqshlEmitter<T0, T1, T2> {
2560    fn sqshl(&mut self, op0: T0, op1: T1, op2: T2);
2561}
2562
2563pub trait SqshluEmitter<T0, T1, T2> {
2564    fn sqshlu(&mut self, op0: T0, op1: T1, op2: T2);
2565}
2566
2567pub trait SqshrnEmitter<T0, T1, T2> {
2568    fn sqshrn(&mut self, op0: T0, op1: T1, op2: T2);
2569}
2570
2571pub trait Sqshrn2Emitter<T0, T1, T2> {
2572    fn sqshrn2(&mut self, op0: T0, op1: T1, op2: T2);
2573}
2574
2575pub trait SqshrunEmitter<T0, T1, T2> {
2576    fn sqshrun(&mut self, op0: T0, op1: T1, op2: T2);
2577}
2578
2579pub trait Sqshrun2Emitter<T0, T1, T2> {
2580    fn sqshrun2(&mut self, op0: T0, op1: T1, op2: T2);
2581}
2582
2583pub trait SqsubEmitter<T0, T1, T2> {
2584    fn sqsub(&mut self, op0: T0, op1: T1, op2: T2);
2585}
2586
2587pub trait SqxtnEmitter<T0, T1> {
2588    fn sqxtn(&mut self, op0: T0, op1: T1);
2589}
2590
2591pub trait Sqxtn2Emitter<T0, T1> {
2592    fn sqxtn2(&mut self, op0: T0, op1: T1);
2593}
2594
2595pub trait SqxtunEmitter<T0, T1> {
2596    fn sqxtun(&mut self, op0: T0, op1: T1);
2597}
2598
2599pub trait Sqxtun2Emitter<T0, T1> {
2600    fn sqxtun2(&mut self, op0: T0, op1: T1);
2601}
2602
2603pub trait SrhaddEmitter<T0, T1, T2> {
2604    fn srhadd(&mut self, op0: T0, op1: T1, op2: T2);
2605}
2606
2607pub trait SriEmitter<T0, T1, T2> {
2608    fn sri(&mut self, op0: T0, op1: T1, op2: T2);
2609}
2610
2611pub trait SrshlEmitter<T0, T1, T2> {
2612    fn srshl(&mut self, op0: T0, op1: T1, op2: T2);
2613}
2614
2615pub trait SrshrEmitter<T0, T1, T2> {
2616    fn srshr(&mut self, op0: T0, op1: T1, op2: T2);
2617}
2618
2619pub trait SrsraEmitter<T0, T1, T2> {
2620    fn srsra(&mut self, op0: T0, op1: T1, op2: T2);
2621}
2622
2623pub trait SshlEmitter<T0, T1, T2> {
2624    fn sshl(&mut self, op0: T0, op1: T1, op2: T2);
2625}
2626
2627pub trait SshllEmitter<T0, T1, T2> {
2628    fn sshll(&mut self, op0: T0, op1: T1, op2: T2);
2629}
2630
2631pub trait Sshll2Emitter<T0, T1, T2> {
2632    fn sshll2(&mut self, op0: T0, op1: T1, op2: T2);
2633}
2634
2635pub trait SshrEmitter<T0, T1, T2> {
2636    fn sshr(&mut self, op0: T0, op1: T1, op2: T2);
2637}
2638
2639pub trait SsraEmitter<T0, T1, T2> {
2640    fn ssra(&mut self, op0: T0, op1: T1, op2: T2);
2641}
2642
2643pub trait SsublEmitter<T0, T1, T2> {
2644    fn ssubl(&mut self, op0: T0, op1: T1, op2: T2);
2645}
2646
2647pub trait Ssubl2Emitter<T0, T1, T2> {
2648    fn ssubl2(&mut self, op0: T0, op1: T1, op2: T2);
2649}
2650
2651pub trait SsubwEmitter<T0, T1, T2> {
2652    fn ssubw(&mut self, op0: T0, op1: T1, op2: T2);
2653}
2654
2655pub trait Ssubw2Emitter<T0, T1, T2> {
2656    fn ssubw2(&mut self, op0: T0, op1: T1, op2: T2);
2657}
2658
2659pub trait St1Emitter<T0, T1> {
2660    fn st1(&mut self, op0: T0, op1: T1);
2661}
2662
2663pub trait St13Emitter<T0, T1, T2> {
2664    fn st1_3(&mut self, op0: T0, op1: T1, op2: T2);
2665}
2666
2667pub trait St14Emitter<T0, T1, T2, T3> {
2668    fn st1_4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
2669}
2670
2671pub trait St15Emitter<T0, T1, T2, T3, T4> {
2672    fn st1_5(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4);
2673}
2674
2675pub trait St2Emitter<T0, T1, T2> {
2676    fn st2(&mut self, op0: T0, op1: T1, op2: T2);
2677}
2678
2679pub trait St3Emitter<T0, T1, T2, T3> {
2680    fn st3(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
2681}
2682
2683pub trait St4Emitter<T0, T1, T2, T3, T4> {
2684    fn st4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4);
2685}
2686
2687pub trait SubhnEmitter<T0, T1, T2> {
2688    fn subhn(&mut self, op0: T0, op1: T1, op2: T2);
2689}
2690
2691pub trait Subhn2Emitter<T0, T1, T2> {
2692    fn subhn2(&mut self, op0: T0, op1: T1, op2: T2);
2693}
2694
2695pub trait SuqaddEmitter<T0, T1> {
2696    fn suqadd(&mut self, op0: T0, op1: T1);
2697}
2698
2699pub trait SxtlEmitter<T0, T1> {
2700    fn sxtl(&mut self, op0: T0, op1: T1);
2701}
2702
2703pub trait Sxtl2Emitter<T0, T1> {
2704    fn sxtl2(&mut self, op0: T0, op1: T1);
2705}
2706
2707pub trait TblEmitter<T0, T1, T2> {
2708    fn tbl(&mut self, op0: T0, op1: T1, op2: T2);
2709}
2710
2711pub trait Tbl4Emitter<T0, T1, T2, T3> {
2712    fn tbl_4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
2713}
2714
2715pub trait Tbl5Emitter<T0, T1, T2, T3, T4> {
2716    fn tbl_5(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4);
2717}
2718
2719pub trait Tbl6Emitter<T0, T1, T2, T3, T4, T5> {
2720    fn tbl_6(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4, op5: T5);
2721}
2722
2723pub trait TbxEmitter<T0, T1, T2> {
2724    fn tbx(&mut self, op0: T0, op1: T1, op2: T2);
2725}
2726
2727pub trait Tbx4Emitter<T0, T1, T2, T3> {
2728    fn tbx_4(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
2729}
2730
2731pub trait Tbx5Emitter<T0, T1, T2, T3, T4> {
2732    fn tbx_5(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4);
2733}
2734
2735pub trait Tbx6Emitter<T0, T1, T2, T3, T4, T5> {
2736    fn tbx_6(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4, op5: T5);
2737}
2738
2739pub trait Trn1Emitter<T0, T1, T2> {
2740    fn trn1(&mut self, op0: T0, op1: T1, op2: T2);
2741}
2742
2743pub trait Trn2Emitter<T0, T1, T2> {
2744    fn trn2(&mut self, op0: T0, op1: T1, op2: T2);
2745}
2746
2747pub trait UabaEmitter<T0, T1, T2> {
2748    fn uaba(&mut self, op0: T0, op1: T1, op2: T2);
2749}
2750
2751pub trait UabalEmitter<T0, T1, T2> {
2752    fn uabal(&mut self, op0: T0, op1: T1, op2: T2);
2753}
2754
2755pub trait Uabal2Emitter<T0, T1, T2> {
2756    fn uabal2(&mut self, op0: T0, op1: T1, op2: T2);
2757}
2758
2759pub trait UabdEmitter<T0, T1, T2> {
2760    fn uabd(&mut self, op0: T0, op1: T1, op2: T2);
2761}
2762
2763pub trait UabdlEmitter<T0, T1, T2> {
2764    fn uabdl(&mut self, op0: T0, op1: T1, op2: T2);
2765}
2766
2767pub trait Uabdl2Emitter<T0, T1, T2> {
2768    fn uabdl2(&mut self, op0: T0, op1: T1, op2: T2);
2769}
2770
2771pub trait UadalpEmitter<T0, T1> {
2772    fn uadalp(&mut self, op0: T0, op1: T1);
2773}
2774
2775pub trait UaddlEmitter<T0, T1, T2> {
2776    fn uaddl(&mut self, op0: T0, op1: T1, op2: T2);
2777}
2778
2779pub trait Uaddl2Emitter<T0, T1, T2> {
2780    fn uaddl2(&mut self, op0: T0, op1: T1, op2: T2);
2781}
2782
2783pub trait UaddlpEmitter<T0, T1> {
2784    fn uaddlp(&mut self, op0: T0, op1: T1);
2785}
2786
2787pub trait UaddlvEmitter<T0, T1> {
2788    fn uaddlv(&mut self, op0: T0, op1: T1);
2789}
2790
2791pub trait UaddwEmitter<T0, T1, T2> {
2792    fn uaddw(&mut self, op0: T0, op1: T1, op2: T2);
2793}
2794
2795pub trait Uaddw2Emitter<T0, T1, T2> {
2796    fn uaddw2(&mut self, op0: T0, op1: T1, op2: T2);
2797}
2798
2799pub trait UcvtfEmitter<T0, T1> {
2800    fn ucvtf(&mut self, op0: T0, op1: T1);
2801}
2802
2803pub trait Ucvtf3Emitter<T0, T1, T2> {
2804    fn ucvtf_3(&mut self, op0: T0, op1: T1, op2: T2);
2805}
2806
2807pub trait UhaddEmitter<T0, T1, T2> {
2808    fn uhadd(&mut self, op0: T0, op1: T1, op2: T2);
2809}
2810
2811pub trait UhsubEmitter<T0, T1, T2> {
2812    fn uhsub(&mut self, op0: T0, op1: T1, op2: T2);
2813}
2814
2815pub trait UmaxpEmitter<T0, T1, T2> {
2816    fn umaxp(&mut self, op0: T0, op1: T1, op2: T2);
2817}
2818
2819pub trait UmaxvEmitter<T0, T1> {
2820    fn umaxv(&mut self, op0: T0, op1: T1);
2821}
2822
2823pub trait UminpEmitter<T0, T1, T2> {
2824    fn uminp(&mut self, op0: T0, op1: T1, op2: T2);
2825}
2826
2827pub trait UminvEmitter<T0, T1> {
2828    fn uminv(&mut self, op0: T0, op1: T1);
2829}
2830
2831pub trait UmlalEmitter<T0, T1, T2> {
2832    fn umlal(&mut self, op0: T0, op1: T1, op2: T2);
2833}
2834
2835pub trait Umlal2Emitter<T0, T1, T2> {
2836    fn umlal2(&mut self, op0: T0, op1: T1, op2: T2);
2837}
2838
2839pub trait UmlslEmitter<T0, T1, T2> {
2840    fn umlsl(&mut self, op0: T0, op1: T1, op2: T2);
2841}
2842
2843pub trait Umlsl2Emitter<T0, T1, T2> {
2844    fn umlsl2(&mut self, op0: T0, op1: T1, op2: T2);
2845}
2846
2847pub trait UmovEmitter<T0, T1> {
2848    fn umov(&mut self, op0: T0, op1: T1);
2849}
2850
2851pub trait Umull2Emitter<T0, T1, T2> {
2852    fn umull2(&mut self, op0: T0, op1: T1, op2: T2);
2853}
2854
2855pub trait UqaddEmitter<T0, T1, T2> {
2856    fn uqadd(&mut self, op0: T0, op1: T1, op2: T2);
2857}
2858
2859pub trait UqrshlEmitter<T0, T1, T2> {
2860    fn uqrshl(&mut self, op0: T0, op1: T1, op2: T2);
2861}
2862
2863pub trait UqrshrnEmitter<T0, T1, T2> {
2864    fn uqrshrn(&mut self, op0: T0, op1: T1, op2: T2);
2865}
2866
2867pub trait Uqrshrn2Emitter<T0, T1, T2> {
2868    fn uqrshrn2(&mut self, op0: T0, op1: T1, op2: T2);
2869}
2870
2871pub trait UqshlEmitter<T0, T1, T2> {
2872    fn uqshl(&mut self, op0: T0, op1: T1, op2: T2);
2873}
2874
2875pub trait UqshrnEmitter<T0, T1, T2> {
2876    fn uqshrn(&mut self, op0: T0, op1: T1, op2: T2);
2877}
2878
2879pub trait Uqshrn2Emitter<T0, T1, T2> {
2880    fn uqshrn2(&mut self, op0: T0, op1: T1, op2: T2);
2881}
2882
2883pub trait UqsubEmitter<T0, T1, T2> {
2884    fn uqsub(&mut self, op0: T0, op1: T1, op2: T2);
2885}
2886
2887pub trait UqxtnEmitter<T0, T1> {
2888    fn uqxtn(&mut self, op0: T0, op1: T1);
2889}
2890
2891pub trait Uqxtn2Emitter<T0, T1> {
2892    fn uqxtn2(&mut self, op0: T0, op1: T1);
2893}
2894
2895pub trait UrecpeEmitter<T0, T1> {
2896    fn urecpe(&mut self, op0: T0, op1: T1);
2897}
2898
2899pub trait UrhaddEmitter<T0, T1, T2> {
2900    fn urhadd(&mut self, op0: T0, op1: T1, op2: T2);
2901}
2902
2903pub trait UrshlEmitter<T0, T1, T2> {
2904    fn urshl(&mut self, op0: T0, op1: T1, op2: T2);
2905}
2906
2907pub trait UrshrEmitter<T0, T1, T2> {
2908    fn urshr(&mut self, op0: T0, op1: T1, op2: T2);
2909}
2910
2911pub trait UrsqrteEmitter<T0, T1> {
2912    fn ursqrte(&mut self, op0: T0, op1: T1);
2913}
2914
2915pub trait UrsraEmitter<T0, T1, T2> {
2916    fn ursra(&mut self, op0: T0, op1: T1, op2: T2);
2917}
2918
2919pub trait UshlEmitter<T0, T1, T2> {
2920    fn ushl(&mut self, op0: T0, op1: T1, op2: T2);
2921}
2922
2923pub trait UshllEmitter<T0, T1, T2> {
2924    fn ushll(&mut self, op0: T0, op1: T1, op2: T2);
2925}
2926
2927pub trait Ushll2Emitter<T0, T1, T2> {
2928    fn ushll2(&mut self, op0: T0, op1: T1, op2: T2);
2929}
2930
2931pub trait UshrEmitter<T0, T1, T2> {
2932    fn ushr(&mut self, op0: T0, op1: T1, op2: T2);
2933}
2934
2935pub trait UsqaddEmitter<T0, T1> {
2936    fn usqadd(&mut self, op0: T0, op1: T1);
2937}
2938
2939pub trait UsraEmitter<T0, T1, T2> {
2940    fn usra(&mut self, op0: T0, op1: T1, op2: T2);
2941}
2942
2943pub trait UsublEmitter<T0, T1, T2> {
2944    fn usubl(&mut self, op0: T0, op1: T1, op2: T2);
2945}
2946
2947pub trait Usubl2Emitter<T0, T1, T2> {
2948    fn usubl2(&mut self, op0: T0, op1: T1, op2: T2);
2949}
2950
2951pub trait UsubwEmitter<T0, T1, T2> {
2952    fn usubw(&mut self, op0: T0, op1: T1, op2: T2);
2953}
2954
2955pub trait Usubw2Emitter<T0, T1, T2> {
2956    fn usubw2(&mut self, op0: T0, op1: T1, op2: T2);
2957}
2958
2959pub trait UxtlEmitter<T0, T1> {
2960    fn uxtl(&mut self, op0: T0, op1: T1);
2961}
2962
2963pub trait Uxtl2Emitter<T0, T1> {
2964    fn uxtl2(&mut self, op0: T0, op1: T1);
2965}
2966
2967pub trait Uzp1Emitter<T0, T1, T2> {
2968    fn uzp1(&mut self, op0: T0, op1: T1, op2: T2);
2969}
2970
2971pub trait Uzp2Emitter<T0, T1, T2> {
2972    fn uzp2(&mut self, op0: T0, op1: T1, op2: T2);
2973}
2974
2975pub trait XtnEmitter<T0, T1> {
2976    fn xtn(&mut self, op0: T0, op1: T1);
2977}
2978
2979pub trait Xtn2Emitter<T0, T1> {
2980    fn xtn2(&mut self, op0: T0, op1: T1);
2981}
2982
2983pub trait Zip1Emitter<T0, T1, T2> {
2984    fn zip1(&mut self, op0: T0, op1: T1, op2: T2);
2985}
2986
2987pub trait Zip2Emitter<T0, T1, T2> {
2988    fn zip2(&mut self, op0: T0, op1: T1, op2: T2);
2989}
2990
2991pub trait AesdEmitter<T0, T1> {
2992    fn aesd(&mut self, op0: T0, op1: T1);
2993}
2994
2995pub trait AeseEmitter<T0, T1> {
2996    fn aese(&mut self, op0: T0, op1: T1);
2997}
2998
2999pub trait AesimcEmitter<T0, T1> {
3000    fn aesimc(&mut self, op0: T0, op1: T1);
3001}
3002
3003pub trait AesmcEmitter<T0, T1> {
3004    fn aesmc(&mut self, op0: T0, op1: T1);
3005}
3006
3007pub trait Sha1cEmitter<T0, T1, T2> {
3008    fn sha1c(&mut self, op0: T0, op1: T1, op2: T2);
3009}
3010
3011pub trait Sha1hEmitter<T0, T1> {
3012    fn sha1h(&mut self, op0: T0, op1: T1);
3013}
3014
3015pub trait Sha1mEmitter<T0, T1, T2> {
3016    fn sha1m(&mut self, op0: T0, op1: T1, op2: T2);
3017}
3018
3019pub trait Sha1pEmitter<T0, T1, T2> {
3020    fn sha1p(&mut self, op0: T0, op1: T1, op2: T2);
3021}
3022
3023pub trait Sha1su0Emitter<T0, T1, T2> {
3024    fn sha1su0(&mut self, op0: T0, op1: T1, op2: T2);
3025}
3026
3027pub trait Sha1su1Emitter<T0, T1> {
3028    fn sha1su1(&mut self, op0: T0, op1: T1);
3029}
3030
3031pub trait Sha256hEmitter<T0, T1, T2> {
3032    fn sha256h(&mut self, op0: T0, op1: T1, op2: T2);
3033}
3034
3035pub trait Sha256h2Emitter<T0, T1, T2> {
3036    fn sha256h2(&mut self, op0: T0, op1: T1, op2: T2);
3037}
3038
3039pub trait Sha256su0Emitter<T0, T1> {
3040    fn sha256su0(&mut self, op0: T0, op1: T1);
3041}
3042
3043pub trait Sha256su1Emitter<T0, T1, T2> {
3044    fn sha256su1(&mut self, op0: T0, op1: T1, op2: T2);
3045}
3046
3047pub trait SqrdmlahEmitter<T0, T1, T2> {
3048    fn sqrdmlah(&mut self, op0: T0, op1: T1, op2: T2);
3049}
3050
3051pub trait SqrdmlshEmitter<T0, T1, T2> {
3052    fn sqrdmlsh(&mut self, op0: T0, op1: T1, op2: T2);
3053}
3054
3055pub trait FcaddEmitter<T0, T1, T2, T3> {
3056    fn fcadd(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
3057}
3058
3059pub trait FcmlaEmitter<T0, T1, T2, T3> {
3060    fn fcmla(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
3061}
3062
3063pub trait FjcvtzsEmitter<T0, T1> {
3064    fn fjcvtzs(&mut self, op0: T0, op1: T1);
3065}
3066
3067pub trait FmlalEmitter<T0, T1, T2> {
3068    fn fmlal(&mut self, op0: T0, op1: T1, op2: T2);
3069}
3070
3071pub trait Fmlal2Emitter<T0, T1, T2> {
3072    fn fmlal2(&mut self, op0: T0, op1: T1, op2: T2);
3073}
3074
3075pub trait FmlslEmitter<T0, T1, T2> {
3076    fn fmlsl(&mut self, op0: T0, op1: T1, op2: T2);
3077}
3078
3079pub trait Fmlsl2Emitter<T0, T1, T2> {
3080    fn fmlsl2(&mut self, op0: T0, op1: T1, op2: T2);
3081}
3082
3083pub trait BcaxEmitter<T0, T1, T2, T3> {
3084    fn bcax(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
3085}
3086
3087pub trait Eor3Emitter<T0, T1, T2, T3> {
3088    fn eor3(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
3089}
3090
3091pub trait Rax1Emitter<T0, T1, T2> {
3092    fn rax1(&mut self, op0: T0, op1: T1, op2: T2);
3093}
3094
3095pub trait XarEmitter<T0, T1, T2, T3> {
3096    fn xar(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
3097}
3098
3099pub trait Sha512hEmitter<T0, T1, T2> {
3100    fn sha512h(&mut self, op0: T0, op1: T1, op2: T2);
3101}
3102
3103pub trait Sha512h2Emitter<T0, T1, T2> {
3104    fn sha512h2(&mut self, op0: T0, op1: T1, op2: T2);
3105}
3106
3107pub trait Sha512su0Emitter<T0, T1> {
3108    fn sha512su0(&mut self, op0: T0, op1: T1);
3109}
3110
3111pub trait Sha512su1Emitter<T0, T1, T2> {
3112    fn sha512su1(&mut self, op0: T0, op1: T1, op2: T2);
3113}
3114
3115pub trait Sm3partw1Emitter<T0, T1, T2> {
3116    fn sm3partw1(&mut self, op0: T0, op1: T1, op2: T2);
3117}
3118
3119pub trait Sm3partw2Emitter<T0, T1, T2> {
3120    fn sm3partw2(&mut self, op0: T0, op1: T1, op2: T2);
3121}
3122
3123pub trait Sm3ss1Emitter<T0, T1, T2, T3> {
3124    fn sm3ss1(&mut self, op0: T0, op1: T1, op2: T2, op3: T3);
3125}
3126
3127pub trait Sm3tt1aEmitter<T0, T1, T2> {
3128    fn sm3tt1a(&mut self, op0: T0, op1: T1, op2: T2);
3129}
3130
3131pub trait Sm3tt1bEmitter<T0, T1, T2> {
3132    fn sm3tt1b(&mut self, op0: T0, op1: T1, op2: T2);
3133}
3134
3135pub trait Sm3tt2aEmitter<T0, T1, T2> {
3136    fn sm3tt2a(&mut self, op0: T0, op1: T1, op2: T2);
3137}
3138
3139pub trait Sm3tt2bEmitter<T0, T1, T2> {
3140    fn sm3tt2b(&mut self, op0: T0, op1: T1, op2: T2);
3141}
3142
3143pub trait Sm4eEmitter<T0, T1> {
3144    fn sm4e(&mut self, op0: T0, op1: T1);
3145}
3146
3147pub trait Sm4ekeyEmitter<T0, T1, T2> {
3148    fn sm4ekey(&mut self, op0: T0, op1: T1, op2: T2);
3149}
3150
3151pub trait SdotEmitter<T0, T1, T2> {
3152    fn sdot(&mut self, op0: T0, op1: T1, op2: T2);
3153}
3154
3155pub trait UdotEmitter<T0, T1, T2> {
3156    fn udot(&mut self, op0: T0, op1: T1, op2: T2);
3157}
3158
3159pub trait BfcvtEmitter<T0, T1> {
3160    fn bfcvt(&mut self, op0: T0, op1: T1);
3161}
3162
3163pub trait BfcvtnEmitter<T0, T1> {
3164    fn bfcvtn(&mut self, op0: T0, op1: T1);
3165}
3166
3167pub trait Bfcvtn2Emitter<T0, T1> {
3168    fn bfcvtn2(&mut self, op0: T0, op1: T1);
3169}
3170
3171pub trait BfmlalbEmitter<T0, T1, T2> {
3172    fn bfmlalb(&mut self, op0: T0, op1: T1, op2: T2);
3173}
3174
3175pub trait BfmlaltEmitter<T0, T1, T2> {
3176    fn bfmlalt(&mut self, op0: T0, op1: T1, op2: T2);
3177}
3178
3179pub trait BfmmlaEmitter<T0, T1, T2> {
3180    fn bfmmla(&mut self, op0: T0, op1: T1, op2: T2);
3181}
3182
3183pub trait BfdotEmitter<T0, T1, T2> {
3184    fn bfdot(&mut self, op0: T0, op1: T1, op2: T2);
3185}
3186
3187pub trait SmmlaEmitter<T0, T1, T2> {
3188    fn smmla(&mut self, op0: T0, op1: T1, op2: T2);
3189}
3190
3191pub trait SudotEmitter<T0, T1, T2> {
3192    fn sudot(&mut self, op0: T0, op1: T1, op2: T2);
3193}
3194
3195pub trait UmmlaEmitter<T0, T1, T2> {
3196    fn ummla(&mut self, op0: T0, op1: T1, op2: T2);
3197}
3198
3199pub trait UsdotEmitter<T0, T1, T2> {
3200    fn usdot(&mut self, op0: T0, op1: T1, op2: T2);
3201}
3202
3203pub trait UsmmlaEmitter<T0, T1, T2> {
3204    fn usmmla(&mut self, op0: T0, op1: T1, op2: T2);
3205}
3206
3207impl AdcEmitter<Gp, Gp, Gp> for Assembler<'_> {
3208    fn adc(&mut self, op0: Gp, op1: Gp, op2: Gp) {
3209        self.emit_n(
3210            InstId::Adc,
3211            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3212        );
3213    }
3214}
3215
3216impl AdcsEmitter<Gp, Gp, Gp> for Assembler<'_> {
3217    fn adcs(&mut self, op0: Gp, op1: Gp, op2: Gp) {
3218        self.emit_n(
3219            InstId::Adcs,
3220            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3221        );
3222    }
3223}
3224
3225impl AddEmitter<Gp, Gp, Gp> for Assembler<'_> {
3226    fn add(&mut self, op0: Gp, op1: Gp, op2: Gp) {
3227        self.emit_n(
3228            InstId::Add,
3229            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3230        );
3231    }
3232}
3233
3234impl AddEmitter<Gp, Gp, Imm> for Assembler<'_> {
3235    fn add(&mut self, op0: Gp, op1: Gp, op2: Imm) {
3236        self.emit_n(
3237            InstId::Add,
3238            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3239        );
3240    }
3241}
3242
3243impl AddEmitter<Vec, Vec, Vec> for Assembler<'_> {
3244    fn add(&mut self, op0: Vec, op1: Vec, op2: Vec) {
3245        self.emit_n(
3246            InstId::Add_v,
3247            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3248        );
3249    }
3250}
3251
3252impl Add4Emitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
3253    fn add_4(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
3254        self.emit_n(
3255            InstId::Add,
3256            &[
3257                op0.as_operand(),
3258                op1.as_operand(),
3259                op2.as_operand(),
3260                op3.as_operand(),
3261            ],
3262        );
3263    }
3264}
3265
3266impl Add4Emitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
3267    fn add_4(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
3268        self.emit_n(
3269            InstId::Add,
3270            &[
3271                op0.as_operand(),
3272                op1.as_operand(),
3273                op2.as_operand(),
3274                op3.as_operand(),
3275            ],
3276        );
3277    }
3278}
3279
3280impl AddsEmitter<Gp, Gp, Gp> for Assembler<'_> {
3281    fn adds(&mut self, op0: Gp, op1: Gp, op2: Gp) {
3282        self.emit_n(
3283            InstId::Adds,
3284            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3285        );
3286    }
3287}
3288
3289impl AddsEmitter<Gp, Gp, Imm> for Assembler<'_> {
3290    fn adds(&mut self, op0: Gp, op1: Gp, op2: Imm) {
3291        self.emit_n(
3292            InstId::Adds,
3293            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3294        );
3295    }
3296}
3297
3298impl Adds4Emitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
3299    fn adds_4(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
3300        self.emit_n(
3301            InstId::Adds,
3302            &[
3303                op0.as_operand(),
3304                op1.as_operand(),
3305                op2.as_operand(),
3306                op3.as_operand(),
3307            ],
3308        );
3309    }
3310}
3311
3312impl Adds4Emitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
3313    fn adds_4(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
3314        self.emit_n(
3315            InstId::Adds,
3316            &[
3317                op0.as_operand(),
3318                op1.as_operand(),
3319                op2.as_operand(),
3320                op3.as_operand(),
3321            ],
3322        );
3323    }
3324}
3325
3326impl AdrEmitter<Gp, Imm> for Assembler<'_> {
3327    fn adr(&mut self, op0: Gp, op1: Imm) {
3328        self.emit_n(InstId::Adr, &[op0.as_operand(), op1.as_operand()]);
3329    }
3330}
3331
3332impl AdrEmitter<Gp, Label> for Assembler<'_> {
3333    fn adr(&mut self, op0: Gp, op1: Label) {
3334        self.emit_n(InstId::Adr, &[op0.as_operand(), op1.as_operand()]);
3335    }
3336}
3337
3338impl AdrEmitter<Gp, Sym> for Assembler<'_> {
3339    fn adr(&mut self, op0: Gp, op1: Sym) {
3340        self.emit_n(InstId::Adr, &[op0.as_operand(), op1.as_operand()]);
3341    }
3342}
3343
3344impl AdrpEmitter<Gp, Imm> for Assembler<'_> {
3345    fn adrp(&mut self, op0: Gp, op1: Imm) {
3346        self.emit_n(InstId::Adrp, &[op0.as_operand(), op1.as_operand()]);
3347    }
3348}
3349
3350impl AdrpEmitter<Gp, Label> for Assembler<'_> {
3351    fn adrp(&mut self, op0: Gp, op1: Label) {
3352        self.emit_n(InstId::Adrp, &[op0.as_operand(), op1.as_operand()]);
3353    }
3354}
3355
3356impl AdrpEmitter<Gp, Sym> for Assembler<'_> {
3357    fn adrp(&mut self, op0: Gp, op1: Sym) {
3358        self.emit_n(InstId::Adrp, &[op0.as_operand(), op1.as_operand()]);
3359    }
3360}
3361
3362impl AndEmitter<Gp, Gp, Imm> for Assembler<'_> {
3363    fn and_(&mut self, op0: Gp, op1: Gp, op2: Imm) {
3364        self.emit_n(
3365            InstId::And,
3366            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3367        );
3368    }
3369}
3370
3371impl AndEmitter<Gp, Gp, Gp> for Assembler<'_> {
3372    fn and_(&mut self, op0: Gp, op1: Gp, op2: Gp) {
3373        self.emit_n(
3374            InstId::And,
3375            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3376        );
3377    }
3378}
3379
3380impl AndEmitter<Vec, Vec, Vec> for Assembler<'_> {
3381    fn and_(&mut self, op0: Vec, op1: Vec, op2: Vec) {
3382        self.emit_n(
3383            InstId::And_v,
3384            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3385        );
3386    }
3387}
3388
3389impl And4Emitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
3390    fn and__4(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
3391        self.emit_n(
3392            InstId::And,
3393            &[
3394                op0.as_operand(),
3395                op1.as_operand(),
3396                op2.as_operand(),
3397                op3.as_operand(),
3398            ],
3399        );
3400    }
3401}
3402
3403impl AndsEmitter<Gp, Gp, Imm> for Assembler<'_> {
3404    fn ands(&mut self, op0: Gp, op1: Gp, op2: Imm) {
3405        self.emit_n(
3406            InstId::Ands,
3407            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3408        );
3409    }
3410}
3411
3412impl AndsEmitter<Gp, Gp, Gp> for Assembler<'_> {
3413    fn ands(&mut self, op0: Gp, op1: Gp, op2: Gp) {
3414        self.emit_n(
3415            InstId::Ands,
3416            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3417        );
3418    }
3419}
3420
3421impl Ands4Emitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
3422    fn ands_4(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
3423        self.emit_n(
3424            InstId::Ands,
3425            &[
3426                op0.as_operand(),
3427                op1.as_operand(),
3428                op2.as_operand(),
3429                op3.as_operand(),
3430            ],
3431        );
3432    }
3433}
3434
3435impl AsrEmitter<Gp, Gp, Imm> for Assembler<'_> {
3436    fn asr(&mut self, op0: Gp, op1: Gp, op2: Imm) {
3437        self.emit_n(
3438            InstId::Asr,
3439            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3440        );
3441    }
3442}
3443
3444impl AsrEmitter<Gp, Gp, Gp> for Assembler<'_> {
3445    fn asr(&mut self, op0: Gp, op1: Gp, op2: Gp) {
3446        self.emit_n(
3447            InstId::Asr,
3448            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3449        );
3450    }
3451}
3452
3453impl AsrvEmitter<Gp, Gp, Gp> for Assembler<'_> {
3454    fn asrv(&mut self, op0: Gp, op1: Gp, op2: Gp) {
3455        self.emit_n(
3456            InstId::Asrv,
3457            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3458        );
3459    }
3460}
3461
3462impl AtEmitter<Imm, Gp> for Assembler<'_> {
3463    fn at(&mut self, op0: Imm, op1: Gp) {
3464        self.emit_n(InstId::At, &[op0.as_operand(), op1.as_operand()]);
3465    }
3466}
3467
3468impl BfcEmitter<Gp, Imm, Imm> for Assembler<'_> {
3469    fn bfc(&mut self, op0: Gp, op1: Imm, op2: Imm) {
3470        self.emit_n(
3471            InstId::Bfc,
3472            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3473        );
3474    }
3475}
3476
3477impl BfiEmitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
3478    fn bfi(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
3479        self.emit_n(
3480            InstId::Bfi,
3481            &[
3482                op0.as_operand(),
3483                op1.as_operand(),
3484                op2.as_operand(),
3485                op3.as_operand(),
3486            ],
3487        );
3488    }
3489}
3490
3491impl BfmEmitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
3492    fn bfm(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
3493        self.emit_n(
3494            InstId::Bfm,
3495            &[
3496                op0.as_operand(),
3497                op1.as_operand(),
3498                op2.as_operand(),
3499                op3.as_operand(),
3500            ],
3501        );
3502    }
3503}
3504
3505impl BfxilEmitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
3506    fn bfxil(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
3507        self.emit_n(
3508            InstId::Bfxil,
3509            &[
3510                op0.as_operand(),
3511                op1.as_operand(),
3512                op2.as_operand(),
3513                op3.as_operand(),
3514            ],
3515        );
3516    }
3517}
3518
3519impl BicEmitter<Gp, Gp, Imm> for Assembler<'_> {
3520    fn bic(&mut self, op0: Gp, op1: Gp, op2: Imm) {
3521        self.emit_n(
3522            InstId::Bic,
3523            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3524        );
3525    }
3526}
3527
3528impl BicEmitter<Gp, Gp, Gp> for Assembler<'_> {
3529    fn bic(&mut self, op0: Gp, op1: Gp, op2: Gp) {
3530        self.emit_n(
3531            InstId::Bic,
3532            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3533        );
3534    }
3535}
3536
3537impl BicEmitter<Vec, Vec, Vec> for Assembler<'_> {
3538    fn bic(&mut self, op0: Vec, op1: Vec, op2: Vec) {
3539        self.emit_n(
3540            InstId::Bic_v,
3541            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3542        );
3543    }
3544}
3545
3546impl BicEmitter<Vec, Imm, Imm> for Assembler<'_> {
3547    fn bic(&mut self, op0: Vec, op1: Imm, op2: Imm) {
3548        self.emit_n(
3549            InstId::Bic_v,
3550            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3551        );
3552    }
3553}
3554
3555impl Bic4Emitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
3556    fn bic_4(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
3557        self.emit_n(
3558            InstId::Bic,
3559            &[
3560                op0.as_operand(),
3561                op1.as_operand(),
3562                op2.as_operand(),
3563                op3.as_operand(),
3564            ],
3565        );
3566    }
3567}
3568
3569impl BicsEmitter<Gp, Gp, Imm> for Assembler<'_> {
3570    fn bics(&mut self, op0: Gp, op1: Gp, op2: Imm) {
3571        self.emit_n(
3572            InstId::Bics,
3573            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3574        );
3575    }
3576}
3577
3578impl BicsEmitter<Gp, Gp, Gp> for Assembler<'_> {
3579    fn bics(&mut self, op0: Gp, op1: Gp, op2: Gp) {
3580        self.emit_n(
3581            InstId::Bics,
3582            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3583        );
3584    }
3585}
3586
3587impl Bics4Emitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
3588    fn bics_4(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
3589        self.emit_n(
3590            InstId::Bics,
3591            &[
3592                op0.as_operand(),
3593                op1.as_operand(),
3594                op2.as_operand(),
3595                op3.as_operand(),
3596            ],
3597        );
3598    }
3599}
3600
3601impl BrkEmitter<Imm> for Assembler<'_> {
3602    fn brk(&mut self, op0: Imm) {
3603        self.emit_n(InstId::Brk, &[op0.as_operand()]);
3604    }
3605}
3606
3607impl CcmnEmitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
3608    fn ccmn(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
3609        self.emit_n(
3610            InstId::Ccmn,
3611            &[
3612                op0.as_operand(),
3613                op1.as_operand(),
3614                op2.as_operand(),
3615                op3.as_operand(),
3616            ],
3617        );
3618    }
3619}
3620
3621impl CcmnEmitter<Gp, Imm, Imm, Imm> for Assembler<'_> {
3622    fn ccmn(&mut self, op0: Gp, op1: Imm, op2: Imm, op3: Imm) {
3623        self.emit_n(
3624            InstId::Ccmn,
3625            &[
3626                op0.as_operand(),
3627                op1.as_operand(),
3628                op2.as_operand(),
3629                op3.as_operand(),
3630            ],
3631        );
3632    }
3633}
3634
3635impl CcmpEmitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
3636    fn ccmp(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
3637        self.emit_n(
3638            InstId::Ccmp,
3639            &[
3640                op0.as_operand(),
3641                op1.as_operand(),
3642                op2.as_operand(),
3643                op3.as_operand(),
3644            ],
3645        );
3646    }
3647}
3648
3649impl CcmpEmitter<Gp, Imm, Imm, Imm> for Assembler<'_> {
3650    fn ccmp(&mut self, op0: Gp, op1: Imm, op2: Imm, op3: Imm) {
3651        self.emit_n(
3652            InstId::Ccmp,
3653            &[
3654                op0.as_operand(),
3655                op1.as_operand(),
3656                op2.as_operand(),
3657                op3.as_operand(),
3658            ],
3659        );
3660    }
3661}
3662
3663impl CincEmitter<Gp, Gp, Imm> for Assembler<'_> {
3664    fn cinc(&mut self, op0: Gp, op1: Gp, op2: Imm) {
3665        self.emit_n(
3666            InstId::Cinc,
3667            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3668        );
3669    }
3670}
3671
3672impl CinvEmitter<Gp, Gp, Imm> for Assembler<'_> {
3673    fn cinv(&mut self, op0: Gp, op1: Gp, op2: Imm) {
3674        self.emit_n(
3675            InstId::Cinv,
3676            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3677        );
3678    }
3679}
3680
3681impl ClrexEmitter<Imm> for Assembler<'_> {
3682    fn clrex(&mut self, op0: Imm) {
3683        self.emit_n(InstId::Clrex, &[op0.as_operand()]);
3684    }
3685}
3686
3687impl ClsEmitter<Gp, Gp> for Assembler<'_> {
3688    fn cls(&mut self, op0: Gp, op1: Gp) {
3689        self.emit_n(InstId::Cls, &[op0.as_operand(), op1.as_operand()]);
3690    }
3691}
3692
3693impl ClsEmitter<Vec, Vec> for Assembler<'_> {
3694    fn cls(&mut self, op0: Vec, op1: Vec) {
3695        self.emit_n(InstId::Cls_v, &[op0.as_operand(), op1.as_operand()]);
3696    }
3697}
3698
3699impl ClzEmitter<Gp, Gp> for Assembler<'_> {
3700    fn clz(&mut self, op0: Gp, op1: Gp) {
3701        self.emit_n(InstId::Clz, &[op0.as_operand(), op1.as_operand()]);
3702    }
3703}
3704
3705impl ClzEmitter<Vec, Vec> for Assembler<'_> {
3706    fn clz(&mut self, op0: Vec, op1: Vec) {
3707        self.emit_n(InstId::Clz_v, &[op0.as_operand(), op1.as_operand()]);
3708    }
3709}
3710
3711impl CmnEmitter<Gp, Gp> for Assembler<'_> {
3712    fn cmn(&mut self, op0: Gp, op1: Gp) {
3713        self.emit_n(InstId::Cmn, &[op0.as_operand(), op1.as_operand()]);
3714    }
3715}
3716
3717impl CmnEmitter<Gp, Imm> for Assembler<'_> {
3718    fn cmn(&mut self, op0: Gp, op1: Imm) {
3719        self.emit_n(InstId::Cmn, &[op0.as_operand(), op1.as_operand()]);
3720    }
3721}
3722
3723impl Cmn3Emitter<Gp, Gp, Imm> for Assembler<'_> {
3724    fn cmn_3(&mut self, op0: Gp, op1: Gp, op2: Imm) {
3725        self.emit_n(
3726            InstId::Cmn,
3727            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3728        );
3729    }
3730}
3731
3732impl Cmn3Emitter<Gp, Imm, Imm> for Assembler<'_> {
3733    fn cmn_3(&mut self, op0: Gp, op1: Imm, op2: Imm) {
3734        self.emit_n(
3735            InstId::Cmn,
3736            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3737        );
3738    }
3739}
3740
3741impl CmpEmitter<Gp, Gp> for Assembler<'_> {
3742    fn cmp(&mut self, op0: Gp, op1: Gp) {
3743        self.emit_n(InstId::Cmp, &[op0.as_operand(), op1.as_operand()]);
3744    }
3745}
3746
3747impl CmpEmitter<Gp, Imm> for Assembler<'_> {
3748    fn cmp(&mut self, op0: Gp, op1: Imm) {
3749        self.emit_n(InstId::Cmp, &[op0.as_operand(), op1.as_operand()]);
3750    }
3751}
3752
3753impl Cmp3Emitter<Gp, Gp, Imm> for Assembler<'_> {
3754    fn cmp_3(&mut self, op0: Gp, op1: Gp, op2: Imm) {
3755        self.emit_n(
3756            InstId::Cmp,
3757            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3758        );
3759    }
3760}
3761
3762impl Cmp3Emitter<Gp, Imm, Imm> for Assembler<'_> {
3763    fn cmp_3(&mut self, op0: Gp, op1: Imm, op2: Imm) {
3764        self.emit_n(
3765            InstId::Cmp,
3766            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3767        );
3768    }
3769}
3770
3771impl CnegEmitter<Gp, Gp, Imm> for Assembler<'_> {
3772    fn cneg(&mut self, op0: Gp, op1: Gp, op2: Imm) {
3773        self.emit_n(
3774            InstId::Cneg,
3775            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3776        );
3777    }
3778}
3779
3780impl CselEmitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
3781    fn csel(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
3782        self.emit_n(
3783            InstId::Csel,
3784            &[
3785                op0.as_operand(),
3786                op1.as_operand(),
3787                op2.as_operand(),
3788                op3.as_operand(),
3789            ],
3790        );
3791    }
3792}
3793
3794impl CsetEmitter<Gp, Imm> for Assembler<'_> {
3795    fn cset(&mut self, op0: Gp, op1: Imm) {
3796        self.emit_n(InstId::Cset, &[op0.as_operand(), op1.as_operand()]);
3797    }
3798}
3799
3800impl CsetmEmitter<Gp, Imm> for Assembler<'_> {
3801    fn csetm(&mut self, op0: Gp, op1: Imm) {
3802        self.emit_n(InstId::Csetm, &[op0.as_operand(), op1.as_operand()]);
3803    }
3804}
3805
3806impl CsincEmitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
3807    fn csinc(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
3808        self.emit_n(
3809            InstId::Csinc,
3810            &[
3811                op0.as_operand(),
3812                op1.as_operand(),
3813                op2.as_operand(),
3814                op3.as_operand(),
3815            ],
3816        );
3817    }
3818}
3819
3820impl CsinvEmitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
3821    fn csinv(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
3822        self.emit_n(
3823            InstId::Csinv,
3824            &[
3825                op0.as_operand(),
3826                op1.as_operand(),
3827                op2.as_operand(),
3828                op3.as_operand(),
3829            ],
3830        );
3831    }
3832}
3833
3834impl CsnegEmitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
3835    fn csneg(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
3836        self.emit_n(
3837            InstId::Csneg,
3838            &[
3839                op0.as_operand(),
3840                op1.as_operand(),
3841                op2.as_operand(),
3842                op3.as_operand(),
3843            ],
3844        );
3845    }
3846}
3847
3848impl DcEmitter<Imm, Gp> for Assembler<'_> {
3849    fn dc(&mut self, op0: Imm, op1: Gp) {
3850        self.emit_n(InstId::Dc, &[op0.as_operand(), op1.as_operand()]);
3851    }
3852}
3853
3854impl DmbEmitter<Imm> for Assembler<'_> {
3855    fn dmb(&mut self, op0: Imm) {
3856        self.emit_n(InstId::Dmb, &[op0.as_operand()]);
3857    }
3858}
3859
3860impl DsbEmitter<Imm> for Assembler<'_> {
3861    fn dsb(&mut self, op0: Imm) {
3862        self.emit_n(InstId::Dsb, &[op0.as_operand()]);
3863    }
3864}
3865
3866impl DrpsEmitter for Assembler<'_> {
3867    fn drps(&mut self) {
3868        self.emit_n(InstId::Drps, &[]);
3869    }
3870}
3871
3872impl EonEmitter<Gp, Gp, Gp> for Assembler<'_> {
3873    fn eon(&mut self, op0: Gp, op1: Gp, op2: Gp) {
3874        self.emit_n(
3875            InstId::Eon,
3876            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3877        );
3878    }
3879}
3880
3881impl Eon4Emitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
3882    fn eon_4(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
3883        self.emit_n(
3884            InstId::Eon,
3885            &[
3886                op0.as_operand(),
3887                op1.as_operand(),
3888                op2.as_operand(),
3889                op3.as_operand(),
3890            ],
3891        );
3892    }
3893}
3894
3895impl EorEmitter<Gp, Gp, Imm> for Assembler<'_> {
3896    fn eor(&mut self, op0: Gp, op1: Gp, op2: Imm) {
3897        self.emit_n(
3898            InstId::Eor,
3899            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3900        );
3901    }
3902}
3903
3904impl EorEmitter<Gp, Gp, Gp> for Assembler<'_> {
3905    fn eor(&mut self, op0: Gp, op1: Gp, op2: Gp) {
3906        self.emit_n(
3907            InstId::Eor,
3908            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3909        );
3910    }
3911}
3912
3913impl EorEmitter<Vec, Vec, Vec> for Assembler<'_> {
3914    fn eor(&mut self, op0: Vec, op1: Vec, op2: Vec) {
3915        self.emit_n(
3916            InstId::Eor_v,
3917            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3918        );
3919    }
3920}
3921
3922impl Eor4Emitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
3923    fn eor_4(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
3924        self.emit_n(
3925            InstId::Eor,
3926            &[
3927                op0.as_operand(),
3928                op1.as_operand(),
3929                op2.as_operand(),
3930                op3.as_operand(),
3931            ],
3932        );
3933    }
3934}
3935
3936impl EretEmitter for Assembler<'_> {
3937    fn eret(&mut self) {
3938        self.emit_n(InstId::Eret, &[]);
3939    }
3940}
3941
3942impl EsbEmitter for Assembler<'_> {
3943    fn esb(&mut self) {
3944        self.emit_n(InstId::Esb, &[]);
3945    }
3946}
3947
3948impl ExtrEmitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
3949    fn extr(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
3950        self.emit_n(
3951            InstId::Extr,
3952            &[
3953                op0.as_operand(),
3954                op1.as_operand(),
3955                op2.as_operand(),
3956                op3.as_operand(),
3957            ],
3958        );
3959    }
3960}
3961
3962impl HltEmitter<Imm> for Assembler<'_> {
3963    fn hlt(&mut self, op0: Imm) {
3964        self.emit_n(InstId::Hlt, &[op0.as_operand()]);
3965    }
3966}
3967
3968impl HvcEmitter<Imm> for Assembler<'_> {
3969    fn hvc(&mut self, op0: Imm) {
3970        self.emit_n(InstId::Hvc, &[op0.as_operand()]);
3971    }
3972}
3973
3974impl IcEmitter<Imm, Gp> for Assembler<'_> {
3975    fn ic(&mut self, op0: Imm, op1: Gp) {
3976        self.emit_n(InstId::Ic, &[op0.as_operand(), op1.as_operand()]);
3977    }
3978}
3979
3980impl IsbEmitter<Imm> for Assembler<'_> {
3981    fn isb(&mut self, op0: Imm) {
3982        self.emit_n(InstId::Isb, &[op0.as_operand()]);
3983    }
3984}
3985
3986impl LslEmitter<Gp, Gp, Imm> for Assembler<'_> {
3987    fn lsl(&mut self, op0: Gp, op1: Gp, op2: Imm) {
3988        self.emit_n(
3989            InstId::Lsl,
3990            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
3991        );
3992    }
3993}
3994
3995impl LslEmitter<Gp, Gp, Gp> for Assembler<'_> {
3996    fn lsl(&mut self, op0: Gp, op1: Gp, op2: Gp) {
3997        self.emit_n(
3998            InstId::Lsl,
3999            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4000        );
4001    }
4002}
4003
4004impl LslvEmitter<Gp, Gp, Gp> for Assembler<'_> {
4005    fn lslv(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4006        self.emit_n(
4007            InstId::Lslv,
4008            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4009        );
4010    }
4011}
4012
4013impl LsrEmitter<Gp, Gp, Imm> for Assembler<'_> {
4014    fn lsr(&mut self, op0: Gp, op1: Gp, op2: Imm) {
4015        self.emit_n(
4016            InstId::Lsr,
4017            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4018        );
4019    }
4020}
4021
4022impl LsrEmitter<Gp, Gp, Gp> for Assembler<'_> {
4023    fn lsr(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4024        self.emit_n(
4025            InstId::Lsr,
4026            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4027        );
4028    }
4029}
4030
4031impl LsrvEmitter<Gp, Gp, Gp> for Assembler<'_> {
4032    fn lsrv(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4033        self.emit_n(
4034            InstId::Lsrv,
4035            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4036        );
4037    }
4038}
4039
4040impl MaddEmitter<Gp, Gp, Gp, Gp> for Assembler<'_> {
4041    fn madd(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Gp) {
4042        self.emit_n(
4043            InstId::Madd,
4044            &[
4045                op0.as_operand(),
4046                op1.as_operand(),
4047                op2.as_operand(),
4048                op3.as_operand(),
4049            ],
4050        );
4051    }
4052}
4053
4054impl MnegEmitter<Gp, Gp, Gp> for Assembler<'_> {
4055    fn mneg(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4056        self.emit_n(
4057            InstId::Mneg,
4058            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4059        );
4060    }
4061}
4062
4063impl MovEmitter<Gp, Gp> for Assembler<'_> {
4064    fn mov(&mut self, op0: Gp, op1: Gp) {
4065        self.emit_n(InstId::Mov, &[op0.as_operand(), op1.as_operand()]);
4066    }
4067}
4068
4069impl MovEmitter<Gp, Imm> for Assembler<'_> {
4070    fn mov(&mut self, op0: Gp, op1: Imm) {
4071        self.emit_n(InstId::Mov, &[op0.as_operand(), op1.as_operand()]);
4072    }
4073}
4074
4075impl MovEmitter<Vec, Vec> for Assembler<'_> {
4076    fn mov(&mut self, op0: Vec, op1: Vec) {
4077        self.emit_n(InstId::Mov_v, &[op0.as_operand(), op1.as_operand()]);
4078    }
4079}
4080
4081impl MovEmitter<Gp, Vec> for Assembler<'_> {
4082    fn mov(&mut self, op0: Gp, op1: Vec) {
4083        self.emit_n(InstId::Mov_v, &[op0.as_operand(), op1.as_operand()]);
4084    }
4085}
4086
4087impl MovEmitter<Vec, Gp> for Assembler<'_> {
4088    fn mov(&mut self, op0: Vec, op1: Gp) {
4089        self.emit_n(InstId::Mov_v, &[op0.as_operand(), op1.as_operand()]);
4090    }
4091}
4092
4093impl MovkEmitter<Gp, Imm> for Assembler<'_> {
4094    fn movk(&mut self, op0: Gp, op1: Imm) {
4095        self.emit_n(InstId::Movk, &[op0.as_operand(), op1.as_operand()]);
4096    }
4097}
4098
4099impl Movk3Emitter<Gp, Imm, Imm> for Assembler<'_> {
4100    fn movk_3(&mut self, op0: Gp, op1: Imm, op2: Imm) {
4101        self.emit_n(
4102            InstId::Movk,
4103            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4104        );
4105    }
4106}
4107
4108impl MovnEmitter<Gp, Imm> for Assembler<'_> {
4109    fn movn(&mut self, op0: Gp, op1: Imm) {
4110        self.emit_n(InstId::Movn, &[op0.as_operand(), op1.as_operand()]);
4111    }
4112}
4113
4114impl Movn3Emitter<Gp, Imm, Imm> for Assembler<'_> {
4115    fn movn_3(&mut self, op0: Gp, op1: Imm, op2: Imm) {
4116        self.emit_n(
4117            InstId::Movn,
4118            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4119        );
4120    }
4121}
4122
4123impl MovzEmitter<Gp, Imm> for Assembler<'_> {
4124    fn movz(&mut self, op0: Gp, op1: Imm) {
4125        self.emit_n(InstId::Movz, &[op0.as_operand(), op1.as_operand()]);
4126    }
4127}
4128
4129impl Movz3Emitter<Gp, Imm, Imm> for Assembler<'_> {
4130    fn movz_3(&mut self, op0: Gp, op1: Imm, op2: Imm) {
4131        self.emit_n(
4132            InstId::Movz,
4133            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4134        );
4135    }
4136}
4137
4138impl MrsEmitter<Gp, Imm> for Assembler<'_> {
4139    fn mrs(&mut self, op0: Gp, op1: Imm) {
4140        self.emit_n(InstId::Mrs, &[op0.as_operand(), op1.as_operand()]);
4141    }
4142}
4143
4144impl MsrEmitter<Imm, Gp> for Assembler<'_> {
4145    fn msr(&mut self, op0: Imm, op1: Gp) {
4146        self.emit_n(InstId::Msr, &[op0.as_operand(), op1.as_operand()]);
4147    }
4148}
4149
4150impl MsrEmitter<Imm, Imm> for Assembler<'_> {
4151    fn msr(&mut self, op0: Imm, op1: Imm) {
4152        self.emit_n(InstId::Msr, &[op0.as_operand(), op1.as_operand()]);
4153    }
4154}
4155
4156impl MsubEmitter<Gp, Gp, Gp, Gp> for Assembler<'_> {
4157    fn msub(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Gp) {
4158        self.emit_n(
4159            InstId::Msub,
4160            &[
4161                op0.as_operand(),
4162                op1.as_operand(),
4163                op2.as_operand(),
4164                op3.as_operand(),
4165            ],
4166        );
4167    }
4168}
4169
4170impl MulEmitter<Gp, Gp, Gp> for Assembler<'_> {
4171    fn mul(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4172        self.emit_n(
4173            InstId::Mul,
4174            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4175        );
4176    }
4177}
4178
4179impl MulEmitter<Vec, Vec, Vec> for Assembler<'_> {
4180    fn mul(&mut self, op0: Vec, op1: Vec, op2: Vec) {
4181        self.emit_n(
4182            InstId::Mul_v,
4183            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4184        );
4185    }
4186}
4187
4188impl MvnEmitter<Gp, Gp> for Assembler<'_> {
4189    fn mvn(&mut self, op0: Gp, op1: Gp) {
4190        self.emit_n(InstId::Mvn, &[op0.as_operand(), op1.as_operand()]);
4191    }
4192}
4193
4194impl MvnEmitter<Vec, Vec> for Assembler<'_> {
4195    fn mvn(&mut self, op0: Vec, op1: Vec) {
4196        self.emit_n(InstId::Mvn_v, &[op0.as_operand(), op1.as_operand()]);
4197    }
4198}
4199
4200impl Mvn3Emitter<Gp, Gp, Imm> for Assembler<'_> {
4201    fn mvn_3(&mut self, op0: Gp, op1: Gp, op2: Imm) {
4202        self.emit_n(
4203            InstId::Mvn,
4204            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4205        );
4206    }
4207}
4208
4209impl Mvn_Emitter<Gp, Gp> for Assembler<'_> {
4210    fn mvn_(&mut self, op0: Gp, op1: Gp) {
4211        self.emit_n(InstId::Mvn, &[op0.as_operand(), op1.as_operand()]);
4212    }
4213}
4214
4215impl Mvn_Emitter<Vec, Vec> for Assembler<'_> {
4216    fn mvn_(&mut self, op0: Vec, op1: Vec) {
4217        self.emit_n(InstId::Mvn_v, &[op0.as_operand(), op1.as_operand()]);
4218    }
4219}
4220
4221impl Mvn_3Emitter<Gp, Gp, Imm> for Assembler<'_> {
4222    fn mvn__3(&mut self, op0: Gp, op1: Gp, op2: Imm) {
4223        self.emit_n(
4224            InstId::Mvn,
4225            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4226        );
4227    }
4228}
4229
4230impl NegEmitter<Gp, Gp> for Assembler<'_> {
4231    fn neg(&mut self, op0: Gp, op1: Gp) {
4232        self.emit_n(InstId::Neg, &[op0.as_operand(), op1.as_operand()]);
4233    }
4234}
4235
4236impl NegEmitter<Vec, Vec> for Assembler<'_> {
4237    fn neg(&mut self, op0: Vec, op1: Vec) {
4238        self.emit_n(InstId::Neg_v, &[op0.as_operand(), op1.as_operand()]);
4239    }
4240}
4241
4242impl Neg3Emitter<Gp, Gp, Imm> for Assembler<'_> {
4243    fn neg_3(&mut self, op0: Gp, op1: Gp, op2: Imm) {
4244        self.emit_n(
4245            InstId::Neg,
4246            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4247        );
4248    }
4249}
4250
4251impl NegsEmitter<Gp, Gp> for Assembler<'_> {
4252    fn negs(&mut self, op0: Gp, op1: Gp) {
4253        self.emit_n(InstId::Negs, &[op0.as_operand(), op1.as_operand()]);
4254    }
4255}
4256
4257impl Negs3Emitter<Gp, Gp, Imm> for Assembler<'_> {
4258    fn negs_3(&mut self, op0: Gp, op1: Gp, op2: Imm) {
4259        self.emit_n(
4260            InstId::Negs,
4261            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4262        );
4263    }
4264}
4265
4266impl NgcEmitter<Gp, Gp> for Assembler<'_> {
4267    fn ngc(&mut self, op0: Gp, op1: Gp) {
4268        self.emit_n(InstId::Ngc, &[op0.as_operand(), op1.as_operand()]);
4269    }
4270}
4271
4272impl NgcsEmitter<Gp, Gp> for Assembler<'_> {
4273    fn ngcs(&mut self, op0: Gp, op1: Gp) {
4274        self.emit_n(InstId::Ngcs, &[op0.as_operand(), op1.as_operand()]);
4275    }
4276}
4277
4278impl OrnEmitter<Gp, Gp, Gp> for Assembler<'_> {
4279    fn orn(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4280        self.emit_n(
4281            InstId::Orn,
4282            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4283        );
4284    }
4285}
4286
4287impl OrnEmitter<Vec, Vec, Vec> for Assembler<'_> {
4288    fn orn(&mut self, op0: Vec, op1: Vec, op2: Vec) {
4289        self.emit_n(
4290            InstId::Orn_v,
4291            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4292        );
4293    }
4294}
4295
4296impl Orn4Emitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
4297    fn orn_4(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
4298        self.emit_n(
4299            InstId::Orn,
4300            &[
4301                op0.as_operand(),
4302                op1.as_operand(),
4303                op2.as_operand(),
4304                op3.as_operand(),
4305            ],
4306        );
4307    }
4308}
4309
4310impl OrrEmitter<Gp, Gp, Imm> for Assembler<'_> {
4311    fn orr(&mut self, op0: Gp, op1: Gp, op2: Imm) {
4312        self.emit_n(
4313            InstId::Orr,
4314            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4315        );
4316    }
4317}
4318
4319impl OrrEmitter<Gp, Gp, Gp> for Assembler<'_> {
4320    fn orr(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4321        self.emit_n(
4322            InstId::Orr,
4323            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4324        );
4325    }
4326}
4327
4328impl OrrEmitter<Vec, Vec, Vec> for Assembler<'_> {
4329    fn orr(&mut self, op0: Vec, op1: Vec, op2: Vec) {
4330        self.emit_n(
4331            InstId::Orr_v,
4332            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4333        );
4334    }
4335}
4336
4337impl OrrEmitter<Vec, Imm, Imm> for Assembler<'_> {
4338    fn orr(&mut self, op0: Vec, op1: Imm, op2: Imm) {
4339        self.emit_n(
4340            InstId::Orr_v,
4341            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4342        );
4343    }
4344}
4345
4346impl Orr4Emitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
4347    fn orr_4(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
4348        self.emit_n(
4349            InstId::Orr,
4350            &[
4351                op0.as_operand(),
4352                op1.as_operand(),
4353                op2.as_operand(),
4354                op3.as_operand(),
4355            ],
4356        );
4357    }
4358}
4359
4360impl RbitEmitter<Gp, Gp> for Assembler<'_> {
4361    fn rbit(&mut self, op0: Gp, op1: Gp) {
4362        self.emit_n(InstId::Rbit, &[op0.as_operand(), op1.as_operand()]);
4363    }
4364}
4365
4366impl RbitEmitter<Vec, Vec> for Assembler<'_> {
4367    fn rbit(&mut self, op0: Vec, op1: Vec) {
4368        self.emit_n(InstId::Rbit_v, &[op0.as_operand(), op1.as_operand()]);
4369    }
4370}
4371
4372impl RetEmitter<Gp> for Assembler<'_> {
4373    fn ret(&mut self, op0: Gp) {
4374        self.emit_n(InstId::Ret, &[op0.as_operand()]);
4375    }
4376}
4377
4378impl RevEmitter<Gp, Gp> for Assembler<'_> {
4379    fn rev(&mut self, op0: Gp, op1: Gp) {
4380        self.emit_n(InstId::Rev, &[op0.as_operand(), op1.as_operand()]);
4381    }
4382}
4383
4384impl Rev16Emitter<Gp, Gp> for Assembler<'_> {
4385    fn rev16(&mut self, op0: Gp, op1: Gp) {
4386        self.emit_n(InstId::Rev16, &[op0.as_operand(), op1.as_operand()]);
4387    }
4388}
4389
4390impl Rev16Emitter<Vec, Vec> for Assembler<'_> {
4391    fn rev16(&mut self, op0: Vec, op1: Vec) {
4392        self.emit_n(InstId::Rev16_v, &[op0.as_operand(), op1.as_operand()]);
4393    }
4394}
4395
4396impl Rev32Emitter<Gp, Gp> for Assembler<'_> {
4397    fn rev32(&mut self, op0: Gp, op1: Gp) {
4398        self.emit_n(InstId::Rev32, &[op0.as_operand(), op1.as_operand()]);
4399    }
4400}
4401
4402impl Rev32Emitter<Vec, Vec> for Assembler<'_> {
4403    fn rev32(&mut self, op0: Vec, op1: Vec) {
4404        self.emit_n(InstId::Rev32_v, &[op0.as_operand(), op1.as_operand()]);
4405    }
4406}
4407
4408impl Rev64Emitter<Gp, Gp> for Assembler<'_> {
4409    fn rev64(&mut self, op0: Gp, op1: Gp) {
4410        self.emit_n(InstId::Rev64, &[op0.as_operand(), op1.as_operand()]);
4411    }
4412}
4413
4414impl Rev64Emitter<Vec, Vec> for Assembler<'_> {
4415    fn rev64(&mut self, op0: Vec, op1: Vec) {
4416        self.emit_n(InstId::Rev64_v, &[op0.as_operand(), op1.as_operand()]);
4417    }
4418}
4419
4420impl RorEmitter<Gp, Gp, Imm> for Assembler<'_> {
4421    fn ror(&mut self, op0: Gp, op1: Gp, op2: Imm) {
4422        self.emit_n(
4423            InstId::Ror,
4424            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4425        );
4426    }
4427}
4428
4429impl RorEmitter<Gp, Gp, Gp> for Assembler<'_> {
4430    fn ror(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4431        self.emit_n(
4432            InstId::Ror,
4433            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4434        );
4435    }
4436}
4437
4438impl RorvEmitter<Gp, Gp, Gp> for Assembler<'_> {
4439    fn rorv(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4440        self.emit_n(
4441            InstId::Rorv,
4442            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4443        );
4444    }
4445}
4446
4447impl SbcEmitter<Gp, Gp, Gp> for Assembler<'_> {
4448    fn sbc(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4449        self.emit_n(
4450            InstId::Sbc,
4451            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4452        );
4453    }
4454}
4455
4456impl SbcsEmitter<Gp, Gp, Gp> for Assembler<'_> {
4457    fn sbcs(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4458        self.emit_n(
4459            InstId::Sbcs,
4460            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4461        );
4462    }
4463}
4464
4465impl SbfizEmitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
4466    fn sbfiz(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
4467        self.emit_n(
4468            InstId::Sbfiz,
4469            &[
4470                op0.as_operand(),
4471                op1.as_operand(),
4472                op2.as_operand(),
4473                op3.as_operand(),
4474            ],
4475        );
4476    }
4477}
4478
4479impl SbfmEmitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
4480    fn sbfm(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
4481        self.emit_n(
4482            InstId::Sbfm,
4483            &[
4484                op0.as_operand(),
4485                op1.as_operand(),
4486                op2.as_operand(),
4487                op3.as_operand(),
4488            ],
4489        );
4490    }
4491}
4492
4493impl SbfxEmitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
4494    fn sbfx(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
4495        self.emit_n(
4496            InstId::Sbfx,
4497            &[
4498                op0.as_operand(),
4499                op1.as_operand(),
4500                op2.as_operand(),
4501                op3.as_operand(),
4502            ],
4503        );
4504    }
4505}
4506
4507impl SdivEmitter<Gp, Gp, Gp> for Assembler<'_> {
4508    fn sdiv(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4509        self.emit_n(
4510            InstId::Sdiv,
4511            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4512        );
4513    }
4514}
4515
4516impl SmaddlEmitter<Gp, Gp, Gp, Gp> for Assembler<'_> {
4517    fn smaddl(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Gp) {
4518        self.emit_n(
4519            InstId::Smaddl,
4520            &[
4521                op0.as_operand(),
4522                op1.as_operand(),
4523                op2.as_operand(),
4524                op3.as_operand(),
4525            ],
4526        );
4527    }
4528}
4529
4530impl SmcEmitter<Imm> for Assembler<'_> {
4531    fn smc(&mut self, op0: Imm) {
4532        self.emit_n(InstId::Smc, &[op0.as_operand()]);
4533    }
4534}
4535
4536impl SmneglEmitter<Gp, Gp, Gp> for Assembler<'_> {
4537    fn smnegl(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4538        self.emit_n(
4539            InstId::Smnegl,
4540            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4541        );
4542    }
4543}
4544
4545impl SmsublEmitter<Gp, Gp, Gp, Gp> for Assembler<'_> {
4546    fn smsubl(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Gp) {
4547        self.emit_n(
4548            InstId::Smsubl,
4549            &[
4550                op0.as_operand(),
4551                op1.as_operand(),
4552                op2.as_operand(),
4553                op3.as_operand(),
4554            ],
4555        );
4556    }
4557}
4558
4559impl SmulhEmitter<Gp, Gp, Gp> for Assembler<'_> {
4560    fn smulh(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4561        self.emit_n(
4562            InstId::Smulh,
4563            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4564        );
4565    }
4566}
4567
4568impl SmullEmitter<Gp, Gp, Gp> for Assembler<'_> {
4569    fn smull(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4570        self.emit_n(
4571            InstId::Smull,
4572            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4573        );
4574    }
4575}
4576
4577impl SmullEmitter<Vec, Vec, Vec> for Assembler<'_> {
4578    fn smull(&mut self, op0: Vec, op1: Vec, op2: Vec) {
4579        self.emit_n(
4580            InstId::Smull_v,
4581            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4582        );
4583    }
4584}
4585
4586impl SubEmitter<Gp, Gp, Gp> for Assembler<'_> {
4587    fn sub(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4588        self.emit_n(
4589            InstId::Sub,
4590            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4591        );
4592    }
4593}
4594
4595impl SubEmitter<Gp, Gp, Imm> for Assembler<'_> {
4596    fn sub(&mut self, op0: Gp, op1: Gp, op2: Imm) {
4597        self.emit_n(
4598            InstId::Sub,
4599            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4600        );
4601    }
4602}
4603
4604impl SubEmitter<Vec, Vec, Vec> for Assembler<'_> {
4605    fn sub(&mut self, op0: Vec, op1: Vec, op2: Vec) {
4606        self.emit_n(
4607            InstId::Sub_v,
4608            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4609        );
4610    }
4611}
4612
4613impl Sub4Emitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
4614    fn sub_4(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
4615        self.emit_n(
4616            InstId::Sub,
4617            &[
4618                op0.as_operand(),
4619                op1.as_operand(),
4620                op2.as_operand(),
4621                op3.as_operand(),
4622            ],
4623        );
4624    }
4625}
4626
4627impl Sub4Emitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
4628    fn sub_4(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
4629        self.emit_n(
4630            InstId::Sub,
4631            &[
4632                op0.as_operand(),
4633                op1.as_operand(),
4634                op2.as_operand(),
4635                op3.as_operand(),
4636            ],
4637        );
4638    }
4639}
4640
4641impl SubsEmitter<Gp, Gp, Gp> for Assembler<'_> {
4642    fn subs(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4643        self.emit_n(
4644            InstId::Subs,
4645            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4646        );
4647    }
4648}
4649
4650impl SubsEmitter<Gp, Gp, Imm> for Assembler<'_> {
4651    fn subs(&mut self, op0: Gp, op1: Gp, op2: Imm) {
4652        self.emit_n(
4653            InstId::Subs,
4654            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4655        );
4656    }
4657}
4658
4659impl Subs4Emitter<Gp, Gp, Gp, Imm> for Assembler<'_> {
4660    fn subs_4(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Imm) {
4661        self.emit_n(
4662            InstId::Subs,
4663            &[
4664                op0.as_operand(),
4665                op1.as_operand(),
4666                op2.as_operand(),
4667                op3.as_operand(),
4668            ],
4669        );
4670    }
4671}
4672
4673impl Subs4Emitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
4674    fn subs_4(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
4675        self.emit_n(
4676            InstId::Subs,
4677            &[
4678                op0.as_operand(),
4679                op1.as_operand(),
4680                op2.as_operand(),
4681                op3.as_operand(),
4682            ],
4683        );
4684    }
4685}
4686
4687impl SvcEmitter<Imm> for Assembler<'_> {
4688    fn svc(&mut self, op0: Imm) {
4689        self.emit_n(InstId::Svc, &[op0.as_operand()]);
4690    }
4691}
4692
4693impl SxtbEmitter<Gp, Gp> for Assembler<'_> {
4694    fn sxtb(&mut self, op0: Gp, op1: Gp) {
4695        self.emit_n(InstId::Sxtb, &[op0.as_operand(), op1.as_operand()]);
4696    }
4697}
4698
4699impl SxthEmitter<Gp, Gp> for Assembler<'_> {
4700    fn sxth(&mut self, op0: Gp, op1: Gp) {
4701        self.emit_n(InstId::Sxth, &[op0.as_operand(), op1.as_operand()]);
4702    }
4703}
4704
4705impl SxtwEmitter<Gp, Gp> for Assembler<'_> {
4706    fn sxtw(&mut self, op0: Gp, op1: Gp) {
4707        self.emit_n(InstId::Sxtw, &[op0.as_operand(), op1.as_operand()]);
4708    }
4709}
4710
4711impl SysEmitter<Imm, Imm, Imm, Imm> for Assembler<'_> {
4712    fn sys(&mut self, op0: Imm, op1: Imm, op2: Imm, op3: Imm) {
4713        self.emit_n(
4714            InstId::Sys,
4715            &[
4716                op0.as_operand(),
4717                op1.as_operand(),
4718                op2.as_operand(),
4719                op3.as_operand(),
4720            ],
4721        );
4722    }
4723}
4724
4725impl Sys5Emitter<Imm, Imm, Imm, Imm, Gp> for Assembler<'_> {
4726    fn sys_5(&mut self, op0: Imm, op1: Imm, op2: Imm, op3: Imm, op4: Gp) {
4727        self.emit_n(
4728            InstId::Sys,
4729            &[
4730                op0.as_operand(),
4731                op1.as_operand(),
4732                op2.as_operand(),
4733                op3.as_operand(),
4734                op4.as_operand(),
4735            ],
4736        );
4737    }
4738}
4739
4740impl TlbiEmitter<Imm, Gp> for Assembler<'_> {
4741    fn tlbi(&mut self, op0: Imm, op1: Gp) {
4742        self.emit_n(InstId::Tlbi, &[op0.as_operand(), op1.as_operand()]);
4743    }
4744}
4745
4746impl TstEmitter<Gp, Imm> for Assembler<'_> {
4747    fn tst(&mut self, op0: Gp, op1: Imm) {
4748        self.emit_n(InstId::Tst, &[op0.as_operand(), op1.as_operand()]);
4749    }
4750}
4751
4752impl TstEmitter<Gp, Gp> for Assembler<'_> {
4753    fn tst(&mut self, op0: Gp, op1: Gp) {
4754        self.emit_n(InstId::Tst, &[op0.as_operand(), op1.as_operand()]);
4755    }
4756}
4757
4758impl Tst3Emitter<Gp, Gp, Imm> for Assembler<'_> {
4759    fn tst_3(&mut self, op0: Gp, op1: Gp, op2: Imm) {
4760        self.emit_n(
4761            InstId::Tst,
4762            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4763        );
4764    }
4765}
4766
4767impl UdivEmitter<Gp, Gp, Gp> for Assembler<'_> {
4768    fn udiv(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4769        self.emit_n(
4770            InstId::Udiv,
4771            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4772        );
4773    }
4774}
4775
4776impl UbfizEmitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
4777    fn ubfiz(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
4778        self.emit_n(
4779            InstId::Ubfiz,
4780            &[
4781                op0.as_operand(),
4782                op1.as_operand(),
4783                op2.as_operand(),
4784                op3.as_operand(),
4785            ],
4786        );
4787    }
4788}
4789
4790impl UbfmEmitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
4791    fn ubfm(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
4792        self.emit_n(
4793            InstId::Ubfm,
4794            &[
4795                op0.as_operand(),
4796                op1.as_operand(),
4797                op2.as_operand(),
4798                op3.as_operand(),
4799            ],
4800        );
4801    }
4802}
4803
4804impl UbfxEmitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
4805    fn ubfx(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
4806        self.emit_n(
4807            InstId::Ubfx,
4808            &[
4809                op0.as_operand(),
4810                op1.as_operand(),
4811                op2.as_operand(),
4812                op3.as_operand(),
4813            ],
4814        );
4815    }
4816}
4817
4818impl UmaddlEmitter<Gp, Gp, Gp, Gp> for Assembler<'_> {
4819    fn umaddl(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Gp) {
4820        self.emit_n(
4821            InstId::Umaddl,
4822            &[
4823                op0.as_operand(),
4824                op1.as_operand(),
4825                op2.as_operand(),
4826                op3.as_operand(),
4827            ],
4828        );
4829    }
4830}
4831
4832impl UmneglEmitter<Gp, Gp, Gp> for Assembler<'_> {
4833    fn umnegl(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4834        self.emit_n(
4835            InstId::Umnegl,
4836            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4837        );
4838    }
4839}
4840
4841impl UmsublEmitter<Gp, Gp, Gp, Gp> for Assembler<'_> {
4842    fn umsubl(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Gp) {
4843        self.emit_n(
4844            InstId::Umsubl,
4845            &[
4846                op0.as_operand(),
4847                op1.as_operand(),
4848                op2.as_operand(),
4849                op3.as_operand(),
4850            ],
4851        );
4852    }
4853}
4854
4855impl UmullEmitter<Gp, Gp, Gp> for Assembler<'_> {
4856    fn umull(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4857        self.emit_n(
4858            InstId::Umull,
4859            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4860        );
4861    }
4862}
4863
4864impl UmullEmitter<Vec, Vec, Vec> for Assembler<'_> {
4865    fn umull(&mut self, op0: Vec, op1: Vec, op2: Vec) {
4866        self.emit_n(
4867            InstId::Umull_v,
4868            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4869        );
4870    }
4871}
4872
4873impl UmulhEmitter<Gp, Gp, Gp> for Assembler<'_> {
4874    fn umulh(&mut self, op0: Gp, op1: Gp, op2: Gp) {
4875        self.emit_n(
4876            InstId::Umulh,
4877            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
4878        );
4879    }
4880}
4881
4882impl UxtbEmitter<Gp, Gp> for Assembler<'_> {
4883    fn uxtb(&mut self, op0: Gp, op1: Gp) {
4884        self.emit_n(InstId::Uxtb, &[op0.as_operand(), op1.as_operand()]);
4885    }
4886}
4887
4888impl UxthEmitter<Gp, Gp> for Assembler<'_> {
4889    fn uxth(&mut self, op0: Gp, op1: Gp) {
4890        self.emit_n(InstId::Uxth, &[op0.as_operand(), op1.as_operand()]);
4891    }
4892}
4893
4894impl CsdbEmitter for Assembler<'_> {
4895    fn csdb(&mut self) {
4896        self.emit_n(InstId::Csdb, &[]);
4897    }
4898}
4899
4900impl Dcps1Emitter<Imm> for Assembler<'_> {
4901    fn dcps1(&mut self, op0: Imm) {
4902        self.emit_n(InstId::Dcps1, &[op0.as_operand()]);
4903    }
4904}
4905
4906impl Dcps2Emitter<Imm> for Assembler<'_> {
4907    fn dcps2(&mut self, op0: Imm) {
4908        self.emit_n(InstId::Dcps2, &[op0.as_operand()]);
4909    }
4910}
4911
4912impl Dcps3Emitter<Imm> for Assembler<'_> {
4913    fn dcps3(&mut self, op0: Imm) {
4914        self.emit_n(InstId::Dcps3, &[op0.as_operand()]);
4915    }
4916}
4917
4918impl PssbbEmitter for Assembler<'_> {
4919    fn pssbb(&mut self) {
4920        self.emit_n(InstId::Pssbb, &[]);
4921    }
4922}
4923
4924impl SsbbEmitter for Assembler<'_> {
4925    fn ssbb(&mut self) {
4926        self.emit_n(InstId::Ssbb, &[]);
4927    }
4928}
4929
4930impl UdfEmitter<Imm> for Assembler<'_> {
4931    fn udf(&mut self, op0: Imm) {
4932        self.emit_n(InstId::Udf, &[op0.as_operand()]);
4933    }
4934}
4935
4936impl BEmitter<Imm> for Assembler<'_> {
4937    fn b(&mut self, op0: Imm) {
4938        self.emit_n(InstId::B, &[op0.as_operand()]);
4939    }
4940
4941    fn b_eq(&mut self, op0: Imm) {
4942        self.emit_n(InstId::B.with_cc(CondCode::EQ), &[op0.as_operand()]);
4943    }
4944    fn b_ne(&mut self, op0: Imm) {
4945        self.emit_n(InstId::B.with_cc(CondCode::NE), &[op0.as_operand()]);
4946    }
4947    fn b_cs(&mut self, op0: Imm) {
4948        self.emit_n(InstId::B.with_cc(CondCode::CS), &[op0.as_operand()]);
4949    }
4950    fn b_hs(&mut self, op0: Imm) {
4951        self.emit_n(InstId::B.with_cc(CondCode::HS), &[op0.as_operand()]);
4952    }
4953    fn b_cc(&mut self, op0: Imm) {
4954        self.emit_n(InstId::B.with_cc(CondCode::CC), &[op0.as_operand()]);
4955    }
4956    fn b_lo(&mut self, op0: Imm) {
4957        self.emit_n(InstId::B.with_cc(CondCode::LO), &[op0.as_operand()]);
4958    }
4959    fn b_mi(&mut self, op0: Imm) {
4960        self.emit_n(InstId::B.with_cc(CondCode::MI), &[op0.as_operand()]);
4961    }
4962    fn b_pl(&mut self, op0: Imm) {
4963        self.emit_n(InstId::B.with_cc(CondCode::PL), &[op0.as_operand()]);
4964    }
4965    fn b_vs(&mut self, op0: Imm) {
4966        self.emit_n(InstId::B.with_cc(CondCode::VS), &[op0.as_operand()]);
4967    }
4968    fn b_vc(&mut self, op0: Imm) {
4969        self.emit_n(InstId::B.with_cc(CondCode::VC), &[op0.as_operand()]);
4970    }
4971    fn b_hi(&mut self, op0: Imm) {
4972        self.emit_n(InstId::B.with_cc(CondCode::HI), &[op0.as_operand()]);
4973    }
4974    fn b_ls(&mut self, op0: Imm) {
4975        self.emit_n(InstId::B.with_cc(CondCode::LS), &[op0.as_operand()]);
4976    }
4977    fn b_ge(&mut self, op0: Imm) {
4978        self.emit_n(InstId::B.with_cc(CondCode::GE), &[op0.as_operand()]);
4979    }
4980    fn b_lt(&mut self, op0: Imm) {
4981        self.emit_n(InstId::B.with_cc(CondCode::LT), &[op0.as_operand()]);
4982    }
4983    fn b_gt(&mut self, op0: Imm) {
4984        self.emit_n(InstId::B.with_cc(CondCode::GT), &[op0.as_operand()]);
4985    }
4986    fn b_le(&mut self, op0: Imm) {
4987        self.emit_n(InstId::B.with_cc(CondCode::LE), &[op0.as_operand()]);
4988    }
4989    fn b_al(&mut self, op0: Imm) {
4990        self.emit_n(InstId::B.with_cc(CondCode::AL), &[op0.as_operand()]);
4991    }
4992}
4993
4994impl BEmitter<Label> for Assembler<'_> {
4995    fn b(&mut self, op0: Label) {
4996        self.emit_n(InstId::B, &[op0.as_operand()]);
4997    }
4998
4999    fn b_eq(&mut self, op0: Label) {
5000        self.emit_n(InstId::B.with_cc(CondCode::EQ), &[op0.as_operand()]);
5001    }
5002    fn b_ne(&mut self, op0: Label) {
5003        self.emit_n(InstId::B.with_cc(CondCode::NE), &[op0.as_operand()]);
5004    }
5005    fn b_cs(&mut self, op0: Label) {
5006        self.emit_n(InstId::B.with_cc(CondCode::CS), &[op0.as_operand()]);
5007    }
5008    fn b_hs(&mut self, op0: Label) {
5009        self.emit_n(InstId::B.with_cc(CondCode::HS), &[op0.as_operand()]);
5010    }
5011    fn b_cc(&mut self, op0: Label) {
5012        self.emit_n(InstId::B.with_cc(CondCode::CC), &[op0.as_operand()]);
5013    }
5014    fn b_lo(&mut self, op0: Label) {
5015        self.emit_n(InstId::B.with_cc(CondCode::LO), &[op0.as_operand()]);
5016    }
5017    fn b_mi(&mut self, op0: Label) {
5018        self.emit_n(InstId::B.with_cc(CondCode::MI), &[op0.as_operand()]);
5019    }
5020    fn b_pl(&mut self, op0: Label) {
5021        self.emit_n(InstId::B.with_cc(CondCode::PL), &[op0.as_operand()]);
5022    }
5023    fn b_vs(&mut self, op0: Label) {
5024        self.emit_n(InstId::B.with_cc(CondCode::VS), &[op0.as_operand()]);
5025    }
5026    fn b_vc(&mut self, op0: Label) {
5027        self.emit_n(InstId::B.with_cc(CondCode::VC), &[op0.as_operand()]);
5028    }
5029    fn b_hi(&mut self, op0: Label) {
5030        self.emit_n(InstId::B.with_cc(CondCode::HI), &[op0.as_operand()]);
5031    }
5032    fn b_ls(&mut self, op0: Label) {
5033        self.emit_n(InstId::B.with_cc(CondCode::LS), &[op0.as_operand()]);
5034    }
5035    fn b_ge(&mut self, op0: Label) {
5036        self.emit_n(InstId::B.with_cc(CondCode::GE), &[op0.as_operand()]);
5037    }
5038    fn b_lt(&mut self, op0: Label) {
5039        self.emit_n(InstId::B.with_cc(CondCode::LT), &[op0.as_operand()]);
5040    }
5041    fn b_gt(&mut self, op0: Label) {
5042        self.emit_n(InstId::B.with_cc(CondCode::GT), &[op0.as_operand()]);
5043    }
5044    fn b_le(&mut self, op0: Label) {
5045        self.emit_n(InstId::B.with_cc(CondCode::LE), &[op0.as_operand()]);
5046    }
5047    fn b_al(&mut self, op0: Label) {
5048        self.emit_n(InstId::B.with_cc(CondCode::AL), &[op0.as_operand()]);
5049    }
5050}
5051
5052impl BlEmitter<Imm> for Assembler<'_> {
5053    fn bl(&mut self, op0: Imm) {
5054        self.emit_n(InstId::Bl, &[op0.as_operand()]);
5055    }
5056}
5057
5058impl BlEmitter<Label> for Assembler<'_> {
5059    fn bl(&mut self, op0: Label) {
5060        self.emit_n(InstId::Bl, &[op0.as_operand()]);
5061    }
5062}
5063
5064impl BlEmitter<Sym> for Assembler<'_> {
5065    fn bl(&mut self, op0: Sym) {
5066        self.emit_n(InstId::Bl, &[op0.as_operand()]);
5067    }
5068}
5069
5070impl BlrEmitter<Gp> for Assembler<'_> {
5071    fn blr(&mut self, op0: Gp) {
5072        self.emit_n(InstId::Blr, &[op0.as_operand()]);
5073    }
5074}
5075
5076impl BrEmitter<Gp> for Assembler<'_> {
5077    fn br(&mut self, op0: Gp) {
5078        self.emit_n(InstId::Br, &[op0.as_operand()]);
5079    }
5080}
5081
5082impl CbzEmitter<Gp, Imm> for Assembler<'_> {
5083    fn cbz(&mut self, op0: Gp, op1: Imm) {
5084        self.emit_n(InstId::Cbz, &[op0.as_operand(), op1.as_operand()]);
5085    }
5086}
5087
5088impl CbzEmitter<Gp, Label> for Assembler<'_> {
5089    fn cbz(&mut self, op0: Gp, op1: Label) {
5090        self.emit_n(InstId::Cbz, &[op0.as_operand(), op1.as_operand()]);
5091    }
5092}
5093
5094impl CbzEmitter<Gp, Sym> for Assembler<'_> {
5095    fn cbz(&mut self, op0: Gp, op1: Sym) {
5096        self.emit_n(InstId::Cbz, &[op0.as_operand(), op1.as_operand()]);
5097    }
5098}
5099
5100impl CbnzEmitter<Gp, Imm> for Assembler<'_> {
5101    fn cbnz(&mut self, op0: Gp, op1: Imm) {
5102        self.emit_n(InstId::Cbnz, &[op0.as_operand(), op1.as_operand()]);
5103    }
5104}
5105
5106impl CbnzEmitter<Gp, Label> for Assembler<'_> {
5107    fn cbnz(&mut self, op0: Gp, op1: Label) {
5108        self.emit_n(InstId::Cbnz, &[op0.as_operand(), op1.as_operand()]);
5109    }
5110}
5111
5112impl CbnzEmitter<Gp, Sym> for Assembler<'_> {
5113    fn cbnz(&mut self, op0: Gp, op1: Sym) {
5114        self.emit_n(InstId::Cbnz, &[op0.as_operand(), op1.as_operand()]);
5115    }
5116}
5117
5118impl TbnzEmitter<Gp, Imm, Imm> for Assembler<'_> {
5119    fn tbnz(&mut self, op0: Gp, op1: Imm, op2: Imm) {
5120        self.emit_n(
5121            InstId::Tbnz,
5122            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5123        );
5124    }
5125}
5126
5127impl TbnzEmitter<Gp, Imm, Label> for Assembler<'_> {
5128    fn tbnz(&mut self, op0: Gp, op1: Imm, op2: Label) {
5129        self.emit_n(
5130            InstId::Tbnz,
5131            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5132        );
5133    }
5134}
5135
5136impl TbnzEmitter<Gp, Imm, Sym> for Assembler<'_> {
5137    fn tbnz(&mut self, op0: Gp, op1: Imm, op2: Sym) {
5138        self.emit_n(
5139            InstId::Tbnz,
5140            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5141        );
5142    }
5143}
5144
5145impl TbzEmitter<Gp, Imm, Imm> for Assembler<'_> {
5146    fn tbz(&mut self, op0: Gp, op1: Imm, op2: Imm) {
5147        self.emit_n(
5148            InstId::Tbz,
5149            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5150        );
5151    }
5152}
5153
5154impl TbzEmitter<Gp, Imm, Label> for Assembler<'_> {
5155    fn tbz(&mut self, op0: Gp, op1: Imm, op2: Label) {
5156        self.emit_n(
5157            InstId::Tbz,
5158            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5159        );
5160    }
5161}
5162
5163impl TbzEmitter<Gp, Imm, Sym> for Assembler<'_> {
5164    fn tbz(&mut self, op0: Gp, op1: Imm, op2: Sym) {
5165        self.emit_n(
5166            InstId::Tbz,
5167            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5168        );
5169    }
5170}
5171
5172impl CasEmitter<Gp, Gp, Mem> for Assembler<'_> {
5173    fn cas(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5174        self.emit_n(
5175            InstId::Cas,
5176            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5177        );
5178    }
5179}
5180
5181impl CasaEmitter<Gp, Gp, Mem> for Assembler<'_> {
5182    fn casa(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5183        self.emit_n(
5184            InstId::Casa,
5185            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5186        );
5187    }
5188}
5189
5190impl CasabEmitter<Gp, Gp, Mem> for Assembler<'_> {
5191    fn casab(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5192        self.emit_n(
5193            InstId::Casab,
5194            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5195        );
5196    }
5197}
5198
5199impl CasahEmitter<Gp, Gp, Mem> for Assembler<'_> {
5200    fn casah(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5201        self.emit_n(
5202            InstId::Casah,
5203            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5204        );
5205    }
5206}
5207
5208impl CasalEmitter<Gp, Gp, Mem> for Assembler<'_> {
5209    fn casal(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5210        self.emit_n(
5211            InstId::Casal,
5212            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5213        );
5214    }
5215}
5216
5217impl CasalbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5218    fn casalb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5219        self.emit_n(
5220            InstId::Casalb,
5221            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5222        );
5223    }
5224}
5225
5226impl CasalhEmitter<Gp, Gp, Mem> for Assembler<'_> {
5227    fn casalh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5228        self.emit_n(
5229            InstId::Casalh,
5230            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5231        );
5232    }
5233}
5234
5235impl CasbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5236    fn casb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5237        self.emit_n(
5238            InstId::Casb,
5239            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5240        );
5241    }
5242}
5243
5244impl CashEmitter<Gp, Gp, Mem> for Assembler<'_> {
5245    fn cash(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5246        self.emit_n(
5247            InstId::Cash,
5248            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5249        );
5250    }
5251}
5252
5253impl CaslEmitter<Gp, Gp, Mem> for Assembler<'_> {
5254    fn casl(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5255        self.emit_n(
5256            InstId::Casl,
5257            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5258        );
5259    }
5260}
5261
5262impl CaslbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5263    fn caslb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5264        self.emit_n(
5265            InstId::Caslb,
5266            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5267        );
5268    }
5269}
5270
5271impl CaslhEmitter<Gp, Gp, Mem> for Assembler<'_> {
5272    fn caslh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5273        self.emit_n(
5274            InstId::Caslh,
5275            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5276        );
5277    }
5278}
5279
5280impl CaspEmitter<Gp, Gp, Gp, Gp, Mem> for Assembler<'_> {
5281    fn casp(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Gp, op4: Mem) {
5282        self.emit_n(
5283            InstId::Casp,
5284            &[
5285                op0.as_operand(),
5286                op1.as_operand(),
5287                op2.as_operand(),
5288                op3.as_operand(),
5289                op4.as_operand(),
5290            ],
5291        );
5292    }
5293}
5294
5295impl CaspaEmitter<Gp, Gp, Gp, Gp, Mem> for Assembler<'_> {
5296    fn caspa(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Gp, op4: Mem) {
5297        self.emit_n(
5298            InstId::Caspa,
5299            &[
5300                op0.as_operand(),
5301                op1.as_operand(),
5302                op2.as_operand(),
5303                op3.as_operand(),
5304                op4.as_operand(),
5305            ],
5306        );
5307    }
5308}
5309
5310impl CaspalEmitter<Gp, Gp, Gp, Gp, Mem> for Assembler<'_> {
5311    fn caspal(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Gp, op4: Mem) {
5312        self.emit_n(
5313            InstId::Caspal,
5314            &[
5315                op0.as_operand(),
5316                op1.as_operand(),
5317                op2.as_operand(),
5318                op3.as_operand(),
5319                op4.as_operand(),
5320            ],
5321        );
5322    }
5323}
5324
5325impl CasplEmitter<Gp, Gp, Gp, Gp, Mem> for Assembler<'_> {
5326    fn caspl(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Gp, op4: Mem) {
5327        self.emit_n(
5328            InstId::Caspl,
5329            &[
5330                op0.as_operand(),
5331                op1.as_operand(),
5332                op2.as_operand(),
5333                op3.as_operand(),
5334                op4.as_operand(),
5335            ],
5336        );
5337    }
5338}
5339
5340impl LdaddEmitter<Gp, Gp, Mem> for Assembler<'_> {
5341    fn ldadd(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5342        self.emit_n(
5343            InstId::Ldadd,
5344            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5345        );
5346    }
5347}
5348
5349impl LdaddaEmitter<Gp, Gp, Mem> for Assembler<'_> {
5350    fn ldadda(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5351        self.emit_n(
5352            InstId::Ldadda,
5353            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5354        );
5355    }
5356}
5357
5358impl LdaddabEmitter<Gp, Gp, Mem> for Assembler<'_> {
5359    fn ldaddab(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5360        self.emit_n(
5361            InstId::Ldaddab,
5362            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5363        );
5364    }
5365}
5366
5367impl LdaddahEmitter<Gp, Gp, Mem> for Assembler<'_> {
5368    fn ldaddah(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5369        self.emit_n(
5370            InstId::Ldaddah,
5371            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5372        );
5373    }
5374}
5375
5376impl LdaddalEmitter<Gp, Gp, Mem> for Assembler<'_> {
5377    fn ldaddal(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5378        self.emit_n(
5379            InstId::Ldaddal,
5380            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5381        );
5382    }
5383}
5384
5385impl LdaddalbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5386    fn ldaddalb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5387        self.emit_n(
5388            InstId::Ldaddalb,
5389            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5390        );
5391    }
5392}
5393
5394impl LdaddalhEmitter<Gp, Gp, Mem> for Assembler<'_> {
5395    fn ldaddalh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5396        self.emit_n(
5397            InstId::Ldaddalh,
5398            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5399        );
5400    }
5401}
5402
5403impl LdaddbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5404    fn ldaddb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5405        self.emit_n(
5406            InstId::Ldaddb,
5407            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5408        );
5409    }
5410}
5411
5412impl LdaddhEmitter<Gp, Gp, Mem> for Assembler<'_> {
5413    fn ldaddh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5414        self.emit_n(
5415            InstId::Ldaddh,
5416            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5417        );
5418    }
5419}
5420
5421impl LdaddlEmitter<Gp, Gp, Mem> for Assembler<'_> {
5422    fn ldaddl(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5423        self.emit_n(
5424            InstId::Ldaddl,
5425            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5426        );
5427    }
5428}
5429
5430impl LdaddlbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5431    fn ldaddlb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5432        self.emit_n(
5433            InstId::Ldaddlb,
5434            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5435        );
5436    }
5437}
5438
5439impl LdaddlhEmitter<Gp, Gp, Mem> for Assembler<'_> {
5440    fn ldaddlh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5441        self.emit_n(
5442            InstId::Ldaddlh,
5443            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5444        );
5445    }
5446}
5447
5448impl LdarEmitter<Gp, Mem> for Assembler<'_> {
5449    fn ldar(&mut self, op0: Gp, op1: Mem) {
5450        self.emit_n(InstId::Ldar, &[op0.as_operand(), op1.as_operand()]);
5451    }
5452}
5453
5454impl LdarbEmitter<Gp, Mem> for Assembler<'_> {
5455    fn ldarb(&mut self, op0: Gp, op1: Mem) {
5456        self.emit_n(InstId::Ldarb, &[op0.as_operand(), op1.as_operand()]);
5457    }
5458}
5459
5460impl LdarhEmitter<Gp, Mem> for Assembler<'_> {
5461    fn ldarh(&mut self, op0: Gp, op1: Mem) {
5462        self.emit_n(InstId::Ldarh, &[op0.as_operand(), op1.as_operand()]);
5463    }
5464}
5465
5466impl LdaxrEmitter<Gp, Mem> for Assembler<'_> {
5467    fn ldaxr(&mut self, op0: Gp, op1: Mem) {
5468        self.emit_n(InstId::Ldaxr, &[op0.as_operand(), op1.as_operand()]);
5469    }
5470}
5471
5472impl LdaxrbEmitter<Gp, Mem> for Assembler<'_> {
5473    fn ldaxrb(&mut self, op0: Gp, op1: Mem) {
5474        self.emit_n(InstId::Ldaxrb, &[op0.as_operand(), op1.as_operand()]);
5475    }
5476}
5477
5478impl LdaxrhEmitter<Gp, Mem> for Assembler<'_> {
5479    fn ldaxrh(&mut self, op0: Gp, op1: Mem) {
5480        self.emit_n(InstId::Ldaxrh, &[op0.as_operand(), op1.as_operand()]);
5481    }
5482}
5483
5484impl LdclrEmitter<Gp, Gp, Mem> for Assembler<'_> {
5485    fn ldclr(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5486        self.emit_n(
5487            InstId::Ldclr,
5488            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5489        );
5490    }
5491}
5492
5493impl LdclraEmitter<Gp, Gp, Mem> for Assembler<'_> {
5494    fn ldclra(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5495        self.emit_n(
5496            InstId::Ldclra,
5497            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5498        );
5499    }
5500}
5501
5502impl LdclrabEmitter<Gp, Gp, Mem> for Assembler<'_> {
5503    fn ldclrab(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5504        self.emit_n(
5505            InstId::Ldclrab,
5506            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5507        );
5508    }
5509}
5510
5511impl LdclrahEmitter<Gp, Gp, Mem> for Assembler<'_> {
5512    fn ldclrah(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5513        self.emit_n(
5514            InstId::Ldclrah,
5515            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5516        );
5517    }
5518}
5519
5520impl LdclralEmitter<Gp, Gp, Mem> for Assembler<'_> {
5521    fn ldclral(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5522        self.emit_n(
5523            InstId::Ldclral,
5524            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5525        );
5526    }
5527}
5528
5529impl LdclralbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5530    fn ldclralb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5531        self.emit_n(
5532            InstId::Ldclralb,
5533            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5534        );
5535    }
5536}
5537
5538impl LdclralhEmitter<Gp, Gp, Mem> for Assembler<'_> {
5539    fn ldclralh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5540        self.emit_n(
5541            InstId::Ldclralh,
5542            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5543        );
5544    }
5545}
5546
5547impl LdclrbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5548    fn ldclrb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5549        self.emit_n(
5550            InstId::Ldclrb,
5551            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5552        );
5553    }
5554}
5555
5556impl LdclrhEmitter<Gp, Gp, Mem> for Assembler<'_> {
5557    fn ldclrh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5558        self.emit_n(
5559            InstId::Ldclrh,
5560            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5561        );
5562    }
5563}
5564
5565impl LdclrlEmitter<Gp, Gp, Mem> for Assembler<'_> {
5566    fn ldclrl(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5567        self.emit_n(
5568            InstId::Ldclrl,
5569            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5570        );
5571    }
5572}
5573
5574impl LdclrlbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5575    fn ldclrlb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5576        self.emit_n(
5577            InstId::Ldclrlb,
5578            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5579        );
5580    }
5581}
5582
5583impl LdclrlhEmitter<Gp, Gp, Mem> for Assembler<'_> {
5584    fn ldclrlh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5585        self.emit_n(
5586            InstId::Ldclrlh,
5587            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5588        );
5589    }
5590}
5591
5592impl LdeorEmitter<Gp, Gp, Mem> for Assembler<'_> {
5593    fn ldeor(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5594        self.emit_n(
5595            InstId::Ldeor,
5596            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5597        );
5598    }
5599}
5600
5601impl LdeoraEmitter<Gp, Gp, Mem> for Assembler<'_> {
5602    fn ldeora(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5603        self.emit_n(
5604            InstId::Ldeora,
5605            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5606        );
5607    }
5608}
5609
5610impl LdeorabEmitter<Gp, Gp, Mem> for Assembler<'_> {
5611    fn ldeorab(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5612        self.emit_n(
5613            InstId::Ldeorab,
5614            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5615        );
5616    }
5617}
5618
5619impl LdeorahEmitter<Gp, Gp, Mem> for Assembler<'_> {
5620    fn ldeorah(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5621        self.emit_n(
5622            InstId::Ldeorah,
5623            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5624        );
5625    }
5626}
5627
5628impl LdeoralEmitter<Gp, Gp, Mem> for Assembler<'_> {
5629    fn ldeoral(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5630        self.emit_n(
5631            InstId::Ldeoral,
5632            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5633        );
5634    }
5635}
5636
5637impl LdeoralbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5638    fn ldeoralb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5639        self.emit_n(
5640            InstId::Ldeoralb,
5641            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5642        );
5643    }
5644}
5645
5646impl LdeoralhEmitter<Gp, Gp, Mem> for Assembler<'_> {
5647    fn ldeoralh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5648        self.emit_n(
5649            InstId::Ldeoralh,
5650            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5651        );
5652    }
5653}
5654
5655impl LdeorbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5656    fn ldeorb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5657        self.emit_n(
5658            InstId::Ldeorb,
5659            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5660        );
5661    }
5662}
5663
5664impl LdeorhEmitter<Gp, Gp, Mem> for Assembler<'_> {
5665    fn ldeorh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5666        self.emit_n(
5667            InstId::Ldeorh,
5668            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5669        );
5670    }
5671}
5672
5673impl LdeorlEmitter<Gp, Gp, Mem> for Assembler<'_> {
5674    fn ldeorl(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5675        self.emit_n(
5676            InstId::Ldeorl,
5677            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5678        );
5679    }
5680}
5681
5682impl LdeorlbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5683    fn ldeorlb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5684        self.emit_n(
5685            InstId::Ldeorlb,
5686            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5687        );
5688    }
5689}
5690
5691impl LdeorlhEmitter<Gp, Gp, Mem> for Assembler<'_> {
5692    fn ldeorlh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5693        self.emit_n(
5694            InstId::Ldeorlh,
5695            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5696        );
5697    }
5698}
5699
5700impl LdlarEmitter<Gp, Mem> for Assembler<'_> {
5701    fn ldlar(&mut self, op0: Gp, op1: Mem) {
5702        self.emit_n(InstId::Ldlar, &[op0.as_operand(), op1.as_operand()]);
5703    }
5704}
5705
5706impl LdlarbEmitter<Gp, Mem> for Assembler<'_> {
5707    fn ldlarb(&mut self, op0: Gp, op1: Mem) {
5708        self.emit_n(InstId::Ldlarb, &[op0.as_operand(), op1.as_operand()]);
5709    }
5710}
5711
5712impl LdlarhEmitter<Gp, Mem> for Assembler<'_> {
5713    fn ldlarh(&mut self, op0: Gp, op1: Mem) {
5714        self.emit_n(InstId::Ldlarh, &[op0.as_operand(), op1.as_operand()]);
5715    }
5716}
5717
5718impl LdnpEmitter<Gp, Gp, Mem> for Assembler<'_> {
5719    fn ldnp(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5720        self.emit_n(
5721            InstId::Ldnp,
5722            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5723        );
5724    }
5725}
5726
5727impl LdnpEmitter<Vec, Vec, Mem> for Assembler<'_> {
5728    fn ldnp(&mut self, op0: Vec, op1: Vec, op2: Mem) {
5729        self.emit_n(
5730            InstId::Ldnp_v,
5731            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5732        );
5733    }
5734}
5735
5736impl LdpEmitter<Gp, Gp, Mem> for Assembler<'_> {
5737    fn ldp(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5738        self.emit_n(
5739            InstId::Ldp,
5740            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5741        );
5742    }
5743}
5744
5745impl LdpEmitter<Vec, Vec, Mem> for Assembler<'_> {
5746    fn ldp(&mut self, op0: Vec, op1: Vec, op2: Mem) {
5747        self.emit_n(
5748            InstId::Ldp_v,
5749            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5750        );
5751    }
5752}
5753
5754impl LdpswEmitter<Gp, Gp, Mem> for Assembler<'_> {
5755    fn ldpsw(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5756        self.emit_n(
5757            InstId::Ldpsw,
5758            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5759        );
5760    }
5761}
5762
5763impl LdrEmitter<Gp, Mem> for Assembler<'_> {
5764    fn ldr(&mut self, op0: Gp, op1: Mem) {
5765        self.emit_n(InstId::Ldr, &[op0.as_operand(), op1.as_operand()]);
5766    }
5767}
5768
5769impl LdrEmitter<Vec, Mem> for Assembler<'_> {
5770    fn ldr(&mut self, op0: Vec, op1: Mem) {
5771        self.emit_n(InstId::Ldr_v, &[op0.as_operand(), op1.as_operand()]);
5772    }
5773}
5774
5775impl LdrbEmitter<Gp, Mem> for Assembler<'_> {
5776    fn ldrb(&mut self, op0: Gp, op1: Mem) {
5777        self.emit_n(InstId::Ldrb, &[op0.as_operand(), op1.as_operand()]);
5778    }
5779}
5780
5781impl LdrhEmitter<Gp, Mem> for Assembler<'_> {
5782    fn ldrh(&mut self, op0: Gp, op1: Mem) {
5783        self.emit_n(InstId::Ldrh, &[op0.as_operand(), op1.as_operand()]);
5784    }
5785}
5786
5787impl LdrsbEmitter<Gp, Mem> for Assembler<'_> {
5788    fn ldrsb(&mut self, op0: Gp, op1: Mem) {
5789        self.emit_n(InstId::Ldrsb, &[op0.as_operand(), op1.as_operand()]);
5790    }
5791}
5792
5793impl LdrshEmitter<Gp, Mem> for Assembler<'_> {
5794    fn ldrsh(&mut self, op0: Gp, op1: Mem) {
5795        self.emit_n(InstId::Ldrsh, &[op0.as_operand(), op1.as_operand()]);
5796    }
5797}
5798
5799impl LdrswEmitter<Gp, Mem> for Assembler<'_> {
5800    fn ldrsw(&mut self, op0: Gp, op1: Mem) {
5801        self.emit_n(InstId::Ldrsw, &[op0.as_operand(), op1.as_operand()]);
5802    }
5803}
5804
5805impl LdsetEmitter<Gp, Gp, Mem> for Assembler<'_> {
5806    fn ldset(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5807        self.emit_n(
5808            InstId::Ldset,
5809            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5810        );
5811    }
5812}
5813
5814impl LdsetaEmitter<Gp, Gp, Mem> for Assembler<'_> {
5815    fn ldseta(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5816        self.emit_n(
5817            InstId::Ldseta,
5818            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5819        );
5820    }
5821}
5822
5823impl LdsetabEmitter<Gp, Gp, Mem> for Assembler<'_> {
5824    fn ldsetab(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5825        self.emit_n(
5826            InstId::Ldsetab,
5827            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5828        );
5829    }
5830}
5831
5832impl LdsetahEmitter<Gp, Gp, Mem> for Assembler<'_> {
5833    fn ldsetah(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5834        self.emit_n(
5835            InstId::Ldsetah,
5836            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5837        );
5838    }
5839}
5840
5841impl LdsetalEmitter<Gp, Gp, Mem> for Assembler<'_> {
5842    fn ldsetal(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5843        self.emit_n(
5844            InstId::Ldsetal,
5845            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5846        );
5847    }
5848}
5849
5850impl LdsetalbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5851    fn ldsetalb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5852        self.emit_n(
5853            InstId::Ldsetalb,
5854            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5855        );
5856    }
5857}
5858
5859impl LdsetalhEmitter<Gp, Gp, Mem> for Assembler<'_> {
5860    fn ldsetalh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5861        self.emit_n(
5862            InstId::Ldsetalh,
5863            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5864        );
5865    }
5866}
5867
5868impl LdsetbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5869    fn ldsetb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5870        self.emit_n(
5871            InstId::Ldsetb,
5872            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5873        );
5874    }
5875}
5876
5877impl LdsethEmitter<Gp, Gp, Mem> for Assembler<'_> {
5878    fn ldseth(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5879        self.emit_n(
5880            InstId::Ldseth,
5881            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5882        );
5883    }
5884}
5885
5886impl LdsetlEmitter<Gp, Gp, Mem> for Assembler<'_> {
5887    fn ldsetl(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5888        self.emit_n(
5889            InstId::Ldsetl,
5890            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5891        );
5892    }
5893}
5894
5895impl LdsetlbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5896    fn ldsetlb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5897        self.emit_n(
5898            InstId::Ldsetlb,
5899            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5900        );
5901    }
5902}
5903
5904impl LdsetlhEmitter<Gp, Gp, Mem> for Assembler<'_> {
5905    fn ldsetlh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5906        self.emit_n(
5907            InstId::Ldsetlh,
5908            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5909        );
5910    }
5911}
5912
5913impl LdsmaxEmitter<Gp, Gp, Mem> for Assembler<'_> {
5914    fn ldsmax(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5915        self.emit_n(
5916            InstId::Ldsmax,
5917            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5918        );
5919    }
5920}
5921
5922impl LdsmaxaEmitter<Gp, Gp, Mem> for Assembler<'_> {
5923    fn ldsmaxa(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5924        self.emit_n(
5925            InstId::Ldsmaxa,
5926            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5927        );
5928    }
5929}
5930
5931impl LdsmaxabEmitter<Gp, Gp, Mem> for Assembler<'_> {
5932    fn ldsmaxab(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5933        self.emit_n(
5934            InstId::Ldsmaxab,
5935            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5936        );
5937    }
5938}
5939
5940impl LdsmaxahEmitter<Gp, Gp, Mem> for Assembler<'_> {
5941    fn ldsmaxah(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5942        self.emit_n(
5943            InstId::Ldsmaxah,
5944            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5945        );
5946    }
5947}
5948
5949impl LdsmaxalEmitter<Gp, Gp, Mem> for Assembler<'_> {
5950    fn ldsmaxal(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5951        self.emit_n(
5952            InstId::Ldsmaxal,
5953            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5954        );
5955    }
5956}
5957
5958impl LdsmaxalbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5959    fn ldsmaxalb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5960        self.emit_n(
5961            InstId::Ldsmaxalb,
5962            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5963        );
5964    }
5965}
5966
5967impl LdsmaxalhEmitter<Gp, Gp, Mem> for Assembler<'_> {
5968    fn ldsmaxalh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5969        self.emit_n(
5970            InstId::Ldsmaxalh,
5971            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5972        );
5973    }
5974}
5975
5976impl LdsmaxbEmitter<Gp, Gp, Mem> for Assembler<'_> {
5977    fn ldsmaxb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5978        self.emit_n(
5979            InstId::Ldsmaxb,
5980            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5981        );
5982    }
5983}
5984
5985impl LdsmaxhEmitter<Gp, Gp, Mem> for Assembler<'_> {
5986    fn ldsmaxh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5987        self.emit_n(
5988            InstId::Ldsmaxh,
5989            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5990        );
5991    }
5992}
5993
5994impl LdsmaxlEmitter<Gp, Gp, Mem> for Assembler<'_> {
5995    fn ldsmaxl(&mut self, op0: Gp, op1: Gp, op2: Mem) {
5996        self.emit_n(
5997            InstId::Ldsmaxl,
5998            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
5999        );
6000    }
6001}
6002
6003impl LdsmaxlbEmitter<Gp, Gp, Mem> for Assembler<'_> {
6004    fn ldsmaxlb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6005        self.emit_n(
6006            InstId::Ldsmaxlb,
6007            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6008        );
6009    }
6010}
6011
6012impl LdsmaxlhEmitter<Gp, Gp, Mem> for Assembler<'_> {
6013    fn ldsmaxlh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6014        self.emit_n(
6015            InstId::Ldsmaxlh,
6016            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6017        );
6018    }
6019}
6020
6021impl LdsminEmitter<Gp, Gp, Mem> for Assembler<'_> {
6022    fn ldsmin(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6023        self.emit_n(
6024            InstId::Ldsmin,
6025            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6026        );
6027    }
6028}
6029
6030impl LdsminaEmitter<Gp, Gp, Mem> for Assembler<'_> {
6031    fn ldsmina(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6032        self.emit_n(
6033            InstId::Ldsmina,
6034            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6035        );
6036    }
6037}
6038
6039impl LdsminabEmitter<Gp, Gp, Mem> for Assembler<'_> {
6040    fn ldsminab(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6041        self.emit_n(
6042            InstId::Ldsminab,
6043            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6044        );
6045    }
6046}
6047
6048impl LdsminahEmitter<Gp, Gp, Mem> for Assembler<'_> {
6049    fn ldsminah(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6050        self.emit_n(
6051            InstId::Ldsminah,
6052            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6053        );
6054    }
6055}
6056
6057impl LdsminalEmitter<Gp, Gp, Mem> for Assembler<'_> {
6058    fn ldsminal(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6059        self.emit_n(
6060            InstId::Ldsminal,
6061            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6062        );
6063    }
6064}
6065
6066impl LdsminalbEmitter<Gp, Gp, Mem> for Assembler<'_> {
6067    fn ldsminalb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6068        self.emit_n(
6069            InstId::Ldsminalb,
6070            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6071        );
6072    }
6073}
6074
6075impl LdsminalhEmitter<Gp, Gp, Mem> for Assembler<'_> {
6076    fn ldsminalh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6077        self.emit_n(
6078            InstId::Ldsminalh,
6079            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6080        );
6081    }
6082}
6083
6084impl LdsminbEmitter<Gp, Gp, Mem> for Assembler<'_> {
6085    fn ldsminb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6086        self.emit_n(
6087            InstId::Ldsminb,
6088            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6089        );
6090    }
6091}
6092
6093impl LdsminhEmitter<Gp, Gp, Mem> for Assembler<'_> {
6094    fn ldsminh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6095        self.emit_n(
6096            InstId::Ldsminh,
6097            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6098        );
6099    }
6100}
6101
6102impl LdsminlEmitter<Gp, Gp, Mem> for Assembler<'_> {
6103    fn ldsminl(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6104        self.emit_n(
6105            InstId::Ldsminl,
6106            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6107        );
6108    }
6109}
6110
6111impl LdsminlbEmitter<Gp, Gp, Mem> for Assembler<'_> {
6112    fn ldsminlb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6113        self.emit_n(
6114            InstId::Ldsminlb,
6115            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6116        );
6117    }
6118}
6119
6120impl LdsminlhEmitter<Gp, Gp, Mem> for Assembler<'_> {
6121    fn ldsminlh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6122        self.emit_n(
6123            InstId::Ldsminlh,
6124            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6125        );
6126    }
6127}
6128
6129impl LdtrEmitter<Gp, Mem> for Assembler<'_> {
6130    fn ldtr(&mut self, op0: Gp, op1: Mem) {
6131        self.emit_n(InstId::Ldtr, &[op0.as_operand(), op1.as_operand()]);
6132    }
6133}
6134
6135impl LdtrbEmitter<Gp, Mem> for Assembler<'_> {
6136    fn ldtrb(&mut self, op0: Gp, op1: Mem) {
6137        self.emit_n(InstId::Ldtrb, &[op0.as_operand(), op1.as_operand()]);
6138    }
6139}
6140
6141impl LdtrhEmitter<Gp, Mem> for Assembler<'_> {
6142    fn ldtrh(&mut self, op0: Gp, op1: Mem) {
6143        self.emit_n(InstId::Ldtrh, &[op0.as_operand(), op1.as_operand()]);
6144    }
6145}
6146
6147impl LdtrsbEmitter<Gp, Mem> for Assembler<'_> {
6148    fn ldtrsb(&mut self, op0: Gp, op1: Mem) {
6149        self.emit_n(InstId::Ldtrsb, &[op0.as_operand(), op1.as_operand()]);
6150    }
6151}
6152
6153impl LdtrshEmitter<Gp, Mem> for Assembler<'_> {
6154    fn ldtrsh(&mut self, op0: Gp, op1: Mem) {
6155        self.emit_n(InstId::Ldtrsh, &[op0.as_operand(), op1.as_operand()]);
6156    }
6157}
6158
6159impl LdtrswEmitter<Gp, Mem> for Assembler<'_> {
6160    fn ldtrsw(&mut self, op0: Gp, op1: Mem) {
6161        self.emit_n(InstId::Ldtrsw, &[op0.as_operand(), op1.as_operand()]);
6162    }
6163}
6164
6165impl LdumaxEmitter<Gp, Gp, Mem> for Assembler<'_> {
6166    fn ldumax(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6167        self.emit_n(
6168            InstId::Ldumax,
6169            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6170        );
6171    }
6172}
6173
6174impl LdumaxaEmitter<Gp, Gp, Mem> for Assembler<'_> {
6175    fn ldumaxa(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6176        self.emit_n(
6177            InstId::Ldumaxa,
6178            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6179        );
6180    }
6181}
6182
6183impl LdumaxabEmitter<Gp, Gp, Mem> for Assembler<'_> {
6184    fn ldumaxab(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6185        self.emit_n(
6186            InstId::Ldumaxab,
6187            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6188        );
6189    }
6190}
6191
6192impl LdumaxahEmitter<Gp, Gp, Mem> for Assembler<'_> {
6193    fn ldumaxah(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6194        self.emit_n(
6195            InstId::Ldumaxah,
6196            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6197        );
6198    }
6199}
6200
6201impl LdumaxalEmitter<Gp, Gp, Mem> for Assembler<'_> {
6202    fn ldumaxal(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6203        self.emit_n(
6204            InstId::Ldumaxal,
6205            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6206        );
6207    }
6208}
6209
6210impl LdumaxalbEmitter<Gp, Gp, Mem> for Assembler<'_> {
6211    fn ldumaxalb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6212        self.emit_n(
6213            InstId::Ldumaxalb,
6214            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6215        );
6216    }
6217}
6218
6219impl LdumaxalhEmitter<Gp, Gp, Mem> for Assembler<'_> {
6220    fn ldumaxalh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6221        self.emit_n(
6222            InstId::Ldumaxalh,
6223            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6224        );
6225    }
6226}
6227
6228impl LdumaxbEmitter<Gp, Gp, Mem> for Assembler<'_> {
6229    fn ldumaxb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6230        self.emit_n(
6231            InstId::Ldumaxb,
6232            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6233        );
6234    }
6235}
6236
6237impl LdumaxhEmitter<Gp, Gp, Mem> for Assembler<'_> {
6238    fn ldumaxh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6239        self.emit_n(
6240            InstId::Ldumaxh,
6241            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6242        );
6243    }
6244}
6245
6246impl LdumaxlEmitter<Gp, Gp, Mem> for Assembler<'_> {
6247    fn ldumaxl(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6248        self.emit_n(
6249            InstId::Ldumaxl,
6250            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6251        );
6252    }
6253}
6254
6255impl LdumaxlbEmitter<Gp, Gp, Mem> for Assembler<'_> {
6256    fn ldumaxlb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6257        self.emit_n(
6258            InstId::Ldumaxlb,
6259            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6260        );
6261    }
6262}
6263
6264impl LdumaxlhEmitter<Gp, Gp, Mem> for Assembler<'_> {
6265    fn ldumaxlh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6266        self.emit_n(
6267            InstId::Ldumaxlh,
6268            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6269        );
6270    }
6271}
6272
6273impl LduminEmitter<Gp, Gp, Mem> for Assembler<'_> {
6274    fn ldumin(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6275        self.emit_n(
6276            InstId::Ldumin,
6277            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6278        );
6279    }
6280}
6281
6282impl LduminaEmitter<Gp, Gp, Mem> for Assembler<'_> {
6283    fn ldumina(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6284        self.emit_n(
6285            InstId::Ldumina,
6286            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6287        );
6288    }
6289}
6290
6291impl LduminabEmitter<Gp, Gp, Mem> for Assembler<'_> {
6292    fn lduminab(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6293        self.emit_n(
6294            InstId::Lduminab,
6295            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6296        );
6297    }
6298}
6299
6300impl LduminahEmitter<Gp, Gp, Mem> for Assembler<'_> {
6301    fn lduminah(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6302        self.emit_n(
6303            InstId::Lduminah,
6304            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6305        );
6306    }
6307}
6308
6309impl LduminalEmitter<Gp, Gp, Mem> for Assembler<'_> {
6310    fn lduminal(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6311        self.emit_n(
6312            InstId::Lduminal,
6313            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6314        );
6315    }
6316}
6317
6318impl LduminalbEmitter<Gp, Gp, Mem> for Assembler<'_> {
6319    fn lduminalb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6320        self.emit_n(
6321            InstId::Lduminalb,
6322            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6323        );
6324    }
6325}
6326
6327impl LduminalhEmitter<Gp, Gp, Mem> for Assembler<'_> {
6328    fn lduminalh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6329        self.emit_n(
6330            InstId::Lduminalh,
6331            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6332        );
6333    }
6334}
6335
6336impl LduminbEmitter<Gp, Gp, Mem> for Assembler<'_> {
6337    fn lduminb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6338        self.emit_n(
6339            InstId::Lduminb,
6340            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6341        );
6342    }
6343}
6344
6345impl LduminhEmitter<Gp, Gp, Mem> for Assembler<'_> {
6346    fn lduminh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6347        self.emit_n(
6348            InstId::Lduminh,
6349            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6350        );
6351    }
6352}
6353
6354impl LduminlEmitter<Gp, Gp, Mem> for Assembler<'_> {
6355    fn lduminl(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6356        self.emit_n(
6357            InstId::Lduminl,
6358            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6359        );
6360    }
6361}
6362
6363impl LduminlbEmitter<Gp, Gp, Mem> for Assembler<'_> {
6364    fn lduminlb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6365        self.emit_n(
6366            InstId::Lduminlb,
6367            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6368        );
6369    }
6370}
6371
6372impl LduminlhEmitter<Gp, Gp, Mem> for Assembler<'_> {
6373    fn lduminlh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6374        self.emit_n(
6375            InstId::Lduminlh,
6376            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6377        );
6378    }
6379}
6380
6381impl LdurEmitter<Gp, Mem> for Assembler<'_> {
6382    fn ldur(&mut self, op0: Gp, op1: Mem) {
6383        self.emit_n(InstId::Ldur, &[op0.as_operand(), op1.as_operand()]);
6384    }
6385}
6386
6387impl LdurEmitter<Vec, Mem> for Assembler<'_> {
6388    fn ldur(&mut self, op0: Vec, op1: Mem) {
6389        self.emit_n(InstId::Ldur_v, &[op0.as_operand(), op1.as_operand()]);
6390    }
6391}
6392
6393impl LdurbEmitter<Gp, Mem> for Assembler<'_> {
6394    fn ldurb(&mut self, op0: Gp, op1: Mem) {
6395        self.emit_n(InstId::Ldurb, &[op0.as_operand(), op1.as_operand()]);
6396    }
6397}
6398
6399impl LdurhEmitter<Gp, Mem> for Assembler<'_> {
6400    fn ldurh(&mut self, op0: Gp, op1: Mem) {
6401        self.emit_n(InstId::Ldurh, &[op0.as_operand(), op1.as_operand()]);
6402    }
6403}
6404
6405impl LdursbEmitter<Gp, Mem> for Assembler<'_> {
6406    fn ldursb(&mut self, op0: Gp, op1: Mem) {
6407        self.emit_n(InstId::Ldursb, &[op0.as_operand(), op1.as_operand()]);
6408    }
6409}
6410
6411impl LdurshEmitter<Gp, Mem> for Assembler<'_> {
6412    fn ldursh(&mut self, op0: Gp, op1: Mem) {
6413        self.emit_n(InstId::Ldursh, &[op0.as_operand(), op1.as_operand()]);
6414    }
6415}
6416
6417impl LdurswEmitter<Gp, Mem> for Assembler<'_> {
6418    fn ldursw(&mut self, op0: Gp, op1: Mem) {
6419        self.emit_n(InstId::Ldursw, &[op0.as_operand(), op1.as_operand()]);
6420    }
6421}
6422
6423impl LdxpEmitter<Gp, Gp, Mem> for Assembler<'_> {
6424    fn ldxp(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6425        self.emit_n(
6426            InstId::Ldxp,
6427            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6428        );
6429    }
6430}
6431
6432impl LdaxpEmitter<Gp, Gp, Mem> for Assembler<'_> {
6433    fn ldaxp(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6434        self.emit_n(
6435            InstId::Ldaxp,
6436            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6437        );
6438    }
6439}
6440
6441impl LdxrEmitter<Gp, Mem> for Assembler<'_> {
6442    fn ldxr(&mut self, op0: Gp, op1: Mem) {
6443        self.emit_n(InstId::Ldxr, &[op0.as_operand(), op1.as_operand()]);
6444    }
6445}
6446
6447impl LdxrbEmitter<Gp, Mem> for Assembler<'_> {
6448    fn ldxrb(&mut self, op0: Gp, op1: Mem) {
6449        self.emit_n(InstId::Ldxrb, &[op0.as_operand(), op1.as_operand()]);
6450    }
6451}
6452
6453impl LdxrhEmitter<Gp, Mem> for Assembler<'_> {
6454    fn ldxrh(&mut self, op0: Gp, op1: Mem) {
6455        self.emit_n(InstId::Ldxrh, &[op0.as_operand(), op1.as_operand()]);
6456    }
6457}
6458
6459impl PrfmEmitter<Imm, Mem> for Assembler<'_> {
6460    fn prfm(&mut self, op0: Imm, op1: Mem) {
6461        self.emit_n(InstId::Prfm, &[op0.as_operand(), op1.as_operand()]);
6462    }
6463}
6464
6465impl StaddEmitter<Gp, Mem> for Assembler<'_> {
6466    fn stadd(&mut self, op0: Gp, op1: Mem) {
6467        self.emit_n(InstId::Stadd, &[op0.as_operand(), op1.as_operand()]);
6468    }
6469}
6470
6471impl StaddbEmitter<Gp, Mem> for Assembler<'_> {
6472    fn staddb(&mut self, op0: Gp, op1: Mem) {
6473        self.emit_n(InstId::Staddb, &[op0.as_operand(), op1.as_operand()]);
6474    }
6475}
6476
6477impl StaddhEmitter<Gp, Mem> for Assembler<'_> {
6478    fn staddh(&mut self, op0: Gp, op1: Mem) {
6479        self.emit_n(InstId::Staddh, &[op0.as_operand(), op1.as_operand()]);
6480    }
6481}
6482
6483impl StaddlEmitter<Gp, Mem> for Assembler<'_> {
6484    fn staddl(&mut self, op0: Gp, op1: Mem) {
6485        self.emit_n(InstId::Staddl, &[op0.as_operand(), op1.as_operand()]);
6486    }
6487}
6488
6489impl StaddlbEmitter<Gp, Mem> for Assembler<'_> {
6490    fn staddlb(&mut self, op0: Gp, op1: Mem) {
6491        self.emit_n(InstId::Staddlb, &[op0.as_operand(), op1.as_operand()]);
6492    }
6493}
6494
6495impl StaddlhEmitter<Gp, Mem> for Assembler<'_> {
6496    fn staddlh(&mut self, op0: Gp, op1: Mem) {
6497        self.emit_n(InstId::Staddlh, &[op0.as_operand(), op1.as_operand()]);
6498    }
6499}
6500
6501impl StclrEmitter<Gp, Mem> for Assembler<'_> {
6502    fn stclr(&mut self, op0: Gp, op1: Mem) {
6503        self.emit_n(InstId::Stclr, &[op0.as_operand(), op1.as_operand()]);
6504    }
6505}
6506
6507impl StclrbEmitter<Gp, Mem> for Assembler<'_> {
6508    fn stclrb(&mut self, op0: Gp, op1: Mem) {
6509        self.emit_n(InstId::Stclrb, &[op0.as_operand(), op1.as_operand()]);
6510    }
6511}
6512
6513impl StclrhEmitter<Gp, Mem> for Assembler<'_> {
6514    fn stclrh(&mut self, op0: Gp, op1: Mem) {
6515        self.emit_n(InstId::Stclrh, &[op0.as_operand(), op1.as_operand()]);
6516    }
6517}
6518
6519impl StclrlEmitter<Gp, Mem> for Assembler<'_> {
6520    fn stclrl(&mut self, op0: Gp, op1: Mem) {
6521        self.emit_n(InstId::Stclrl, &[op0.as_operand(), op1.as_operand()]);
6522    }
6523}
6524
6525impl StclrlbEmitter<Gp, Mem> for Assembler<'_> {
6526    fn stclrlb(&mut self, op0: Gp, op1: Mem) {
6527        self.emit_n(InstId::Stclrlb, &[op0.as_operand(), op1.as_operand()]);
6528    }
6529}
6530
6531impl StclrlhEmitter<Gp, Mem> for Assembler<'_> {
6532    fn stclrlh(&mut self, op0: Gp, op1: Mem) {
6533        self.emit_n(InstId::Stclrlh, &[op0.as_operand(), op1.as_operand()]);
6534    }
6535}
6536
6537impl SteorEmitter<Gp, Mem> for Assembler<'_> {
6538    fn steor(&mut self, op0: Gp, op1: Mem) {
6539        self.emit_n(InstId::Steor, &[op0.as_operand(), op1.as_operand()]);
6540    }
6541}
6542
6543impl SteorbEmitter<Gp, Mem> for Assembler<'_> {
6544    fn steorb(&mut self, op0: Gp, op1: Mem) {
6545        self.emit_n(InstId::Steorb, &[op0.as_operand(), op1.as_operand()]);
6546    }
6547}
6548
6549impl SteorhEmitter<Gp, Mem> for Assembler<'_> {
6550    fn steorh(&mut self, op0: Gp, op1: Mem) {
6551        self.emit_n(InstId::Steorh, &[op0.as_operand(), op1.as_operand()]);
6552    }
6553}
6554
6555impl SteorlEmitter<Gp, Mem> for Assembler<'_> {
6556    fn steorl(&mut self, op0: Gp, op1: Mem) {
6557        self.emit_n(InstId::Steorl, &[op0.as_operand(), op1.as_operand()]);
6558    }
6559}
6560
6561impl SteorlbEmitter<Gp, Mem> for Assembler<'_> {
6562    fn steorlb(&mut self, op0: Gp, op1: Mem) {
6563        self.emit_n(InstId::Steorlb, &[op0.as_operand(), op1.as_operand()]);
6564    }
6565}
6566
6567impl SteorlhEmitter<Gp, Mem> for Assembler<'_> {
6568    fn steorlh(&mut self, op0: Gp, op1: Mem) {
6569        self.emit_n(InstId::Steorlh, &[op0.as_operand(), op1.as_operand()]);
6570    }
6571}
6572
6573impl StllrEmitter<Gp, Mem> for Assembler<'_> {
6574    fn stllr(&mut self, op0: Gp, op1: Mem) {
6575        self.emit_n(InstId::Stllr, &[op0.as_operand(), op1.as_operand()]);
6576    }
6577}
6578
6579impl StllrbEmitter<Gp, Mem> for Assembler<'_> {
6580    fn stllrb(&mut self, op0: Gp, op1: Mem) {
6581        self.emit_n(InstId::Stllrb, &[op0.as_operand(), op1.as_operand()]);
6582    }
6583}
6584
6585impl StllrhEmitter<Gp, Mem> for Assembler<'_> {
6586    fn stllrh(&mut self, op0: Gp, op1: Mem) {
6587        self.emit_n(InstId::Stllrh, &[op0.as_operand(), op1.as_operand()]);
6588    }
6589}
6590
6591impl StlrEmitter<Gp, Mem> for Assembler<'_> {
6592    fn stlr(&mut self, op0: Gp, op1: Mem) {
6593        self.emit_n(InstId::Stllr, &[op0.as_operand(), op1.as_operand()]);
6594    }
6595}
6596
6597impl StlrbEmitter<Gp, Mem> for Assembler<'_> {
6598    fn stlrb(&mut self, op0: Gp, op1: Mem) {
6599        self.emit_n(InstId::Stllrb, &[op0.as_operand(), op1.as_operand()]);
6600    }
6601}
6602
6603impl StlrhEmitter<Gp, Mem> for Assembler<'_> {
6604    fn stlrh(&mut self, op0: Gp, op1: Mem) {
6605        self.emit_n(InstId::Stllrh, &[op0.as_operand(), op1.as_operand()]);
6606    }
6607}
6608
6609impl StlxrEmitter<Gp, Gp, Mem> for Assembler<'_> {
6610    fn stlxr(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6611        self.emit_n(
6612            InstId::Stlxr,
6613            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6614        );
6615    }
6616}
6617
6618impl StlxrbEmitter<Gp, Gp, Mem> for Assembler<'_> {
6619    fn stlxrb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6620        self.emit_n(
6621            InstId::Stlxrb,
6622            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6623        );
6624    }
6625}
6626
6627impl StlxrhEmitter<Gp, Gp, Mem> for Assembler<'_> {
6628    fn stlxrh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6629        self.emit_n(
6630            InstId::Stlxrh,
6631            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6632        );
6633    }
6634}
6635
6636impl StnpEmitter<Gp, Gp, Mem> for Assembler<'_> {
6637    fn stnp(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6638        self.emit_n(
6639            InstId::Stnp,
6640            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6641        );
6642    }
6643}
6644
6645impl StnpEmitter<Vec, Vec, Mem> for Assembler<'_> {
6646    fn stnp(&mut self, op0: Vec, op1: Vec, op2: Mem) {
6647        self.emit_n(
6648            InstId::Stnp_v,
6649            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6650        );
6651    }
6652}
6653
6654impl StpEmitter<Gp, Gp, Mem> for Assembler<'_> {
6655    fn stp(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6656        self.emit_n(
6657            InstId::Stp,
6658            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6659        );
6660    }
6661}
6662
6663impl StpEmitter<Vec, Vec, Mem> for Assembler<'_> {
6664    fn stp(&mut self, op0: Vec, op1: Vec, op2: Mem) {
6665        self.emit_n(
6666            InstId::Stp_v,
6667            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6668        );
6669    }
6670}
6671
6672impl StrEmitter<Gp, Mem> for Assembler<'_> {
6673    fn str(&mut self, op0: Gp, op1: Mem) {
6674        self.emit_n(InstId::Str, &[op0.as_operand(), op1.as_operand()]);
6675    }
6676}
6677
6678impl StrEmitter<Vec, Mem> for Assembler<'_> {
6679    fn str(&mut self, op0: Vec, op1: Mem) {
6680        self.emit_n(InstId::Str_v, &[op0.as_operand(), op1.as_operand()]);
6681    }
6682}
6683
6684impl StrbEmitter<Gp, Mem> for Assembler<'_> {
6685    fn strb(&mut self, op0: Gp, op1: Mem) {
6686        self.emit_n(InstId::Strb, &[op0.as_operand(), op1.as_operand()]);
6687    }
6688}
6689
6690impl StrhEmitter<Gp, Mem> for Assembler<'_> {
6691    fn strh(&mut self, op0: Gp, op1: Mem) {
6692        self.emit_n(InstId::Strh, &[op0.as_operand(), op1.as_operand()]);
6693    }
6694}
6695
6696impl StsetEmitter<Gp, Mem> for Assembler<'_> {
6697    fn stset(&mut self, op0: Gp, op1: Mem) {
6698        self.emit_n(InstId::Stset, &[op0.as_operand(), op1.as_operand()]);
6699    }
6700}
6701
6702impl StsetbEmitter<Gp, Mem> for Assembler<'_> {
6703    fn stsetb(&mut self, op0: Gp, op1: Mem) {
6704        self.emit_n(InstId::Stsetb, &[op0.as_operand(), op1.as_operand()]);
6705    }
6706}
6707
6708impl StsethEmitter<Gp, Mem> for Assembler<'_> {
6709    fn stseth(&mut self, op0: Gp, op1: Mem) {
6710        self.emit_n(InstId::Stseth, &[op0.as_operand(), op1.as_operand()]);
6711    }
6712}
6713
6714impl StsetlEmitter<Gp, Mem> for Assembler<'_> {
6715    fn stsetl(&mut self, op0: Gp, op1: Mem) {
6716        self.emit_n(InstId::Stsetl, &[op0.as_operand(), op1.as_operand()]);
6717    }
6718}
6719
6720impl StsetlbEmitter<Gp, Mem> for Assembler<'_> {
6721    fn stsetlb(&mut self, op0: Gp, op1: Mem) {
6722        self.emit_n(InstId::Stsetlb, &[op0.as_operand(), op1.as_operand()]);
6723    }
6724}
6725
6726impl StsetlhEmitter<Gp, Mem> for Assembler<'_> {
6727    fn stsetlh(&mut self, op0: Gp, op1: Mem) {
6728        self.emit_n(InstId::Stsetlh, &[op0.as_operand(), op1.as_operand()]);
6729    }
6730}
6731
6732impl StsmaxEmitter<Gp, Mem> for Assembler<'_> {
6733    fn stsmax(&mut self, op0: Gp, op1: Mem) {
6734        self.emit_n(InstId::Stsmax, &[op0.as_operand(), op1.as_operand()]);
6735    }
6736}
6737
6738impl StsmaxbEmitter<Gp, Mem> for Assembler<'_> {
6739    fn stsmaxb(&mut self, op0: Gp, op1: Mem) {
6740        self.emit_n(InstId::Stsmaxb, &[op0.as_operand(), op1.as_operand()]);
6741    }
6742}
6743
6744impl StsmaxhEmitter<Gp, Mem> for Assembler<'_> {
6745    fn stsmaxh(&mut self, op0: Gp, op1: Mem) {
6746        self.emit_n(InstId::Stsmaxh, &[op0.as_operand(), op1.as_operand()]);
6747    }
6748}
6749
6750impl StsmaxlEmitter<Gp, Mem> for Assembler<'_> {
6751    fn stsmaxl(&mut self, op0: Gp, op1: Mem) {
6752        self.emit_n(InstId::Stsmaxl, &[op0.as_operand(), op1.as_operand()]);
6753    }
6754}
6755
6756impl StsmaxlbEmitter<Gp, Mem> for Assembler<'_> {
6757    fn stsmaxlb(&mut self, op0: Gp, op1: Mem) {
6758        self.emit_n(InstId::Stsmaxlb, &[op0.as_operand(), op1.as_operand()]);
6759    }
6760}
6761
6762impl StsmaxlhEmitter<Gp, Mem> for Assembler<'_> {
6763    fn stsmaxlh(&mut self, op0: Gp, op1: Mem) {
6764        self.emit_n(InstId::Stsmaxlh, &[op0.as_operand(), op1.as_operand()]);
6765    }
6766}
6767
6768impl StsminEmitter<Gp, Mem> for Assembler<'_> {
6769    fn stsmin(&mut self, op0: Gp, op1: Mem) {
6770        self.emit_n(InstId::Stsmin, &[op0.as_operand(), op1.as_operand()]);
6771    }
6772}
6773
6774impl StsminbEmitter<Gp, Mem> for Assembler<'_> {
6775    fn stsminb(&mut self, op0: Gp, op1: Mem) {
6776        self.emit_n(InstId::Stsminb, &[op0.as_operand(), op1.as_operand()]);
6777    }
6778}
6779
6780impl StsminhEmitter<Gp, Mem> for Assembler<'_> {
6781    fn stsminh(&mut self, op0: Gp, op1: Mem) {
6782        self.emit_n(InstId::Stsminh, &[op0.as_operand(), op1.as_operand()]);
6783    }
6784}
6785
6786impl StsminlEmitter<Gp, Mem> for Assembler<'_> {
6787    fn stsminl(&mut self, op0: Gp, op1: Mem) {
6788        self.emit_n(InstId::Stsminl, &[op0.as_operand(), op1.as_operand()]);
6789    }
6790}
6791
6792impl StsminlbEmitter<Gp, Mem> for Assembler<'_> {
6793    fn stsminlb(&mut self, op0: Gp, op1: Mem) {
6794        self.emit_n(InstId::Stsminlb, &[op0.as_operand(), op1.as_operand()]);
6795    }
6796}
6797
6798impl StsminlhEmitter<Gp, Mem> for Assembler<'_> {
6799    fn stsminlh(&mut self, op0: Gp, op1: Mem) {
6800        self.emit_n(InstId::Stsminlh, &[op0.as_operand(), op1.as_operand()]);
6801    }
6802}
6803
6804impl SttrEmitter<Gp, Mem> for Assembler<'_> {
6805    fn sttr(&mut self, op0: Gp, op1: Mem) {
6806        self.emit_n(InstId::Sttr, &[op0.as_operand(), op1.as_operand()]);
6807    }
6808}
6809
6810impl SttrbEmitter<Gp, Mem> for Assembler<'_> {
6811    fn sttrb(&mut self, op0: Gp, op1: Mem) {
6812        self.emit_n(InstId::Sttrb, &[op0.as_operand(), op1.as_operand()]);
6813    }
6814}
6815
6816impl SttrhEmitter<Gp, Mem> for Assembler<'_> {
6817    fn sttrh(&mut self, op0: Gp, op1: Mem) {
6818        self.emit_n(InstId::Sttrh, &[op0.as_operand(), op1.as_operand()]);
6819    }
6820}
6821
6822impl StumaxEmitter<Gp, Mem> for Assembler<'_> {
6823    fn stumax(&mut self, op0: Gp, op1: Mem) {
6824        self.emit_n(InstId::Stumax, &[op0.as_operand(), op1.as_operand()]);
6825    }
6826}
6827
6828impl StumaxbEmitter<Gp, Mem> for Assembler<'_> {
6829    fn stumaxb(&mut self, op0: Gp, op1: Mem) {
6830        self.emit_n(InstId::Stumaxb, &[op0.as_operand(), op1.as_operand()]);
6831    }
6832}
6833
6834impl StumaxhEmitter<Gp, Mem> for Assembler<'_> {
6835    fn stumaxh(&mut self, op0: Gp, op1: Mem) {
6836        self.emit_n(InstId::Stumaxh, &[op0.as_operand(), op1.as_operand()]);
6837    }
6838}
6839
6840impl StumaxlEmitter<Gp, Mem> for Assembler<'_> {
6841    fn stumaxl(&mut self, op0: Gp, op1: Mem) {
6842        self.emit_n(InstId::Stumaxl, &[op0.as_operand(), op1.as_operand()]);
6843    }
6844}
6845
6846impl StumaxlbEmitter<Gp, Mem> for Assembler<'_> {
6847    fn stumaxlb(&mut self, op0: Gp, op1: Mem) {
6848        self.emit_n(InstId::Stumaxlb, &[op0.as_operand(), op1.as_operand()]);
6849    }
6850}
6851
6852impl StumaxlhEmitter<Gp, Mem> for Assembler<'_> {
6853    fn stumaxlh(&mut self, op0: Gp, op1: Mem) {
6854        self.emit_n(InstId::Stumaxlh, &[op0.as_operand(), op1.as_operand()]);
6855    }
6856}
6857
6858impl StuminEmitter<Gp, Mem> for Assembler<'_> {
6859    fn stumin(&mut self, op0: Gp, op1: Mem) {
6860        self.emit_n(InstId::Stumin, &[op0.as_operand(), op1.as_operand()]);
6861    }
6862}
6863
6864impl StuminbEmitter<Gp, Mem> for Assembler<'_> {
6865    fn stuminb(&mut self, op0: Gp, op1: Mem) {
6866        self.emit_n(InstId::Stuminb, &[op0.as_operand(), op1.as_operand()]);
6867    }
6868}
6869
6870impl StuminhEmitter<Gp, Mem> for Assembler<'_> {
6871    fn stuminh(&mut self, op0: Gp, op1: Mem) {
6872        self.emit_n(InstId::Stuminh, &[op0.as_operand(), op1.as_operand()]);
6873    }
6874}
6875
6876impl StuminlEmitter<Gp, Mem> for Assembler<'_> {
6877    fn stuminl(&mut self, op0: Gp, op1: Mem) {
6878        self.emit_n(InstId::Stuminl, &[op0.as_operand(), op1.as_operand()]);
6879    }
6880}
6881
6882impl StuminlbEmitter<Gp, Mem> for Assembler<'_> {
6883    fn stuminlb(&mut self, op0: Gp, op1: Mem) {
6884        self.emit_n(InstId::Stuminlb, &[op0.as_operand(), op1.as_operand()]);
6885    }
6886}
6887
6888impl StuminlhEmitter<Gp, Mem> for Assembler<'_> {
6889    fn stuminlh(&mut self, op0: Gp, op1: Mem) {
6890        self.emit_n(InstId::Stuminlh, &[op0.as_operand(), op1.as_operand()]);
6891    }
6892}
6893
6894impl SturEmitter<Gp, Mem> for Assembler<'_> {
6895    fn stur(&mut self, op0: Gp, op1: Mem) {
6896        self.emit_n(InstId::Stur, &[op0.as_operand(), op1.as_operand()]);
6897    }
6898}
6899
6900impl SturEmitter<Vec, Mem> for Assembler<'_> {
6901    fn stur(&mut self, op0: Vec, op1: Mem) {
6902        self.emit_n(InstId::Stur_v, &[op0.as_operand(), op1.as_operand()]);
6903    }
6904}
6905
6906impl SturbEmitter<Gp, Mem> for Assembler<'_> {
6907    fn sturb(&mut self, op0: Gp, op1: Mem) {
6908        self.emit_n(InstId::Sturb, &[op0.as_operand(), op1.as_operand()]);
6909    }
6910}
6911
6912impl SturhEmitter<Gp, Mem> for Assembler<'_> {
6913    fn sturh(&mut self, op0: Gp, op1: Mem) {
6914        self.emit_n(InstId::Sturh, &[op0.as_operand(), op1.as_operand()]);
6915    }
6916}
6917
6918impl StxpEmitter<Gp, Gp, Gp, Mem> for Assembler<'_> {
6919    fn stxp(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Mem) {
6920        self.emit_n(
6921            InstId::Stxp,
6922            &[
6923                op0.as_operand(),
6924                op1.as_operand(),
6925                op2.as_operand(),
6926                op3.as_operand(),
6927            ],
6928        );
6929    }
6930}
6931
6932impl StlxpEmitter<Gp, Gp, Gp, Mem> for Assembler<'_> {
6933    fn stlxp(&mut self, op0: Gp, op1: Gp, op2: Gp, op3: Mem) {
6934        self.emit_n(
6935            InstId::Stlxp,
6936            &[
6937                op0.as_operand(),
6938                op1.as_operand(),
6939                op2.as_operand(),
6940                op3.as_operand(),
6941            ],
6942        );
6943    }
6944}
6945
6946impl StxrEmitter<Gp, Gp, Mem> for Assembler<'_> {
6947    fn stxr(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6948        self.emit_n(
6949            InstId::Stxr,
6950            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6951        );
6952    }
6953}
6954
6955impl StxrbEmitter<Gp, Gp, Mem> for Assembler<'_> {
6956    fn stxrb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6957        self.emit_n(
6958            InstId::Stxrb,
6959            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6960        );
6961    }
6962}
6963
6964impl StxrhEmitter<Gp, Gp, Mem> for Assembler<'_> {
6965    fn stxrh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6966        self.emit_n(
6967            InstId::Stxrh,
6968            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6969        );
6970    }
6971}
6972
6973impl SwpEmitter<Gp, Gp, Mem> for Assembler<'_> {
6974    fn swp(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6975        self.emit_n(
6976            InstId::Swp,
6977            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6978        );
6979    }
6980}
6981
6982impl SwpaEmitter<Gp, Gp, Mem> for Assembler<'_> {
6983    fn swpa(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6984        self.emit_n(
6985            InstId::Swpa,
6986            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6987        );
6988    }
6989}
6990
6991impl SwpabEmitter<Gp, Gp, Mem> for Assembler<'_> {
6992    fn swpab(&mut self, op0: Gp, op1: Gp, op2: Mem) {
6993        self.emit_n(
6994            InstId::Swpab,
6995            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
6996        );
6997    }
6998}
6999
7000impl SwpahEmitter<Gp, Gp, Mem> for Assembler<'_> {
7001    fn swpah(&mut self, op0: Gp, op1: Gp, op2: Mem) {
7002        self.emit_n(
7003            InstId::Swpah,
7004            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7005        );
7006    }
7007}
7008
7009impl SwpalEmitter<Gp, Gp, Mem> for Assembler<'_> {
7010    fn swpal(&mut self, op0: Gp, op1: Gp, op2: Mem) {
7011        self.emit_n(
7012            InstId::Swpal,
7013            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7014        );
7015    }
7016}
7017
7018impl SwpalbEmitter<Gp, Gp, Mem> for Assembler<'_> {
7019    fn swpalb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
7020        self.emit_n(
7021            InstId::Swpalb,
7022            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7023        );
7024    }
7025}
7026
7027impl SwpalhEmitter<Gp, Gp, Mem> for Assembler<'_> {
7028    fn swpalh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
7029        self.emit_n(
7030            InstId::Swpalh,
7031            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7032        );
7033    }
7034}
7035
7036impl SwpbEmitter<Gp, Gp, Mem> for Assembler<'_> {
7037    fn swpb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
7038        self.emit_n(
7039            InstId::Swpb,
7040            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7041        );
7042    }
7043}
7044
7045impl SwphEmitter<Gp, Gp, Mem> for Assembler<'_> {
7046    fn swph(&mut self, op0: Gp, op1: Gp, op2: Mem) {
7047        self.emit_n(
7048            InstId::Swph,
7049            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7050        );
7051    }
7052}
7053
7054impl SwplEmitter<Gp, Gp, Mem> for Assembler<'_> {
7055    fn swpl(&mut self, op0: Gp, op1: Gp, op2: Mem) {
7056        self.emit_n(
7057            InstId::Swpl,
7058            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7059        );
7060    }
7061}
7062
7063impl SwplbEmitter<Gp, Gp, Mem> for Assembler<'_> {
7064    fn swplb(&mut self, op0: Gp, op1: Gp, op2: Mem) {
7065        self.emit_n(
7066            InstId::Swplb,
7067            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7068        );
7069    }
7070}
7071
7072impl SwplhEmitter<Gp, Gp, Mem> for Assembler<'_> {
7073    fn swplh(&mut self, op0: Gp, op1: Gp, op2: Mem) {
7074        self.emit_n(
7075            InstId::Swplh,
7076            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7077        );
7078    }
7079}
7080
7081impl BtiEmitter<Imm> for Assembler<'_> {
7082    fn bti(&mut self, op0: Imm) {
7083        self.emit_n(InstId::Bti, &[op0.as_operand()]);
7084    }
7085}
7086
7087impl ChkfeatEmitter<Gp> for Assembler<'_> {
7088    fn chkfeat(&mut self, op0: Gp) {
7089        self.emit_n(InstId::Chkfeat, &[op0.as_operand()]);
7090    }
7091}
7092
7093impl ClrbhbEmitter for Assembler<'_> {
7094    fn clrbhb(&mut self) {
7095        self.emit_n(InstId::Clrbhb, &[]);
7096    }
7097}
7098
7099impl Crc32bEmitter<Gp, Gp, Gp> for Assembler<'_> {
7100    fn crc32b(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7101        self.emit_n(
7102            InstId::Crc32b,
7103            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7104        );
7105    }
7106}
7107
7108impl Crc32hEmitter<Gp, Gp, Gp> for Assembler<'_> {
7109    fn crc32h(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7110        self.emit_n(
7111            InstId::Crc32h,
7112            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7113        );
7114    }
7115}
7116
7117impl Crc32wEmitter<Gp, Gp, Gp> for Assembler<'_> {
7118    fn crc32w(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7119        self.emit_n(
7120            InstId::Crc32w,
7121            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7122        );
7123    }
7124}
7125
7126impl Crc32xEmitter<Gp, Gp, Gp> for Assembler<'_> {
7127    fn crc32x(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7128        self.emit_n(
7129            InstId::Crc32x,
7130            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7131        );
7132    }
7133}
7134
7135impl Crc32cbEmitter<Gp, Gp, Gp> for Assembler<'_> {
7136    fn crc32cb(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7137        self.emit_n(
7138            InstId::Crc32cb,
7139            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7140        );
7141    }
7142}
7143
7144impl Crc32chEmitter<Gp, Gp, Gp> for Assembler<'_> {
7145    fn crc32ch(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7146        self.emit_n(
7147            InstId::Crc32ch,
7148            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7149        );
7150    }
7151}
7152
7153impl Crc32cwEmitter<Gp, Gp, Gp> for Assembler<'_> {
7154    fn crc32cw(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7155        self.emit_n(
7156            InstId::Crc32cw,
7157            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7158        );
7159    }
7160}
7161
7162impl Crc32cxEmitter<Gp, Gp, Gp> for Assembler<'_> {
7163    fn crc32cx(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7164        self.emit_n(
7165            InstId::Crc32cx,
7166            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7167        );
7168    }
7169}
7170
7171impl AbsEmitter<Gp, Gp> for Assembler<'_> {
7172    fn abs(&mut self, op0: Gp, op1: Gp) {
7173        self.emit_n(InstId::Abs, &[op0.as_operand(), op1.as_operand()]);
7174    }
7175}
7176
7177impl AbsEmitter<Vec, Vec> for Assembler<'_> {
7178    fn abs(&mut self, op0: Vec, op1: Vec) {
7179        self.emit_n(InstId::Abs_v, &[op0.as_operand(), op1.as_operand()]);
7180    }
7181}
7182
7183impl CntEmitter<Gp, Gp> for Assembler<'_> {
7184    fn cnt(&mut self, op0: Gp, op1: Gp) {
7185        self.emit_n(InstId::Cnt, &[op0.as_operand(), op1.as_operand()]);
7186    }
7187}
7188
7189impl CntEmitter<Vec, Vec> for Assembler<'_> {
7190    fn cnt(&mut self, op0: Vec, op1: Vec) {
7191        self.emit_n(InstId::Cnt_v, &[op0.as_operand(), op1.as_operand()]);
7192    }
7193}
7194
7195impl CtzEmitter<Gp, Gp> for Assembler<'_> {
7196    fn ctz(&mut self, op0: Gp, op1: Gp) {
7197        self.emit_n(InstId::Ctz, &[op0.as_operand(), op1.as_operand()]);
7198    }
7199}
7200
7201impl SmaxEmitter<Gp, Gp, Gp> for Assembler<'_> {
7202    fn smax(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7203        self.emit_n(
7204            InstId::Smax,
7205            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7206        );
7207    }
7208}
7209
7210impl SmaxEmitter<Gp, Gp, Imm> for Assembler<'_> {
7211    fn smax(&mut self, op0: Gp, op1: Gp, op2: Imm) {
7212        self.emit_n(
7213            InstId::Smax,
7214            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7215        );
7216    }
7217}
7218
7219impl SmaxEmitter<Vec, Vec, Vec> for Assembler<'_> {
7220    fn smax(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7221        self.emit_n(
7222            InstId::Smax_v,
7223            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7224        );
7225    }
7226}
7227
7228impl SminEmitter<Gp, Gp, Gp> for Assembler<'_> {
7229    fn smin(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7230        self.emit_n(
7231            InstId::Smin,
7232            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7233        );
7234    }
7235}
7236
7237impl SminEmitter<Gp, Gp, Imm> for Assembler<'_> {
7238    fn smin(&mut self, op0: Gp, op1: Gp, op2: Imm) {
7239        self.emit_n(
7240            InstId::Smin,
7241            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7242        );
7243    }
7244}
7245
7246impl SminEmitter<Vec, Vec, Vec> for Assembler<'_> {
7247    fn smin(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7248        self.emit_n(
7249            InstId::Smin_v,
7250            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7251        );
7252    }
7253}
7254
7255impl UmaxEmitter<Gp, Gp, Gp> for Assembler<'_> {
7256    fn umax(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7257        self.emit_n(
7258            InstId::Umax,
7259            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7260        );
7261    }
7262}
7263
7264impl UmaxEmitter<Gp, Gp, Imm> for Assembler<'_> {
7265    fn umax(&mut self, op0: Gp, op1: Gp, op2: Imm) {
7266        self.emit_n(
7267            InstId::Umax,
7268            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7269        );
7270    }
7271}
7272
7273impl UmaxEmitter<Vec, Vec, Vec> for Assembler<'_> {
7274    fn umax(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7275        self.emit_n(
7276            InstId::Umax_v,
7277            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7278        );
7279    }
7280}
7281
7282impl UminEmitter<Gp, Gp, Gp> for Assembler<'_> {
7283    fn umin(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7284        self.emit_n(
7285            InstId::Umin,
7286            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7287        );
7288    }
7289}
7290
7291impl UminEmitter<Gp, Gp, Imm> for Assembler<'_> {
7292    fn umin(&mut self, op0: Gp, op1: Gp, op2: Imm) {
7293        self.emit_n(
7294            InstId::Umin,
7295            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7296        );
7297    }
7298}
7299
7300impl UminEmitter<Vec, Vec, Vec> for Assembler<'_> {
7301    fn umin(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7302        self.emit_n(
7303            InstId::Umin_v,
7304            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7305        );
7306    }
7307}
7308
7309impl DghEmitter for Assembler<'_> {
7310    fn dgh(&mut self) {
7311        self.emit_n(InstId::Dgh, &[]);
7312    }
7313}
7314
7315impl CfinvEmitter for Assembler<'_> {
7316    fn cfinv(&mut self) {
7317        self.emit_n(InstId::Cfinv, &[]);
7318    }
7319}
7320
7321impl Setf8Emitter<Gp> for Assembler<'_> {
7322    fn setf8(&mut self, op0: Gp) {
7323        self.emit_n(InstId::Setf8, &[op0.as_operand()]);
7324    }
7325}
7326
7327impl Setf16Emitter<Gp> for Assembler<'_> {
7328    fn setf16(&mut self, op0: Gp) {
7329        self.emit_n(InstId::Setf16, &[op0.as_operand()]);
7330    }
7331}
7332
7333impl AxflagEmitter for Assembler<'_> {
7334    fn axflag(&mut self) {
7335        self.emit_n(InstId::Axflag, &[]);
7336    }
7337}
7338
7339impl XaflagEmitter for Assembler<'_> {
7340    fn xaflag(&mut self) {
7341        self.emit_n(InstId::Xaflag, &[]);
7342    }
7343}
7344
7345impl BcEmitter<Imm> for Assembler<'_> {
7346    fn bc_eq(&mut self, op0: Imm) {
7347        self.emit_n(InstId::Bc.with_cc(CondCode::EQ), &[op0.as_operand()]);
7348    }
7349    fn bc_ne(&mut self, op0: Imm) {
7350        self.emit_n(InstId::Bc.with_cc(CondCode::NE), &[op0.as_operand()]);
7351    }
7352    fn bc_cs(&mut self, op0: Imm) {
7353        self.emit_n(InstId::Bc.with_cc(CondCode::CS), &[op0.as_operand()]);
7354    }
7355    fn bc_hs(&mut self, op0: Imm) {
7356        self.emit_n(InstId::Bc.with_cc(CondCode::HS), &[op0.as_operand()]);
7357    }
7358    fn bc_cc(&mut self, op0: Imm) {
7359        self.emit_n(InstId::Bc.with_cc(CondCode::CC), &[op0.as_operand()]);
7360    }
7361    fn bc_lo(&mut self, op0: Imm) {
7362        self.emit_n(InstId::Bc.with_cc(CondCode::LO), &[op0.as_operand()]);
7363    }
7364    fn bc_mi(&mut self, op0: Imm) {
7365        self.emit_n(InstId::Bc.with_cc(CondCode::MI), &[op0.as_operand()]);
7366    }
7367    fn bc_pl(&mut self, op0: Imm) {
7368        self.emit_n(InstId::Bc.with_cc(CondCode::PL), &[op0.as_operand()]);
7369    }
7370    fn bc_vs(&mut self, op0: Imm) {
7371        self.emit_n(InstId::Bc.with_cc(CondCode::VS), &[op0.as_operand()]);
7372    }
7373    fn bc_vc(&mut self, op0: Imm) {
7374        self.emit_n(InstId::Bc.with_cc(CondCode::VC), &[op0.as_operand()]);
7375    }
7376    fn bc_hi(&mut self, op0: Imm) {
7377        self.emit_n(InstId::Bc.with_cc(CondCode::HI), &[op0.as_operand()]);
7378    }
7379    fn bc_ls(&mut self, op0: Imm) {
7380        self.emit_n(InstId::Bc.with_cc(CondCode::LS), &[op0.as_operand()]);
7381    }
7382    fn bc_ge(&mut self, op0: Imm) {
7383        self.emit_n(InstId::Bc.with_cc(CondCode::GE), &[op0.as_operand()]);
7384    }
7385    fn bc_lt(&mut self, op0: Imm) {
7386        self.emit_n(InstId::Bc.with_cc(CondCode::LT), &[op0.as_operand()]);
7387    }
7388    fn bc_gt(&mut self, op0: Imm) {
7389        self.emit_n(InstId::Bc.with_cc(CondCode::GT), &[op0.as_operand()]);
7390    }
7391    fn bc_le(&mut self, op0: Imm) {
7392        self.emit_n(InstId::Bc.with_cc(CondCode::LE), &[op0.as_operand()]);
7393    }
7394    fn bc_al(&mut self, op0: Imm) {
7395        self.emit_n(InstId::Bc.with_cc(CondCode::AL), &[op0.as_operand()]);
7396    }
7397}
7398
7399impl BcEmitter<Label> for Assembler<'_> {
7400    fn bc_eq(&mut self, op0: Label) {
7401        self.emit_n(InstId::Bc.with_cc(CondCode::EQ), &[op0.as_operand()]);
7402    }
7403    fn bc_ne(&mut self, op0: Label) {
7404        self.emit_n(InstId::Bc.with_cc(CondCode::NE), &[op0.as_operand()]);
7405    }
7406    fn bc_cs(&mut self, op0: Label) {
7407        self.emit_n(InstId::Bc.with_cc(CondCode::CS), &[op0.as_operand()]);
7408    }
7409    fn bc_hs(&mut self, op0: Label) {
7410        self.emit_n(InstId::Bc.with_cc(CondCode::HS), &[op0.as_operand()]);
7411    }
7412    fn bc_cc(&mut self, op0: Label) {
7413        self.emit_n(InstId::Bc.with_cc(CondCode::CC), &[op0.as_operand()]);
7414    }
7415    fn bc_lo(&mut self, op0: Label) {
7416        self.emit_n(InstId::Bc.with_cc(CondCode::LO), &[op0.as_operand()]);
7417    }
7418    fn bc_mi(&mut self, op0: Label) {
7419        self.emit_n(InstId::Bc.with_cc(CondCode::MI), &[op0.as_operand()]);
7420    }
7421    fn bc_pl(&mut self, op0: Label) {
7422        self.emit_n(InstId::Bc.with_cc(CondCode::PL), &[op0.as_operand()]);
7423    }
7424    fn bc_vs(&mut self, op0: Label) {
7425        self.emit_n(InstId::Bc.with_cc(CondCode::VS), &[op0.as_operand()]);
7426    }
7427    fn bc_vc(&mut self, op0: Label) {
7428        self.emit_n(InstId::Bc.with_cc(CondCode::VC), &[op0.as_operand()]);
7429    }
7430    fn bc_hi(&mut self, op0: Label) {
7431        self.emit_n(InstId::Bc.with_cc(CondCode::HI), &[op0.as_operand()]);
7432    }
7433    fn bc_ls(&mut self, op0: Label) {
7434        self.emit_n(InstId::Bc.with_cc(CondCode::LS), &[op0.as_operand()]);
7435    }
7436    fn bc_ge(&mut self, op0: Label) {
7437        self.emit_n(InstId::Bc.with_cc(CondCode::GE), &[op0.as_operand()]);
7438    }
7439    fn bc_lt(&mut self, op0: Label) {
7440        self.emit_n(InstId::Bc.with_cc(CondCode::LT), &[op0.as_operand()]);
7441    }
7442    fn bc_gt(&mut self, op0: Label) {
7443        self.emit_n(InstId::Bc.with_cc(CondCode::GT), &[op0.as_operand()]);
7444    }
7445    fn bc_le(&mut self, op0: Label) {
7446        self.emit_n(InstId::Bc.with_cc(CondCode::LE), &[op0.as_operand()]);
7447    }
7448    fn bc_al(&mut self, op0: Label) {
7449        self.emit_n(InstId::Bc.with_cc(CondCode::AL), &[op0.as_operand()]);
7450    }
7451}
7452
7453impl BcEmitter<Sym> for Assembler<'_> {
7454    fn bc_eq(&mut self, op0: Sym) {
7455        self.emit_n(InstId::Bc.with_cc(CondCode::EQ), &[op0.as_operand()]);
7456    }
7457    fn bc_ne(&mut self, op0: Sym) {
7458        self.emit_n(InstId::Bc.with_cc(CondCode::NE), &[op0.as_operand()]);
7459    }
7460    fn bc_cs(&mut self, op0: Sym) {
7461        self.emit_n(InstId::Bc.with_cc(CondCode::CS), &[op0.as_operand()]);
7462    }
7463    fn bc_hs(&mut self, op0: Sym) {
7464        self.emit_n(InstId::Bc.with_cc(CondCode::HS), &[op0.as_operand()]);
7465    }
7466    fn bc_cc(&mut self, op0: Sym) {
7467        self.emit_n(InstId::Bc.with_cc(CondCode::CC), &[op0.as_operand()]);
7468    }
7469    fn bc_lo(&mut self, op0: Sym) {
7470        self.emit_n(InstId::Bc.with_cc(CondCode::LO), &[op0.as_operand()]);
7471    }
7472    fn bc_mi(&mut self, op0: Sym) {
7473        self.emit_n(InstId::Bc.with_cc(CondCode::MI), &[op0.as_operand()]);
7474    }
7475    fn bc_pl(&mut self, op0: Sym) {
7476        self.emit_n(InstId::Bc.with_cc(CondCode::PL), &[op0.as_operand()]);
7477    }
7478    fn bc_vs(&mut self, op0: Sym) {
7479        self.emit_n(InstId::Bc.with_cc(CondCode::VS), &[op0.as_operand()]);
7480    }
7481    fn bc_vc(&mut self, op0: Sym) {
7482        self.emit_n(InstId::Bc.with_cc(CondCode::VC), &[op0.as_operand()]);
7483    }
7484    fn bc_hi(&mut self, op0: Sym) {
7485        self.emit_n(InstId::Bc.with_cc(CondCode::HI), &[op0.as_operand()]);
7486    }
7487    fn bc_ls(&mut self, op0: Sym) {
7488        self.emit_n(InstId::Bc.with_cc(CondCode::LS), &[op0.as_operand()]);
7489    }
7490    fn bc_ge(&mut self, op0: Sym) {
7491        self.emit_n(InstId::Bc.with_cc(CondCode::GE), &[op0.as_operand()]);
7492    }
7493    fn bc_lt(&mut self, op0: Sym) {
7494        self.emit_n(InstId::Bc.with_cc(CondCode::LT), &[op0.as_operand()]);
7495    }
7496    fn bc_gt(&mut self, op0: Sym) {
7497        self.emit_n(InstId::Bc.with_cc(CondCode::GT), &[op0.as_operand()]);
7498    }
7499    fn bc_le(&mut self, op0: Sym) {
7500        self.emit_n(InstId::Bc.with_cc(CondCode::LE), &[op0.as_operand()]);
7501    }
7502    fn bc_al(&mut self, op0: Sym) {
7503        self.emit_n(InstId::Bc.with_cc(CondCode::AL), &[op0.as_operand()]);
7504    }
7505}
7506
7507impl AutdaEmitter<Gp, Gp> for Assembler<'_> {
7508    fn autda(&mut self, op0: Gp, op1: Gp) {
7509        self.emit_n(InstId::Autda, &[op0.as_operand(), op1.as_operand()]);
7510    }
7511}
7512
7513impl AutdbEmitter<Gp, Gp> for Assembler<'_> {
7514    fn autdb(&mut self, op0: Gp, op1: Gp) {
7515        self.emit_n(InstId::Autdb, &[op0.as_operand(), op1.as_operand()]);
7516    }
7517}
7518
7519impl AutdzaEmitter<Gp> for Assembler<'_> {
7520    fn autdza(&mut self, op0: Gp) {
7521        self.emit_n(InstId::Autdza, &[op0.as_operand()]);
7522    }
7523}
7524
7525impl AutdzbEmitter<Gp> for Assembler<'_> {
7526    fn autdzb(&mut self, op0: Gp) {
7527        self.emit_n(InstId::Autdzb, &[op0.as_operand()]);
7528    }
7529}
7530
7531impl AutiaEmitter<Gp, Gp> for Assembler<'_> {
7532    fn autia(&mut self, op0: Gp, op1: Gp) {
7533        self.emit_n(InstId::Autia, &[op0.as_operand(), op1.as_operand()]);
7534    }
7535}
7536
7537impl Autia1716Emitter for Assembler<'_> {
7538    fn autia1716(&mut self) {
7539        self.emit_n(InstId::Autia1716, &[]);
7540    }
7541}
7542
7543impl AutiaspEmitter for Assembler<'_> {
7544    fn autiasp(&mut self) {
7545        self.emit_n(InstId::Autiasp, &[]);
7546    }
7547}
7548
7549impl AutiazEmitter for Assembler<'_> {
7550    fn autiaz(&mut self) {
7551        self.emit_n(InstId::Autiaz, &[]);
7552    }
7553}
7554
7555impl AutibEmitter<Gp, Gp> for Assembler<'_> {
7556    fn autib(&mut self, op0: Gp, op1: Gp) {
7557        self.emit_n(InstId::Autib, &[op0.as_operand(), op1.as_operand()]);
7558    }
7559}
7560
7561impl Autib1716Emitter for Assembler<'_> {
7562    fn autib1716(&mut self) {
7563        self.emit_n(InstId::Autib1716, &[]);
7564    }
7565}
7566
7567impl AutibspEmitter for Assembler<'_> {
7568    fn autibsp(&mut self) {
7569        self.emit_n(InstId::Autibsp, &[]);
7570    }
7571}
7572
7573impl AutibzEmitter for Assembler<'_> {
7574    fn autibz(&mut self) {
7575        self.emit_n(InstId::Autibz, &[]);
7576    }
7577}
7578
7579impl AutizaEmitter<Gp> for Assembler<'_> {
7580    fn autiza(&mut self, op0: Gp) {
7581        self.emit_n(InstId::Autiza, &[op0.as_operand()]);
7582    }
7583}
7584
7585impl AutizbEmitter<Gp> for Assembler<'_> {
7586    fn autizb(&mut self, op0: Gp) {
7587        self.emit_n(InstId::Autizb, &[op0.as_operand()]);
7588    }
7589}
7590
7591impl GmiEmitter<Gp, Gp, Gp> for Assembler<'_> {
7592    fn gmi(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7593        self.emit_n(
7594            InstId::Gmi,
7595            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7596        );
7597    }
7598}
7599
7600impl CmppEmitter<Gp, Gp> for Assembler<'_> {
7601    fn cmpp(&mut self, op0: Gp, op1: Gp) {
7602        self.emit_n(InstId::Cmpp, &[op0.as_operand(), op1.as_operand()]);
7603    }
7604}
7605
7606impl AddgEmitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
7607    fn addg(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
7608        self.emit_n(
7609            InstId::Addg,
7610            &[
7611                op0.as_operand(),
7612                op1.as_operand(),
7613                op2.as_operand(),
7614                op3.as_operand(),
7615            ],
7616        );
7617    }
7618}
7619
7620impl LdgEmitter<Gp, Mem> for Assembler<'_> {
7621    fn ldg(&mut self, op0: Gp, op1: Mem) {
7622        self.emit_n(InstId::Ldg, &[op0.as_operand(), op1.as_operand()]);
7623    }
7624}
7625
7626impl LdgmEmitter<Gp, Mem> for Assembler<'_> {
7627    fn ldgm(&mut self, op0: Gp, op1: Mem) {
7628        self.emit_n(InstId::Ldgm, &[op0.as_operand(), op1.as_operand()]);
7629    }
7630}
7631
7632impl LdraaEmitter<Gp, Mem> for Assembler<'_> {
7633    fn ldraa(&mut self, op0: Gp, op1: Mem) {
7634        self.emit_n(InstId::Ldraa, &[op0.as_operand(), op1.as_operand()]);
7635    }
7636}
7637
7638impl LdrabEmitter<Gp, Mem> for Assembler<'_> {
7639    fn ldrab(&mut self, op0: Gp, op1: Mem) {
7640        self.emit_n(InstId::Ldrab, &[op0.as_operand(), op1.as_operand()]);
7641    }
7642}
7643
7644impl PacdaEmitter<Gp, Gp> for Assembler<'_> {
7645    fn pacda(&mut self, op0: Gp, op1: Gp) {
7646        self.emit_n(InstId::Pacda, &[op0.as_operand(), op1.as_operand()]);
7647    }
7648}
7649
7650impl PacdbEmitter<Gp, Gp> for Assembler<'_> {
7651    fn pacdb(&mut self, op0: Gp, op1: Gp) {
7652        self.emit_n(InstId::Pacdb, &[op0.as_operand(), op1.as_operand()]);
7653    }
7654}
7655
7656impl PacdzaEmitter<Gp> for Assembler<'_> {
7657    fn pacdza(&mut self, op0: Gp) {
7658        self.emit_n(InstId::Pacdza, &[op0.as_operand()]);
7659    }
7660}
7661
7662impl PacdzbEmitter<Gp> for Assembler<'_> {
7663    fn pacdzb(&mut self, op0: Gp) {
7664        self.emit_n(InstId::Pacdzb, &[op0.as_operand()]);
7665    }
7666}
7667
7668impl PacgaEmitter<Gp, Gp, Gp> for Assembler<'_> {
7669    fn pacga(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7670        self.emit_n(
7671            InstId::Pacga,
7672            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7673        );
7674    }
7675}
7676
7677impl SubpEmitter<Gp, Gp, Gp> for Assembler<'_> {
7678    fn subp(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7679        self.emit_n(
7680            InstId::Subp,
7681            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7682        );
7683    }
7684}
7685
7686impl SubpsEmitter<Gp, Gp, Gp> for Assembler<'_> {
7687    fn subps(&mut self, op0: Gp, op1: Gp, op2: Gp) {
7688        self.emit_n(
7689            InstId::Subps,
7690            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7691        );
7692    }
7693}
7694
7695impl SubgEmitter<Gp, Gp, Imm, Imm> for Assembler<'_> {
7696    fn subg(&mut self, op0: Gp, op1: Gp, op2: Imm, op3: Imm) {
7697        self.emit_n(
7698            InstId::Subg,
7699            &[
7700                op0.as_operand(),
7701                op1.as_operand(),
7702                op2.as_operand(),
7703                op3.as_operand(),
7704            ],
7705        );
7706    }
7707}
7708
7709impl St2gEmitter<Gp, Mem> for Assembler<'_> {
7710    fn st2g(&mut self, op0: Gp, op1: Mem) {
7711        self.emit_n(InstId::St2g, &[op0.as_operand(), op1.as_operand()]);
7712    }
7713}
7714
7715impl StgEmitter<Gp, Mem> for Assembler<'_> {
7716    fn stg(&mut self, op0: Gp, op1: Mem) {
7717        self.emit_n(InstId::Stg, &[op0.as_operand(), op1.as_operand()]);
7718    }
7719}
7720
7721impl StgpEmitter<Gp, Gp, Mem> for Assembler<'_> {
7722    fn stgp(&mut self, op0: Gp, op1: Gp, op2: Mem) {
7723        self.emit_n(
7724            InstId::Stgp,
7725            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7726        );
7727    }
7728}
7729
7730impl StgmEmitter<Gp, Mem> for Assembler<'_> {
7731    fn stgm(&mut self, op0: Gp, op1: Mem) {
7732        self.emit_n(InstId::Stgm, &[op0.as_operand(), op1.as_operand()]);
7733    }
7734}
7735
7736impl StzgEmitter<Gp, Mem> for Assembler<'_> {
7737    fn stzg(&mut self, op0: Gp, op1: Mem) {
7738        self.emit_n(InstId::Stzg, &[op0.as_operand(), op1.as_operand()]);
7739    }
7740}
7741
7742impl Stz2gEmitter<Gp, Mem> for Assembler<'_> {
7743    fn stz2g(&mut self, op0: Gp, op1: Mem) {
7744        self.emit_n(InstId::Stz2g, &[op0.as_operand(), op1.as_operand()]);
7745    }
7746}
7747
7748impl StzgmEmitter<Gp, Mem> for Assembler<'_> {
7749    fn stzgm(&mut self, op0: Gp, op1: Mem) {
7750        self.emit_n(InstId::Stzgm, &[op0.as_operand(), op1.as_operand()]);
7751    }
7752}
7753
7754impl XpacdEmitter<Gp> for Assembler<'_> {
7755    fn xpacd(&mut self, op0: Gp) {
7756        self.emit_n(InstId::Xpacd, &[op0.as_operand()]);
7757    }
7758}
7759
7760impl XpaciEmitter<Gp> for Assembler<'_> {
7761    fn xpaci(&mut self, op0: Gp) {
7762        self.emit_n(InstId::Xpaci, &[op0.as_operand()]);
7763    }
7764}
7765
7766impl XpaclriEmitter for Assembler<'_> {
7767    fn xpaclri(&mut self) {
7768        self.emit_n(InstId::Xpaclri, &[]);
7769    }
7770}
7771
7772impl HintEmitter<Imm> for Assembler<'_> {
7773    fn hint(&mut self, op0: Imm) {
7774        self.emit_n(InstId::Hint, &[op0.as_operand()]);
7775    }
7776}
7777
7778impl NopEmitter for Assembler<'_> {
7779    fn nop(&mut self) {
7780        self.emit_n(InstId::Nop, &[]);
7781    }
7782}
7783
7784impl SevEmitter for Assembler<'_> {
7785    fn sev(&mut self) {
7786        self.emit_n(InstId::Sev, &[]);
7787    }
7788}
7789
7790impl SevlEmitter for Assembler<'_> {
7791    fn sevl(&mut self) {
7792        self.emit_n(InstId::Sevl, &[]);
7793    }
7794}
7795
7796impl WfeEmitter for Assembler<'_> {
7797    fn wfe(&mut self) {
7798        self.emit_n(InstId::Wfe, &[]);
7799    }
7800}
7801
7802impl WfiEmitter for Assembler<'_> {
7803    fn wfi(&mut self) {
7804        self.emit_n(InstId::Wfi, &[]);
7805    }
7806}
7807
7808impl YieldEmitter for Assembler<'_> {
7809    fn r#yield(&mut self) {
7810        self.emit_n(InstId::Yield, &[]);
7811    }
7812}
7813
7814impl AddhnEmitter<Vec, Vec, Vec> for Assembler<'_> {
7815    fn addhn(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7816        self.emit_n(
7817            InstId::Addhn_v,
7818            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7819        );
7820    }
7821}
7822
7823impl Addhn2Emitter<Vec, Vec, Vec> for Assembler<'_> {
7824    fn addhn2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7825        self.emit_n(
7826            InstId::Addhn2_v,
7827            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7828        );
7829    }
7830}
7831
7832impl AddpEmitter<Vec, Vec> for Assembler<'_> {
7833    fn addp(&mut self, op0: Vec, op1: Vec) {
7834        self.emit_n(InstId::Addp_v, &[op0.as_operand(), op1.as_operand()]);
7835    }
7836}
7837
7838impl Addp3Emitter<Vec, Vec, Vec> for Assembler<'_> {
7839    fn addp_3(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7840        self.emit_n(
7841            InstId::Addp_v,
7842            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7843        );
7844    }
7845}
7846
7847impl AddvEmitter<Vec, Vec> for Assembler<'_> {
7848    fn addv(&mut self, op0: Vec, op1: Vec) {
7849        self.emit_n(InstId::Addv_v, &[op0.as_operand(), op1.as_operand()]);
7850    }
7851}
7852
7853impl Bic2Emitter<Vec, Imm> for Assembler<'_> {
7854    fn bic_2(&mut self, op0: Vec, op1: Imm) {
7855        self.emit_n(InstId::Bic_v, &[op0.as_operand(), op1.as_operand()]);
7856    }
7857}
7858
7859impl BifEmitter<Vec, Vec, Vec> for Assembler<'_> {
7860    fn bif(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7861        self.emit_n(
7862            InstId::Bif_v,
7863            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7864        );
7865    }
7866}
7867
7868impl BitEmitter<Vec, Vec, Vec> for Assembler<'_> {
7869    fn bit(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7870        self.emit_n(
7871            InstId::Bit_v,
7872            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7873        );
7874    }
7875}
7876
7877impl BslEmitter<Vec, Vec, Vec> for Assembler<'_> {
7878    fn bsl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7879        self.emit_n(
7880            InstId::Bsl_v,
7881            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7882        );
7883    }
7884}
7885
7886impl CmeqEmitter<Vec, Vec, Vec> for Assembler<'_> {
7887    fn cmeq(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7888        self.emit_n(
7889            InstId::Cmeq_v,
7890            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7891        );
7892    }
7893}
7894
7895impl CmeqEmitter<Vec, Vec, Imm> for Assembler<'_> {
7896    fn cmeq(&mut self, op0: Vec, op1: Vec, op2: Imm) {
7897        self.emit_n(
7898            InstId::Cmeq_v,
7899            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7900        );
7901    }
7902}
7903
7904impl CmgeEmitter<Vec, Vec, Vec> for Assembler<'_> {
7905    fn cmge(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7906        self.emit_n(
7907            InstId::Cmge_v,
7908            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7909        );
7910    }
7911}
7912
7913impl CmgeEmitter<Vec, Vec, Imm> for Assembler<'_> {
7914    fn cmge(&mut self, op0: Vec, op1: Vec, op2: Imm) {
7915        self.emit_n(
7916            InstId::Cmge_v,
7917            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7918        );
7919    }
7920}
7921
7922impl CmgtEmitter<Vec, Vec, Vec> for Assembler<'_> {
7923    fn cmgt(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7924        self.emit_n(
7925            InstId::Cmgt_v,
7926            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7927        );
7928    }
7929}
7930
7931impl CmgtEmitter<Vec, Vec, Imm> for Assembler<'_> {
7932    fn cmgt(&mut self, op0: Vec, op1: Vec, op2: Imm) {
7933        self.emit_n(
7934            InstId::Cmgt_v,
7935            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7936        );
7937    }
7938}
7939
7940impl CmhiEmitter<Vec, Vec, Vec> for Assembler<'_> {
7941    fn cmhi(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7942        self.emit_n(
7943            InstId::Cmhi_v,
7944            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7945        );
7946    }
7947}
7948
7949impl CmhsEmitter<Vec, Vec, Vec> for Assembler<'_> {
7950    fn cmhs(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7951        self.emit_n(
7952            InstId::Cmhs_v,
7953            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7954        );
7955    }
7956}
7957
7958impl CmleEmitter<Vec, Vec, Imm> for Assembler<'_> {
7959    fn cmle(&mut self, op0: Vec, op1: Vec, op2: Imm) {
7960        self.emit_n(
7961            InstId::Cmle_v,
7962            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7963        );
7964    }
7965}
7966
7967impl CmltEmitter<Vec, Vec, Imm> for Assembler<'_> {
7968    fn cmlt(&mut self, op0: Vec, op1: Vec, op2: Imm) {
7969        self.emit_n(
7970            InstId::Cmlt_v,
7971            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7972        );
7973    }
7974}
7975
7976impl CmtstEmitter<Vec, Vec, Vec> for Assembler<'_> {
7977    fn cmtst(&mut self, op0: Vec, op1: Vec, op2: Vec) {
7978        self.emit_n(
7979            InstId::Cmtst_v,
7980            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
7981        );
7982    }
7983}
7984
7985impl DupEmitter<Vec, Gp> for Assembler<'_> {
7986    fn dup(&mut self, op0: Vec, op1: Gp) {
7987        self.emit_n(InstId::Dup_v, &[op0.as_operand(), op1.as_operand()]);
7988    }
7989}
7990
7991impl DupEmitter<Vec, Vec> for Assembler<'_> {
7992    fn dup(&mut self, op0: Vec, op1: Vec) {
7993        self.emit_n(InstId::Dup_v, &[op0.as_operand(), op1.as_operand()]);
7994    }
7995}
7996
7997impl ExtEmitter<Vec, Vec, Vec, Imm> for Assembler<'_> {
7998    fn ext(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Imm) {
7999        self.emit_n(
8000            InstId::Ext_v,
8001            &[
8002                op0.as_operand(),
8003                op1.as_operand(),
8004                op2.as_operand(),
8005                op3.as_operand(),
8006            ],
8007        );
8008    }
8009}
8010
8011impl FabdEmitter<Vec, Vec, Vec> for Assembler<'_> {
8012    fn fabd(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8013        self.emit_n(
8014            InstId::Fabd_v,
8015            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8016        );
8017    }
8018}
8019
8020impl FabsEmitter<Vec, Vec> for Assembler<'_> {
8021    fn fabs(&mut self, op0: Vec, op1: Vec) {
8022        self.emit_n(InstId::Fabs_v, &[op0.as_operand(), op1.as_operand()]);
8023    }
8024}
8025
8026impl FacgeEmitter<Vec, Vec, Vec> for Assembler<'_> {
8027    fn facge(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8028        self.emit_n(
8029            InstId::Facge_v,
8030            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8031        );
8032    }
8033}
8034
8035impl FacgtEmitter<Vec, Vec, Vec> for Assembler<'_> {
8036    fn facgt(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8037        self.emit_n(
8038            InstId::Facgt_v,
8039            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8040        );
8041    }
8042}
8043
8044impl FaddEmitter<Vec, Vec, Vec> for Assembler<'_> {
8045    fn fadd(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8046        self.emit_n(
8047            InstId::Fadd_v,
8048            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8049        );
8050    }
8051}
8052
8053impl FaddpEmitter<Vec, Vec> for Assembler<'_> {
8054    fn faddp(&mut self, op0: Vec, op1: Vec) {
8055        self.emit_n(InstId::Faddp_v, &[op0.as_operand(), op1.as_operand()]);
8056    }
8057}
8058
8059impl Faddp3Emitter<Vec, Vec, Vec> for Assembler<'_> {
8060    fn faddp_3(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8061        self.emit_n(
8062            InstId::Faddp_v,
8063            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8064        );
8065    }
8066}
8067
8068impl FccmpEmitter<Vec, Vec, Imm, Imm> for Assembler<'_> {
8069    fn fccmp(&mut self, op0: Vec, op1: Vec, op2: Imm, op3: Imm) {
8070        self.emit_n(
8071            InstId::Fccmp_v,
8072            &[
8073                op0.as_operand(),
8074                op1.as_operand(),
8075                op2.as_operand(),
8076                op3.as_operand(),
8077            ],
8078        );
8079    }
8080}
8081
8082impl FccmpeEmitter<Vec, Vec, Imm, Imm> for Assembler<'_> {
8083    fn fccmpe(&mut self, op0: Vec, op1: Vec, op2: Imm, op3: Imm) {
8084        self.emit_n(
8085            InstId::Fccmpe_v,
8086            &[
8087                op0.as_operand(),
8088                op1.as_operand(),
8089                op2.as_operand(),
8090                op3.as_operand(),
8091            ],
8092        );
8093    }
8094}
8095
8096impl FcmeqEmitter<Vec, Vec, Vec> for Assembler<'_> {
8097    fn fcmeq(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8098        self.emit_n(
8099            InstId::Fcmeq_v,
8100            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8101        );
8102    }
8103}
8104
8105impl FcmeqEmitter<Vec, Vec, Imm> for Assembler<'_> {
8106    fn fcmeq(&mut self, op0: Vec, op1: Vec, op2: Imm) {
8107        self.emit_n(
8108            InstId::Fcmeq_v,
8109            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8110        );
8111    }
8112}
8113
8114impl FcmgeEmitter<Vec, Vec, Vec> for Assembler<'_> {
8115    fn fcmge(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8116        self.emit_n(
8117            InstId::Fcmge_v,
8118            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8119        );
8120    }
8121}
8122
8123impl FcmgeEmitter<Vec, Vec, Imm> for Assembler<'_> {
8124    fn fcmge(&mut self, op0: Vec, op1: Vec, op2: Imm) {
8125        self.emit_n(
8126            InstId::Fcmge_v,
8127            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8128        );
8129    }
8130}
8131
8132impl FcmgtEmitter<Vec, Vec, Vec> for Assembler<'_> {
8133    fn fcmgt(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8134        self.emit_n(
8135            InstId::Fcmgt_v,
8136            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8137        );
8138    }
8139}
8140
8141impl FcmgtEmitter<Vec, Vec, Imm> for Assembler<'_> {
8142    fn fcmgt(&mut self, op0: Vec, op1: Vec, op2: Imm) {
8143        self.emit_n(
8144            InstId::Fcmgt_v,
8145            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8146        );
8147    }
8148}
8149
8150impl FcmleEmitter<Vec, Vec, Imm> for Assembler<'_> {
8151    fn fcmle(&mut self, op0: Vec, op1: Vec, op2: Imm) {
8152        self.emit_n(
8153            InstId::Fcmle_v,
8154            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8155        );
8156    }
8157}
8158
8159impl FcmltEmitter<Vec, Vec, Imm> for Assembler<'_> {
8160    fn fcmlt(&mut self, op0: Vec, op1: Vec, op2: Imm) {
8161        self.emit_n(
8162            InstId::Fcmlt_v,
8163            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8164        );
8165    }
8166}
8167
8168impl FcmpEmitter<Vec, Vec> for Assembler<'_> {
8169    fn fcmp(&mut self, op0: Vec, op1: Vec) {
8170        self.emit_n(InstId::Fcmp_v, &[op0.as_operand(), op1.as_operand()]);
8171    }
8172}
8173
8174impl FcmpEmitter<Vec, Imm> for Assembler<'_> {
8175    fn fcmp(&mut self, op0: Vec, op1: Imm) {
8176        self.emit_n(InstId::Fcmp_v, &[op0.as_operand(), op1.as_operand()]);
8177    }
8178}
8179
8180impl FcmpeEmitter<Vec, Vec> for Assembler<'_> {
8181    fn fcmpe(&mut self, op0: Vec, op1: Vec) {
8182        self.emit_n(InstId::Fcmpe_v, &[op0.as_operand(), op1.as_operand()]);
8183    }
8184}
8185
8186impl FcmpeEmitter<Vec, Imm> for Assembler<'_> {
8187    fn fcmpe(&mut self, op0: Vec, op1: Imm) {
8188        self.emit_n(InstId::Fcmpe_v, &[op0.as_operand(), op1.as_operand()]);
8189    }
8190}
8191
8192impl FcselEmitter<Vec, Vec, Vec, Imm> for Assembler<'_> {
8193    fn fcsel(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Imm) {
8194        self.emit_n(
8195            InstId::Fcsel_v,
8196            &[
8197                op0.as_operand(),
8198                op1.as_operand(),
8199                op2.as_operand(),
8200                op3.as_operand(),
8201            ],
8202        );
8203    }
8204}
8205
8206impl FcvtEmitter<Vec, Vec> for Assembler<'_> {
8207    fn fcvt(&mut self, op0: Vec, op1: Vec) {
8208        self.emit_n(InstId::Fcvt_v, &[op0.as_operand(), op1.as_operand()]);
8209    }
8210}
8211
8212impl FcvtasEmitter<Gp, Vec> for Assembler<'_> {
8213    fn fcvtas(&mut self, op0: Gp, op1: Vec) {
8214        self.emit_n(InstId::Fcvtas_v, &[op0.as_operand(), op1.as_operand()]);
8215    }
8216}
8217
8218impl FcvtasEmitter<Vec, Vec> for Assembler<'_> {
8219    fn fcvtas(&mut self, op0: Vec, op1: Vec) {
8220        self.emit_n(InstId::Fcvtas_v, &[op0.as_operand(), op1.as_operand()]);
8221    }
8222}
8223
8224impl FcvtauEmitter<Gp, Vec> for Assembler<'_> {
8225    fn fcvtau(&mut self, op0: Gp, op1: Vec) {
8226        self.emit_n(InstId::Fcvtau_v, &[op0.as_operand(), op1.as_operand()]);
8227    }
8228}
8229
8230impl FcvtauEmitter<Vec, Vec> for Assembler<'_> {
8231    fn fcvtau(&mut self, op0: Vec, op1: Vec) {
8232        self.emit_n(InstId::Fcvtau_v, &[op0.as_operand(), op1.as_operand()]);
8233    }
8234}
8235
8236impl FcvtlEmitter<Vec, Vec> for Assembler<'_> {
8237    fn fcvtl(&mut self, op0: Vec, op1: Vec) {
8238        self.emit_n(InstId::Fcvtl_v, &[op0.as_operand(), op1.as_operand()]);
8239    }
8240}
8241
8242impl Fcvtl2Emitter<Vec, Vec> for Assembler<'_> {
8243    fn fcvtl2(&mut self, op0: Vec, op1: Vec) {
8244        self.emit_n(InstId::Fcvtl2_v, &[op0.as_operand(), op1.as_operand()]);
8245    }
8246}
8247
8248impl FcvtmsEmitter<Gp, Vec> for Assembler<'_> {
8249    fn fcvtms(&mut self, op0: Gp, op1: Vec) {
8250        self.emit_n(InstId::Fcvtms_v, &[op0.as_operand(), op1.as_operand()]);
8251    }
8252}
8253
8254impl FcvtmsEmitter<Vec, Vec> for Assembler<'_> {
8255    fn fcvtms(&mut self, op0: Vec, op1: Vec) {
8256        self.emit_n(InstId::Fcvtms_v, &[op0.as_operand(), op1.as_operand()]);
8257    }
8258}
8259
8260impl FcvtmuEmitter<Gp, Vec> for Assembler<'_> {
8261    fn fcvtmu(&mut self, op0: Gp, op1: Vec) {
8262        self.emit_n(InstId::Fcvtmu_v, &[op0.as_operand(), op1.as_operand()]);
8263    }
8264}
8265
8266impl FcvtmuEmitter<Vec, Vec> for Assembler<'_> {
8267    fn fcvtmu(&mut self, op0: Vec, op1: Vec) {
8268        self.emit_n(InstId::Fcvtmu_v, &[op0.as_operand(), op1.as_operand()]);
8269    }
8270}
8271
8272impl FcvtnEmitter<Vec, Vec> for Assembler<'_> {
8273    fn fcvtn(&mut self, op0: Vec, op1: Vec) {
8274        self.emit_n(InstId::Fcvtn_v, &[op0.as_operand(), op1.as_operand()]);
8275    }
8276}
8277
8278impl Fcvtn2Emitter<Vec, Vec> for Assembler<'_> {
8279    fn fcvtn2(&mut self, op0: Vec, op1: Vec) {
8280        self.emit_n(InstId::Fcvtn2_v, &[op0.as_operand(), op1.as_operand()]);
8281    }
8282}
8283
8284impl FcvtnsEmitter<Gp, Vec> for Assembler<'_> {
8285    fn fcvtns(&mut self, op0: Gp, op1: Vec) {
8286        self.emit_n(InstId::Fcvtns_v, &[op0.as_operand(), op1.as_operand()]);
8287    }
8288}
8289
8290impl FcvtnsEmitter<Vec, Vec> for Assembler<'_> {
8291    fn fcvtns(&mut self, op0: Vec, op1: Vec) {
8292        self.emit_n(InstId::Fcvtns_v, &[op0.as_operand(), op1.as_operand()]);
8293    }
8294}
8295
8296impl FcvtnuEmitter<Gp, Vec> for Assembler<'_> {
8297    fn fcvtnu(&mut self, op0: Gp, op1: Vec) {
8298        self.emit_n(InstId::Fcvtnu_v, &[op0.as_operand(), op1.as_operand()]);
8299    }
8300}
8301
8302impl FcvtnuEmitter<Vec, Vec> for Assembler<'_> {
8303    fn fcvtnu(&mut self, op0: Vec, op1: Vec) {
8304        self.emit_n(InstId::Fcvtnu_v, &[op0.as_operand(), op1.as_operand()]);
8305    }
8306}
8307
8308impl FcvtpsEmitter<Gp, Vec> for Assembler<'_> {
8309    fn fcvtps(&mut self, op0: Gp, op1: Vec) {
8310        self.emit_n(InstId::Fcvtps_v, &[op0.as_operand(), op1.as_operand()]);
8311    }
8312}
8313
8314impl FcvtpsEmitter<Vec, Vec> for Assembler<'_> {
8315    fn fcvtps(&mut self, op0: Vec, op1: Vec) {
8316        self.emit_n(InstId::Fcvtps_v, &[op0.as_operand(), op1.as_operand()]);
8317    }
8318}
8319
8320impl FcvtpuEmitter<Gp, Vec> for Assembler<'_> {
8321    fn fcvtpu(&mut self, op0: Gp, op1: Vec) {
8322        self.emit_n(InstId::Fcvtpu_v, &[op0.as_operand(), op1.as_operand()]);
8323    }
8324}
8325
8326impl FcvtpuEmitter<Vec, Vec> for Assembler<'_> {
8327    fn fcvtpu(&mut self, op0: Vec, op1: Vec) {
8328        self.emit_n(InstId::Fcvtpu_v, &[op0.as_operand(), op1.as_operand()]);
8329    }
8330}
8331
8332impl FcvtxnEmitter<Vec, Vec> for Assembler<'_> {
8333    fn fcvtxn(&mut self, op0: Vec, op1: Vec) {
8334        self.emit_n(InstId::Fcvtxn_v, &[op0.as_operand(), op1.as_operand()]);
8335    }
8336}
8337
8338impl Fcvtxn2Emitter<Vec, Vec> for Assembler<'_> {
8339    fn fcvtxn2(&mut self, op0: Vec, op1: Vec) {
8340        self.emit_n(InstId::Fcvtxn2_v, &[op0.as_operand(), op1.as_operand()]);
8341    }
8342}
8343
8344impl FcvtzsEmitter<Gp, Vec> for Assembler<'_> {
8345    fn fcvtzs(&mut self, op0: Gp, op1: Vec) {
8346        self.emit_n(InstId::Fcvtzs_v, &[op0.as_operand(), op1.as_operand()]);
8347    }
8348}
8349
8350impl FcvtzsEmitter<Vec, Vec> for Assembler<'_> {
8351    fn fcvtzs(&mut self, op0: Vec, op1: Vec) {
8352        self.emit_n(InstId::Fcvtzs_v, &[op0.as_operand(), op1.as_operand()]);
8353    }
8354}
8355
8356impl Fcvtzs3Emitter<Gp, Vec, Imm> for Assembler<'_> {
8357    fn fcvtzs_3(&mut self, op0: Gp, op1: Vec, op2: Imm) {
8358        self.emit_n(
8359            InstId::Fcvtzs_v,
8360            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8361        );
8362    }
8363}
8364
8365impl Fcvtzs3Emitter<Vec, Vec, Imm> for Assembler<'_> {
8366    fn fcvtzs_3(&mut self, op0: Vec, op1: Vec, op2: Imm) {
8367        self.emit_n(
8368            InstId::Fcvtzs_v,
8369            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8370        );
8371    }
8372}
8373
8374impl FcvtzuEmitter<Gp, Vec> for Assembler<'_> {
8375    fn fcvtzu(&mut self, op0: Gp, op1: Vec) {
8376        self.emit_n(InstId::Fcvtzu_v, &[op0.as_operand(), op1.as_operand()]);
8377    }
8378}
8379
8380impl FcvtzuEmitter<Vec, Vec> for Assembler<'_> {
8381    fn fcvtzu(&mut self, op0: Vec, op1: Vec) {
8382        self.emit_n(InstId::Fcvtzu_v, &[op0.as_operand(), op1.as_operand()]);
8383    }
8384}
8385
8386impl Fcvtzu3Emitter<Gp, Vec, Imm> for Assembler<'_> {
8387    fn fcvtzu_3(&mut self, op0: Gp, op1: Vec, op2: Imm) {
8388        self.emit_n(
8389            InstId::Fcvtzu_v,
8390            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8391        );
8392    }
8393}
8394
8395impl Fcvtzu3Emitter<Vec, Vec, Imm> for Assembler<'_> {
8396    fn fcvtzu_3(&mut self, op0: Vec, op1: Vec, op2: Imm) {
8397        self.emit_n(
8398            InstId::Fcvtzu_v,
8399            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8400        );
8401    }
8402}
8403
8404impl FdivEmitter<Vec, Vec, Vec> for Assembler<'_> {
8405    fn fdiv(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8406        self.emit_n(
8407            InstId::Fdiv_v,
8408            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8409        );
8410    }
8411}
8412
8413impl FmaddEmitter<Vec, Vec, Vec, Vec> for Assembler<'_> {
8414    fn fmadd(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec) {
8415        self.emit_n(
8416            InstId::Fmadd_v,
8417            &[
8418                op0.as_operand(),
8419                op1.as_operand(),
8420                op2.as_operand(),
8421                op3.as_operand(),
8422            ],
8423        );
8424    }
8425}
8426
8427impl FmaxEmitter<Vec, Vec, Vec> for Assembler<'_> {
8428    fn fmax(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8429        self.emit_n(
8430            InstId::Fmax_v,
8431            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8432        );
8433    }
8434}
8435
8436impl FmaxnmEmitter<Vec, Vec, Vec> for Assembler<'_> {
8437    fn fmaxnm(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8438        self.emit_n(
8439            InstId::Fmaxnm_v,
8440            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8441        );
8442    }
8443}
8444
8445impl FmaxnmpEmitter<Vec, Vec, Vec> for Assembler<'_> {
8446    fn fmaxnmp(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8447        self.emit_n(
8448            InstId::Fmaxnmp_v,
8449            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8450        );
8451    }
8452}
8453
8454impl Fmaxnmp2Emitter<Vec, Vec> for Assembler<'_> {
8455    fn fmaxnmp_2(&mut self, op0: Vec, op1: Vec) {
8456        self.emit_n(InstId::Fmaxnmp_v, &[op0.as_operand(), op1.as_operand()]);
8457    }
8458}
8459
8460impl FmaxnmvEmitter<Vec, Vec> for Assembler<'_> {
8461    fn fmaxnmv(&mut self, op0: Vec, op1: Vec) {
8462        self.emit_n(InstId::Fmaxnmv_v, &[op0.as_operand(), op1.as_operand()]);
8463    }
8464}
8465
8466impl FmaxpEmitter<Vec, Vec, Vec> for Assembler<'_> {
8467    fn fmaxp(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8468        self.emit_n(
8469            InstId::Fmaxp_v,
8470            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8471        );
8472    }
8473}
8474
8475impl Fmaxp2Emitter<Vec, Vec> for Assembler<'_> {
8476    fn fmaxp_2(&mut self, op0: Vec, op1: Vec) {
8477        self.emit_n(InstId::Fmaxp_v, &[op0.as_operand(), op1.as_operand()]);
8478    }
8479}
8480
8481impl FmaxvEmitter<Vec, Vec> for Assembler<'_> {
8482    fn fmaxv(&mut self, op0: Vec, op1: Vec) {
8483        self.emit_n(InstId::Fmaxv_v, &[op0.as_operand(), op1.as_operand()]);
8484    }
8485}
8486
8487impl FminEmitter<Vec, Vec, Vec> for Assembler<'_> {
8488    fn fmin(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8489        self.emit_n(
8490            InstId::Fmin_v,
8491            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8492        );
8493    }
8494}
8495
8496impl FminnmEmitter<Vec, Vec, Vec> for Assembler<'_> {
8497    fn fminnm(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8498        self.emit_n(
8499            InstId::Fminnm_v,
8500            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8501        );
8502    }
8503}
8504
8505impl FminnmvEmitter<Vec, Vec> for Assembler<'_> {
8506    fn fminnmv(&mut self, op0: Vec, op1: Vec) {
8507        self.emit_n(InstId::Fminnmv_v, &[op0.as_operand(), op1.as_operand()]);
8508    }
8509}
8510
8511impl FminnmpEmitter<Vec, Vec, Vec> for Assembler<'_> {
8512    fn fminnmp(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8513        self.emit_n(
8514            InstId::Fminnmp_v,
8515            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8516        );
8517    }
8518}
8519
8520impl Fminnmp2Emitter<Vec, Vec> for Assembler<'_> {
8521    fn fminnmp_2(&mut self, op0: Vec, op1: Vec) {
8522        self.emit_n(InstId::Fminnmp_v, &[op0.as_operand(), op1.as_operand()]);
8523    }
8524}
8525
8526impl FminpEmitter<Vec, Vec> for Assembler<'_> {
8527    fn fminp(&mut self, op0: Vec, op1: Vec) {
8528        self.emit_n(InstId::Fminp_v, &[op0.as_operand(), op1.as_operand()]);
8529    }
8530}
8531
8532impl Fminp3Emitter<Vec, Vec, Vec> for Assembler<'_> {
8533    fn fminp_3(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8534        self.emit_n(
8535            InstId::Fminp_v,
8536            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8537        );
8538    }
8539}
8540
8541impl FminvEmitter<Vec, Vec> for Assembler<'_> {
8542    fn fminv(&mut self, op0: Vec, op1: Vec) {
8543        self.emit_n(InstId::Fminv_v, &[op0.as_operand(), op1.as_operand()]);
8544    }
8545}
8546
8547impl FmlaEmitter<Vec, Vec, Vec> for Assembler<'_> {
8548    fn fmla(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8549        self.emit_n(
8550            InstId::Fmla_v,
8551            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8552        );
8553    }
8554}
8555
8556impl FmlsEmitter<Vec, Vec, Vec> for Assembler<'_> {
8557    fn fmls(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8558        self.emit_n(
8559            InstId::Fmls_v,
8560            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8561        );
8562    }
8563}
8564
8565impl FmovEmitter<Gp, Vec> for Assembler<'_> {
8566    fn fmov(&mut self, op0: Gp, op1: Vec) {
8567        self.emit_n(InstId::Fmov_v, &[op0.as_operand(), op1.as_operand()]);
8568    }
8569}
8570
8571impl FmovEmitter<Vec, Gp> for Assembler<'_> {
8572    fn fmov(&mut self, op0: Vec, op1: Gp) {
8573        self.emit_n(InstId::Fmov_v, &[op0.as_operand(), op1.as_operand()]);
8574    }
8575}
8576
8577impl FmovEmitter<Vec, Vec> for Assembler<'_> {
8578    fn fmov(&mut self, op0: Vec, op1: Vec) {
8579        self.emit_n(InstId::Fmov_v, &[op0.as_operand(), op1.as_operand()]);
8580    }
8581}
8582
8583impl FmovEmitter<Vec, Imm> for Assembler<'_> {
8584    fn fmov(&mut self, op0: Vec, op1: Imm) {
8585        self.emit_n(InstId::Fmov_v, &[op0.as_operand(), op1.as_operand()]);
8586    }
8587}
8588
8589impl FmsubEmitter<Vec, Vec, Vec, Vec> for Assembler<'_> {
8590    fn fmsub(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec) {
8591        self.emit_n(
8592            InstId::Fmsub_v,
8593            &[
8594                op0.as_operand(),
8595                op1.as_operand(),
8596                op2.as_operand(),
8597                op3.as_operand(),
8598            ],
8599        );
8600    }
8601}
8602
8603impl FmulEmitter<Vec, Vec, Vec> for Assembler<'_> {
8604    fn fmul(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8605        self.emit_n(
8606            InstId::Fmul_v,
8607            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8608        );
8609    }
8610}
8611
8612impl FmulxEmitter<Vec, Vec, Vec> for Assembler<'_> {
8613    fn fmulx(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8614        self.emit_n(
8615            InstId::Fmulx_v,
8616            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8617        );
8618    }
8619}
8620
8621impl FnegEmitter<Vec, Vec> for Assembler<'_> {
8622    fn fneg(&mut self, op0: Vec, op1: Vec) {
8623        self.emit_n(InstId::Fneg_v, &[op0.as_operand(), op1.as_operand()]);
8624    }
8625}
8626
8627impl FnmaddEmitter<Vec, Vec, Vec, Vec> for Assembler<'_> {
8628    fn fnmadd(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec) {
8629        self.emit_n(
8630            InstId::Fnmadd_v,
8631            &[
8632                op0.as_operand(),
8633                op1.as_operand(),
8634                op2.as_operand(),
8635                op3.as_operand(),
8636            ],
8637        );
8638    }
8639}
8640
8641impl FnmsubEmitter<Vec, Vec, Vec, Vec> for Assembler<'_> {
8642    fn fnmsub(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec) {
8643        self.emit_n(
8644            InstId::Fnmsub_v,
8645            &[
8646                op0.as_operand(),
8647                op1.as_operand(),
8648                op2.as_operand(),
8649                op3.as_operand(),
8650            ],
8651        );
8652    }
8653}
8654
8655impl FnmulEmitter<Vec, Vec, Vec> for Assembler<'_> {
8656    fn fnmul(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8657        self.emit_n(
8658            InstId::Fnmul_v,
8659            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8660        );
8661    }
8662}
8663
8664impl FrecpeEmitter<Vec, Vec> for Assembler<'_> {
8665    fn frecpe(&mut self, op0: Vec, op1: Vec) {
8666        self.emit_n(InstId::Frecpe_v, &[op0.as_operand(), op1.as_operand()]);
8667    }
8668}
8669
8670impl FrecpsEmitter<Vec, Vec, Vec> for Assembler<'_> {
8671    fn frecps(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8672        self.emit_n(
8673            InstId::Frecps_v,
8674            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8675        );
8676    }
8677}
8678
8679impl FrecpxEmitter<Vec, Vec> for Assembler<'_> {
8680    fn frecpx(&mut self, op0: Vec, op1: Vec) {
8681        self.emit_n(InstId::Frecpx_v, &[op0.as_operand(), op1.as_operand()]);
8682    }
8683}
8684
8685impl Frint32xEmitter<Vec, Vec> for Assembler<'_> {
8686    fn frint32x(&mut self, op0: Vec, op1: Vec) {
8687        self.emit_n(InstId::Frint32x_v, &[op0.as_operand(), op1.as_operand()]);
8688    }
8689}
8690
8691impl Frint32zEmitter<Vec, Vec> for Assembler<'_> {
8692    fn frint32z(&mut self, op0: Vec, op1: Vec) {
8693        self.emit_n(InstId::Frint32z_v, &[op0.as_operand(), op1.as_operand()]);
8694    }
8695}
8696
8697impl Frint64xEmitter<Vec, Vec> for Assembler<'_> {
8698    fn frint64x(&mut self, op0: Vec, op1: Vec) {
8699        self.emit_n(InstId::Frint64x_v, &[op0.as_operand(), op1.as_operand()]);
8700    }
8701}
8702
8703impl Frint64zEmitter<Vec, Vec> for Assembler<'_> {
8704    fn frint64z(&mut self, op0: Vec, op1: Vec) {
8705        self.emit_n(InstId::Frint64z_v, &[op0.as_operand(), op1.as_operand()]);
8706    }
8707}
8708
8709impl FrintaEmitter<Vec, Vec> for Assembler<'_> {
8710    fn frinta(&mut self, op0: Vec, op1: Vec) {
8711        self.emit_n(InstId::Frinta_v, &[op0.as_operand(), op1.as_operand()]);
8712    }
8713}
8714
8715impl FrintiEmitter<Vec, Vec> for Assembler<'_> {
8716    fn frinti(&mut self, op0: Vec, op1: Vec) {
8717        self.emit_n(InstId::Frinti_v, &[op0.as_operand(), op1.as_operand()]);
8718    }
8719}
8720
8721impl FrintmEmitter<Vec, Vec> for Assembler<'_> {
8722    fn frintm(&mut self, op0: Vec, op1: Vec) {
8723        self.emit_n(InstId::Frintm_v, &[op0.as_operand(), op1.as_operand()]);
8724    }
8725}
8726
8727impl FrintnEmitter<Vec, Vec> for Assembler<'_> {
8728    fn frintn(&mut self, op0: Vec, op1: Vec) {
8729        self.emit_n(InstId::Frintn_v, &[op0.as_operand(), op1.as_operand()]);
8730    }
8731}
8732
8733impl FrintpEmitter<Vec, Vec> for Assembler<'_> {
8734    fn frintp(&mut self, op0: Vec, op1: Vec) {
8735        self.emit_n(InstId::Frintp_v, &[op0.as_operand(), op1.as_operand()]);
8736    }
8737}
8738
8739impl FrintxEmitter<Vec, Vec> for Assembler<'_> {
8740    fn frintx(&mut self, op0: Vec, op1: Vec) {
8741        self.emit_n(InstId::Frintx_v, &[op0.as_operand(), op1.as_operand()]);
8742    }
8743}
8744
8745impl FrintzEmitter<Vec, Vec> for Assembler<'_> {
8746    fn frintz(&mut self, op0: Vec, op1: Vec) {
8747        self.emit_n(InstId::Frintz_v, &[op0.as_operand(), op1.as_operand()]);
8748    }
8749}
8750
8751impl FrsqrteEmitter<Vec, Vec> for Assembler<'_> {
8752    fn frsqrte(&mut self, op0: Vec, op1: Vec) {
8753        self.emit_n(InstId::Frsqrte_v, &[op0.as_operand(), op1.as_operand()]);
8754    }
8755}
8756
8757impl FrsqrtsEmitter<Vec, Vec, Vec> for Assembler<'_> {
8758    fn frsqrts(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8759        self.emit_n(
8760            InstId::Frsqrts_v,
8761            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8762        );
8763    }
8764}
8765
8766impl FsqrtEmitter<Vec, Vec> for Assembler<'_> {
8767    fn fsqrt(&mut self, op0: Vec, op1: Vec) {
8768        self.emit_n(InstId::Fsqrt_v, &[op0.as_operand(), op1.as_operand()]);
8769    }
8770}
8771
8772impl FsubEmitter<Vec, Vec, Vec> for Assembler<'_> {
8773    fn fsub(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8774        self.emit_n(
8775            InstId::Fsub_v,
8776            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8777        );
8778    }
8779}
8780
8781impl InsEmitter<Vec, Gp> for Assembler<'_> {
8782    fn ins(&mut self, op0: Vec, op1: Gp) {
8783        self.emit_n(InstId::Ins_v, &[op0.as_operand(), op1.as_operand()]);
8784    }
8785}
8786
8787impl InsEmitter<Vec, Vec> for Assembler<'_> {
8788    fn ins(&mut self, op0: Vec, op1: Vec) {
8789        self.emit_n(InstId::Ins_v, &[op0.as_operand(), op1.as_operand()]);
8790    }
8791}
8792
8793impl Ld1Emitter<Vec, Mem> for Assembler<'_> {
8794    fn ld1(&mut self, op0: Vec, op1: Mem) {
8795        self.emit_n(InstId::Ld1_v, &[op0.as_operand(), op1.as_operand()]);
8796    }
8797}
8798
8799impl Ld13Emitter<Vec, Vec, Mem> for Assembler<'_> {
8800    fn ld1_3(&mut self, op0: Vec, op1: Vec, op2: Mem) {
8801        self.emit_n(
8802            InstId::Ld1_v,
8803            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8804        );
8805    }
8806}
8807
8808impl Ld14Emitter<Vec, Vec, Vec, Mem> for Assembler<'_> {
8809    fn ld1_4(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Mem) {
8810        self.emit_n(
8811            InstId::Ld1_v,
8812            &[
8813                op0.as_operand(),
8814                op1.as_operand(),
8815                op2.as_operand(),
8816                op3.as_operand(),
8817            ],
8818        );
8819    }
8820}
8821
8822impl Ld15Emitter<Vec, Vec, Vec, Vec, Mem> for Assembler<'_> {
8823    fn ld1_5(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec, op4: Mem) {
8824        self.emit_n(
8825            InstId::Ld1_v,
8826            &[
8827                op0.as_operand(),
8828                op1.as_operand(),
8829                op2.as_operand(),
8830                op3.as_operand(),
8831                op4.as_operand(),
8832            ],
8833        );
8834    }
8835}
8836
8837impl Ld1rEmitter<Vec, Mem> for Assembler<'_> {
8838    fn ld1r(&mut self, op0: Vec, op1: Mem) {
8839        self.emit_n(InstId::Ld1r_v, &[op0.as_operand(), op1.as_operand()]);
8840    }
8841}
8842
8843impl Ld2Emitter<Vec, Vec, Mem> for Assembler<'_> {
8844    fn ld2(&mut self, op0: Vec, op1: Vec, op2: Mem) {
8845        self.emit_n(
8846            InstId::Ld2_v,
8847            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8848        );
8849    }
8850}
8851
8852impl Ld2rEmitter<Vec, Vec, Mem> for Assembler<'_> {
8853    fn ld2r(&mut self, op0: Vec, op1: Vec, op2: Mem) {
8854        self.emit_n(
8855            InstId::Ld2r_v,
8856            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8857        );
8858    }
8859}
8860
8861impl Ld3Emitter<Vec, Vec, Vec, Mem> for Assembler<'_> {
8862    fn ld3(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Mem) {
8863        self.emit_n(
8864            InstId::Ld3_v,
8865            &[
8866                op0.as_operand(),
8867                op1.as_operand(),
8868                op2.as_operand(),
8869                op3.as_operand(),
8870            ],
8871        );
8872    }
8873}
8874
8875impl Ld3rEmitter<Vec, Vec, Vec, Mem> for Assembler<'_> {
8876    fn ld3r(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Mem) {
8877        self.emit_n(
8878            InstId::Ld3r_v,
8879            &[
8880                op0.as_operand(),
8881                op1.as_operand(),
8882                op2.as_operand(),
8883                op3.as_operand(),
8884            ],
8885        );
8886    }
8887}
8888
8889impl Ld4Emitter<Vec, Vec, Vec, Vec, Mem> for Assembler<'_> {
8890    fn ld4(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec, op4: Mem) {
8891        self.emit_n(
8892            InstId::Ld4_v,
8893            &[
8894                op0.as_operand(),
8895                op1.as_operand(),
8896                op2.as_operand(),
8897                op3.as_operand(),
8898                op4.as_operand(),
8899            ],
8900        );
8901    }
8902}
8903
8904impl Ld4rEmitter<Vec, Vec, Vec, Vec, Mem> for Assembler<'_> {
8905    fn ld4r(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec, op4: Mem) {
8906        self.emit_n(
8907            InstId::Ld4r_v,
8908            &[
8909                op0.as_operand(),
8910                op1.as_operand(),
8911                op2.as_operand(),
8912                op3.as_operand(),
8913                op4.as_operand(),
8914            ],
8915        );
8916    }
8917}
8918
8919impl MlaEmitter<Vec, Vec, Vec> for Assembler<'_> {
8920    fn mla(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8921        self.emit_n(
8922            InstId::Mla_v,
8923            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8924        );
8925    }
8926}
8927
8928impl MlsEmitter<Vec, Vec, Vec> for Assembler<'_> {
8929    fn mls(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8930        self.emit_n(
8931            InstId::Mls_v,
8932            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8933        );
8934    }
8935}
8936
8937impl MoviEmitter<Vec, Imm> for Assembler<'_> {
8938    fn movi(&mut self, op0: Vec, op1: Imm) {
8939        self.emit_n(InstId::Movi_v, &[op0.as_operand(), op1.as_operand()]);
8940    }
8941}
8942
8943impl Movi3Emitter<Vec, Imm, Imm> for Assembler<'_> {
8944    fn movi_3(&mut self, op0: Vec, op1: Imm, op2: Imm) {
8945        self.emit_n(
8946            InstId::Movi_v,
8947            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8948        );
8949    }
8950}
8951
8952impl MvniEmitter<Vec, Imm> for Assembler<'_> {
8953    fn mvni(&mut self, op0: Vec, op1: Imm) {
8954        self.emit_n(InstId::Mvni_v, &[op0.as_operand(), op1.as_operand()]);
8955    }
8956}
8957
8958impl Mvni3Emitter<Vec, Imm, Imm> for Assembler<'_> {
8959    fn mvni_3(&mut self, op0: Vec, op1: Imm, op2: Imm) {
8960        self.emit_n(
8961            InstId::Mvni_v,
8962            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8963        );
8964    }
8965}
8966
8967impl NotEmitter<Vec, Vec> for Assembler<'_> {
8968    fn not_(&mut self, op0: Vec, op1: Vec) {
8969        self.emit_n(InstId::Not_v, &[op0.as_operand(), op1.as_operand()]);
8970    }
8971}
8972
8973impl Orr2Emitter<Vec, Imm> for Assembler<'_> {
8974    fn orr_2(&mut self, op0: Vec, op1: Imm) {
8975        self.emit_n(InstId::Orr_v, &[op0.as_operand(), op1.as_operand()]);
8976    }
8977}
8978
8979impl PmulEmitter<Vec, Vec, Vec> for Assembler<'_> {
8980    fn pmul(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8981        self.emit_n(
8982            InstId::Pmul_v,
8983            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8984        );
8985    }
8986}
8987
8988impl PmullEmitter<Vec, Vec, Vec> for Assembler<'_> {
8989    fn pmull(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8990        self.emit_n(
8991            InstId::Pmull_v,
8992            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
8993        );
8994    }
8995}
8996
8997impl Pmull2Emitter<Vec, Vec, Vec> for Assembler<'_> {
8998    fn pmull2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
8999        self.emit_n(
9000            InstId::Pmull2_v,
9001            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9002        );
9003    }
9004}
9005
9006impl RaddhnEmitter<Vec, Vec, Vec> for Assembler<'_> {
9007    fn raddhn(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9008        self.emit_n(
9009            InstId::Raddhn_v,
9010            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9011        );
9012    }
9013}
9014
9015impl Raddhn2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9016    fn raddhn2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9017        self.emit_n(
9018            InstId::Raddhn2_v,
9019            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9020        );
9021    }
9022}
9023
9024impl RshrnEmitter<Vec, Vec, Imm> for Assembler<'_> {
9025    fn rshrn(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9026        self.emit_n(
9027            InstId::Rshrn_v,
9028            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9029        );
9030    }
9031}
9032
9033impl Rshrn2Emitter<Vec, Vec, Imm> for Assembler<'_> {
9034    fn rshrn2(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9035        self.emit_n(
9036            InstId::Rshrn2_v,
9037            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9038        );
9039    }
9040}
9041
9042impl RsubhnEmitter<Vec, Vec, Vec> for Assembler<'_> {
9043    fn rsubhn(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9044        self.emit_n(
9045            InstId::Rsubhn_v,
9046            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9047        );
9048    }
9049}
9050
9051impl Rsubhn2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9052    fn rsubhn2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9053        self.emit_n(
9054            InstId::Rsubhn2_v,
9055            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9056        );
9057    }
9058}
9059
9060impl SabaEmitter<Vec, Vec, Vec> for Assembler<'_> {
9061    fn saba(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9062        self.emit_n(
9063            InstId::Saba_v,
9064            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9065        );
9066    }
9067}
9068
9069impl SabalEmitter<Vec, Vec, Vec> for Assembler<'_> {
9070    fn sabal(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9071        self.emit_n(
9072            InstId::Sabal_v,
9073            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9074        );
9075    }
9076}
9077
9078impl Sabal2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9079    fn sabal2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9080        self.emit_n(
9081            InstId::Sabal2_v,
9082            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9083        );
9084    }
9085}
9086
9087impl SabdEmitter<Vec, Vec, Vec> for Assembler<'_> {
9088    fn sabd(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9089        self.emit_n(
9090            InstId::Sabd_v,
9091            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9092        );
9093    }
9094}
9095
9096impl SabdlEmitter<Vec, Vec, Vec> for Assembler<'_> {
9097    fn sabdl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9098        self.emit_n(
9099            InstId::Sabdl_v,
9100            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9101        );
9102    }
9103}
9104
9105impl Sabdl2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9106    fn sabdl2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9107        self.emit_n(
9108            InstId::Sabdl2_v,
9109            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9110        );
9111    }
9112}
9113
9114impl SadalpEmitter<Vec, Vec> for Assembler<'_> {
9115    fn sadalp(&mut self, op0: Vec, op1: Vec) {
9116        self.emit_n(InstId::Sadalp_v, &[op0.as_operand(), op1.as_operand()]);
9117    }
9118}
9119
9120impl SaddlEmitter<Vec, Vec, Vec> for Assembler<'_> {
9121    fn saddl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9122        self.emit_n(
9123            InstId::Saddl_v,
9124            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9125        );
9126    }
9127}
9128
9129impl Saddl2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9130    fn saddl2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9131        self.emit_n(
9132            InstId::Saddl2_v,
9133            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9134        );
9135    }
9136}
9137
9138impl SaddlpEmitter<Vec, Vec> for Assembler<'_> {
9139    fn saddlp(&mut self, op0: Vec, op1: Vec) {
9140        self.emit_n(InstId::Saddlp_v, &[op0.as_operand(), op1.as_operand()]);
9141    }
9142}
9143
9144impl SaddlvEmitter<Vec, Vec> for Assembler<'_> {
9145    fn saddlv(&mut self, op0: Vec, op1: Vec) {
9146        self.emit_n(InstId::Saddlv_v, &[op0.as_operand(), op1.as_operand()]);
9147    }
9148}
9149
9150impl SaddwEmitter<Vec, Vec, Vec> for Assembler<'_> {
9151    fn saddw(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9152        self.emit_n(
9153            InstId::Saddw_v,
9154            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9155        );
9156    }
9157}
9158
9159impl Saddw2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9160    fn saddw2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9161        self.emit_n(
9162            InstId::Saddw2_v,
9163            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9164        );
9165    }
9166}
9167
9168impl ScvtfEmitter<Vec, Gp> for Assembler<'_> {
9169    fn scvtf(&mut self, op0: Vec, op1: Gp) {
9170        self.emit_n(InstId::Scvtf_v, &[op0.as_operand(), op1.as_operand()]);
9171    }
9172}
9173
9174impl ScvtfEmitter<Vec, Vec> for Assembler<'_> {
9175    fn scvtf(&mut self, op0: Vec, op1: Vec) {
9176        self.emit_n(InstId::Scvtf_v, &[op0.as_operand(), op1.as_operand()]);
9177    }
9178}
9179
9180impl Scvtf3Emitter<Vec, Gp, Imm> for Assembler<'_> {
9181    fn scvtf_3(&mut self, op0: Vec, op1: Gp, op2: Imm) {
9182        self.emit_n(
9183            InstId::Scvtf_v,
9184            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9185        );
9186    }
9187}
9188
9189impl Scvtf3Emitter<Vec, Vec, Imm> for Assembler<'_> {
9190    fn scvtf_3(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9191        self.emit_n(
9192            InstId::Scvtf_v,
9193            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9194        );
9195    }
9196}
9197
9198impl ShaddEmitter<Vec, Vec, Vec> for Assembler<'_> {
9199    fn shadd(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9200        self.emit_n(
9201            InstId::Shadd_v,
9202            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9203        );
9204    }
9205}
9206
9207impl ShlEmitter<Vec, Vec, Imm> for Assembler<'_> {
9208    fn shl(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9209        self.emit_n(
9210            InstId::Shl_v,
9211            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9212        );
9213    }
9214}
9215
9216impl ShllEmitter<Vec, Vec, Imm> for Assembler<'_> {
9217    fn shll(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9218        self.emit_n(
9219            InstId::Shll_v,
9220            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9221        );
9222    }
9223}
9224
9225impl Shll2Emitter<Vec, Vec, Imm> for Assembler<'_> {
9226    fn shll2(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9227        self.emit_n(
9228            InstId::Shll2_v,
9229            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9230        );
9231    }
9232}
9233
9234impl ShrnEmitter<Vec, Vec, Imm> for Assembler<'_> {
9235    fn shrn(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9236        self.emit_n(
9237            InstId::Shrn_v,
9238            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9239        );
9240    }
9241}
9242
9243impl Shrn2Emitter<Vec, Vec, Imm> for Assembler<'_> {
9244    fn shrn2(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9245        self.emit_n(
9246            InstId::Shrn2_v,
9247            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9248        );
9249    }
9250}
9251
9252impl ShsubEmitter<Vec, Vec, Vec> for Assembler<'_> {
9253    fn shsub(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9254        self.emit_n(
9255            InstId::Shsub_v,
9256            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9257        );
9258    }
9259}
9260
9261impl SliEmitter<Vec, Vec, Imm> for Assembler<'_> {
9262    fn sli(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9263        self.emit_n(
9264            InstId::Sli_v,
9265            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9266        );
9267    }
9268}
9269
9270impl SmaxpEmitter<Vec, Vec, Vec> for Assembler<'_> {
9271    fn smaxp(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9272        self.emit_n(
9273            InstId::Smaxp_v,
9274            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9275        );
9276    }
9277}
9278
9279impl SmaxvEmitter<Vec, Vec> for Assembler<'_> {
9280    fn smaxv(&mut self, op0: Vec, op1: Vec) {
9281        self.emit_n(InstId::Smaxv_v, &[op0.as_operand(), op1.as_operand()]);
9282    }
9283}
9284
9285impl SminpEmitter<Vec, Vec, Vec> for Assembler<'_> {
9286    fn sminp(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9287        self.emit_n(
9288            InstId::Sminp_v,
9289            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9290        );
9291    }
9292}
9293
9294impl SminvEmitter<Vec, Vec> for Assembler<'_> {
9295    fn sminv(&mut self, op0: Vec, op1: Vec) {
9296        self.emit_n(InstId::Sminv_v, &[op0.as_operand(), op1.as_operand()]);
9297    }
9298}
9299
9300impl SmlalEmitter<Vec, Vec, Vec> for Assembler<'_> {
9301    fn smlal(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9302        self.emit_n(
9303            InstId::Smlal_v,
9304            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9305        );
9306    }
9307}
9308
9309impl Smlal2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9310    fn smlal2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9311        self.emit_n(
9312            InstId::Smlal2_v,
9313            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9314        );
9315    }
9316}
9317
9318impl SmlslEmitter<Vec, Vec, Vec> for Assembler<'_> {
9319    fn smlsl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9320        self.emit_n(
9321            InstId::Smlsl_v,
9322            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9323        );
9324    }
9325}
9326
9327impl Smlsl2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9328    fn smlsl2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9329        self.emit_n(
9330            InstId::Smlsl2_v,
9331            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9332        );
9333    }
9334}
9335
9336impl SmovEmitter<Gp, Vec> for Assembler<'_> {
9337    fn smov(&mut self, op0: Gp, op1: Vec) {
9338        self.emit_n(InstId::Smov_v, &[op0.as_operand(), op1.as_operand()]);
9339    }
9340}
9341
9342impl Smull2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9343    fn smull2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9344        self.emit_n(
9345            InstId::Smull2_v,
9346            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9347        );
9348    }
9349}
9350
9351impl SqabsEmitter<Vec, Vec> for Assembler<'_> {
9352    fn sqabs(&mut self, op0: Vec, op1: Vec) {
9353        self.emit_n(InstId::Sqabs_v, &[op0.as_operand(), op1.as_operand()]);
9354    }
9355}
9356
9357impl SqaddEmitter<Vec, Vec, Vec> for Assembler<'_> {
9358    fn sqadd(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9359        self.emit_n(
9360            InstId::Sqadd_v,
9361            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9362        );
9363    }
9364}
9365
9366impl SqdmlalEmitter<Vec, Vec, Vec> for Assembler<'_> {
9367    fn sqdmlal(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9368        self.emit_n(
9369            InstId::Sqdmlal_v,
9370            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9371        );
9372    }
9373}
9374
9375impl Sqdmlal2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9376    fn sqdmlal2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9377        self.emit_n(
9378            InstId::Sqdmlal2_v,
9379            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9380        );
9381    }
9382}
9383
9384impl SqdmlslEmitter<Vec, Vec, Vec> for Assembler<'_> {
9385    fn sqdmlsl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9386        self.emit_n(
9387            InstId::Sqdmlsl_v,
9388            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9389        );
9390    }
9391}
9392
9393impl Sqdmlsl2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9394    fn sqdmlsl2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9395        self.emit_n(
9396            InstId::Sqdmlsl2_v,
9397            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9398        );
9399    }
9400}
9401
9402impl SqdmulhEmitter<Vec, Vec, Vec> for Assembler<'_> {
9403    fn sqdmulh(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9404        self.emit_n(
9405            InstId::Sqdmulh_v,
9406            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9407        );
9408    }
9409}
9410
9411impl SqdmullEmitter<Vec, Vec, Vec> for Assembler<'_> {
9412    fn sqdmull(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9413        self.emit_n(
9414            InstId::Sqdmull_v,
9415            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9416        );
9417    }
9418}
9419
9420impl Sqdmull2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9421    fn sqdmull2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9422        self.emit_n(
9423            InstId::Sqdmull2_v,
9424            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9425        );
9426    }
9427}
9428
9429impl SqnegEmitter<Vec, Vec> for Assembler<'_> {
9430    fn sqneg(&mut self, op0: Vec, op1: Vec) {
9431        self.emit_n(InstId::Sqneg_v, &[op0.as_operand(), op1.as_operand()]);
9432    }
9433}
9434
9435impl SqrdmulhEmitter<Vec, Vec, Vec> for Assembler<'_> {
9436    fn sqrdmulh(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9437        self.emit_n(
9438            InstId::Sqrdmulh_v,
9439            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9440        );
9441    }
9442}
9443
9444impl SqrshlEmitter<Vec, Vec, Vec> for Assembler<'_> {
9445    fn sqrshl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9446        self.emit_n(
9447            InstId::Sqrshl_v,
9448            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9449        );
9450    }
9451}
9452
9453impl SqrshrnEmitter<Vec, Vec, Imm> for Assembler<'_> {
9454    fn sqrshrn(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9455        self.emit_n(
9456            InstId::Sqrshrn_v,
9457            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9458        );
9459    }
9460}
9461
9462impl Sqrshrn2Emitter<Vec, Vec, Imm> for Assembler<'_> {
9463    fn sqrshrn2(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9464        self.emit_n(
9465            InstId::Sqrshrn2_v,
9466            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9467        );
9468    }
9469}
9470
9471impl SqrshrunEmitter<Vec, Vec, Imm> for Assembler<'_> {
9472    fn sqrshrun(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9473        self.emit_n(
9474            InstId::Sqrshrun_v,
9475            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9476        );
9477    }
9478}
9479
9480impl Sqrshrun2Emitter<Vec, Vec, Imm> for Assembler<'_> {
9481    fn sqrshrun2(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9482        self.emit_n(
9483            InstId::Sqrshrun2_v,
9484            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9485        );
9486    }
9487}
9488
9489impl SqshlEmitter<Vec, Vec, Vec> for Assembler<'_> {
9490    fn sqshl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9491        self.emit_n(
9492            InstId::Sqshl_v,
9493            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9494        );
9495    }
9496}
9497
9498impl SqshlEmitter<Vec, Vec, Imm> for Assembler<'_> {
9499    fn sqshl(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9500        self.emit_n(
9501            InstId::Sqshl_v,
9502            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9503        );
9504    }
9505}
9506
9507impl SqshluEmitter<Vec, Vec, Imm> for Assembler<'_> {
9508    fn sqshlu(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9509        self.emit_n(
9510            InstId::Sqshlu_v,
9511            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9512        );
9513    }
9514}
9515
9516impl SqshrnEmitter<Vec, Vec, Imm> for Assembler<'_> {
9517    fn sqshrn(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9518        self.emit_n(
9519            InstId::Sqshrn_v,
9520            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9521        );
9522    }
9523}
9524
9525impl Sqshrn2Emitter<Vec, Vec, Imm> for Assembler<'_> {
9526    fn sqshrn2(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9527        self.emit_n(
9528            InstId::Sqshrn2_v,
9529            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9530        );
9531    }
9532}
9533
9534impl SqshrunEmitter<Vec, Vec, Imm> for Assembler<'_> {
9535    fn sqshrun(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9536        self.emit_n(
9537            InstId::Sqshrun_v,
9538            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9539        );
9540    }
9541}
9542
9543impl Sqshrun2Emitter<Vec, Vec, Imm> for Assembler<'_> {
9544    fn sqshrun2(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9545        self.emit_n(
9546            InstId::Sqshrun2_v,
9547            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9548        );
9549    }
9550}
9551
9552impl SqsubEmitter<Vec, Vec, Vec> for Assembler<'_> {
9553    fn sqsub(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9554        self.emit_n(
9555            InstId::Sqsub_v,
9556            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9557        );
9558    }
9559}
9560
9561impl SqxtnEmitter<Vec, Vec> for Assembler<'_> {
9562    fn sqxtn(&mut self, op0: Vec, op1: Vec) {
9563        self.emit_n(InstId::Sqxtn_v, &[op0.as_operand(), op1.as_operand()]);
9564    }
9565}
9566
9567impl Sqxtn2Emitter<Vec, Vec> for Assembler<'_> {
9568    fn sqxtn2(&mut self, op0: Vec, op1: Vec) {
9569        self.emit_n(InstId::Sqxtn2_v, &[op0.as_operand(), op1.as_operand()]);
9570    }
9571}
9572
9573impl SqxtunEmitter<Vec, Vec> for Assembler<'_> {
9574    fn sqxtun(&mut self, op0: Vec, op1: Vec) {
9575        self.emit_n(InstId::Sqxtun_v, &[op0.as_operand(), op1.as_operand()]);
9576    }
9577}
9578
9579impl Sqxtun2Emitter<Vec, Vec> for Assembler<'_> {
9580    fn sqxtun2(&mut self, op0: Vec, op1: Vec) {
9581        self.emit_n(InstId::Sqxtun2_v, &[op0.as_operand(), op1.as_operand()]);
9582    }
9583}
9584
9585impl SrhaddEmitter<Vec, Vec, Vec> for Assembler<'_> {
9586    fn srhadd(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9587        self.emit_n(
9588            InstId::Srhadd_v,
9589            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9590        );
9591    }
9592}
9593
9594impl SriEmitter<Vec, Vec, Imm> for Assembler<'_> {
9595    fn sri(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9596        self.emit_n(
9597            InstId::Sri_v,
9598            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9599        );
9600    }
9601}
9602
9603impl SrshlEmitter<Vec, Vec, Vec> for Assembler<'_> {
9604    fn srshl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9605        self.emit_n(
9606            InstId::Srshl_v,
9607            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9608        );
9609    }
9610}
9611
9612impl SrshrEmitter<Vec, Vec, Imm> for Assembler<'_> {
9613    fn srshr(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9614        self.emit_n(
9615            InstId::Srshr_v,
9616            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9617        );
9618    }
9619}
9620
9621impl SrsraEmitter<Vec, Vec, Imm> for Assembler<'_> {
9622    fn srsra(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9623        self.emit_n(
9624            InstId::Srsra_v,
9625            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9626        );
9627    }
9628}
9629
9630impl SshlEmitter<Vec, Vec, Vec> for Assembler<'_> {
9631    fn sshl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9632        self.emit_n(
9633            InstId::Sshl_v,
9634            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9635        );
9636    }
9637}
9638
9639impl SshllEmitter<Vec, Vec, Imm> for Assembler<'_> {
9640    fn sshll(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9641        self.emit_n(
9642            InstId::Sshll_v,
9643            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9644        );
9645    }
9646}
9647
9648impl Sshll2Emitter<Vec, Vec, Imm> for Assembler<'_> {
9649    fn sshll2(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9650        self.emit_n(
9651            InstId::Sshll2_v,
9652            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9653        );
9654    }
9655}
9656
9657impl SshrEmitter<Vec, Vec, Imm> for Assembler<'_> {
9658    fn sshr(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9659        self.emit_n(
9660            InstId::Sshr_v,
9661            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9662        );
9663    }
9664}
9665
9666impl SsraEmitter<Vec, Vec, Imm> for Assembler<'_> {
9667    fn ssra(&mut self, op0: Vec, op1: Vec, op2: Imm) {
9668        self.emit_n(
9669            InstId::Ssra_v,
9670            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9671        );
9672    }
9673}
9674
9675impl SsublEmitter<Vec, Vec, Vec> for Assembler<'_> {
9676    fn ssubl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9677        self.emit_n(
9678            InstId::Ssubl_v,
9679            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9680        );
9681    }
9682}
9683
9684impl Ssubl2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9685    fn ssubl2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9686        self.emit_n(
9687            InstId::Ssubl2_v,
9688            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9689        );
9690    }
9691}
9692
9693impl SsubwEmitter<Vec, Vec, Vec> for Assembler<'_> {
9694    fn ssubw(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9695        self.emit_n(
9696            InstId::Ssubw_v,
9697            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9698        );
9699    }
9700}
9701
9702impl Ssubw2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9703    fn ssubw2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9704        self.emit_n(
9705            InstId::Ssubw2_v,
9706            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9707        );
9708    }
9709}
9710
9711impl St1Emitter<Vec, Mem> for Assembler<'_> {
9712    fn st1(&mut self, op0: Vec, op1: Mem) {
9713        self.emit_n(InstId::St1_v, &[op0.as_operand(), op1.as_operand()]);
9714    }
9715}
9716
9717impl St13Emitter<Vec, Vec, Mem> for Assembler<'_> {
9718    fn st1_3(&mut self, op0: Vec, op1: Vec, op2: Mem) {
9719        self.emit_n(
9720            InstId::St1_v,
9721            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9722        );
9723    }
9724}
9725
9726impl St14Emitter<Vec, Vec, Vec, Mem> for Assembler<'_> {
9727    fn st1_4(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Mem) {
9728        self.emit_n(
9729            InstId::St1_v,
9730            &[
9731                op0.as_operand(),
9732                op1.as_operand(),
9733                op2.as_operand(),
9734                op3.as_operand(),
9735            ],
9736        );
9737    }
9738}
9739
9740impl St15Emitter<Vec, Vec, Vec, Vec, Mem> for Assembler<'_> {
9741    fn st1_5(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec, op4: Mem) {
9742        self.emit_n(
9743            InstId::St1_v,
9744            &[
9745                op0.as_operand(),
9746                op1.as_operand(),
9747                op2.as_operand(),
9748                op3.as_operand(),
9749                op4.as_operand(),
9750            ],
9751        );
9752    }
9753}
9754
9755impl St2Emitter<Vec, Vec, Mem> for Assembler<'_> {
9756    fn st2(&mut self, op0: Vec, op1: Vec, op2: Mem) {
9757        self.emit_n(
9758            InstId::St2_v,
9759            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9760        );
9761    }
9762}
9763
9764impl St3Emitter<Vec, Vec, Vec, Mem> for Assembler<'_> {
9765    fn st3(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Mem) {
9766        self.emit_n(
9767            InstId::St3_v,
9768            &[
9769                op0.as_operand(),
9770                op1.as_operand(),
9771                op2.as_operand(),
9772                op3.as_operand(),
9773            ],
9774        );
9775    }
9776}
9777
9778impl St4Emitter<Vec, Vec, Vec, Vec, Mem> for Assembler<'_> {
9779    fn st4(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec, op4: Mem) {
9780        self.emit_n(
9781            InstId::St4_v,
9782            &[
9783                op0.as_operand(),
9784                op1.as_operand(),
9785                op2.as_operand(),
9786                op3.as_operand(),
9787                op4.as_operand(),
9788            ],
9789        );
9790    }
9791}
9792
9793impl SubhnEmitter<Vec, Vec, Vec> for Assembler<'_> {
9794    fn subhn(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9795        self.emit_n(
9796            InstId::Subhn_v,
9797            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9798        );
9799    }
9800}
9801
9802impl Subhn2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9803    fn subhn2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9804        self.emit_n(
9805            InstId::Subhn2_v,
9806            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9807        );
9808    }
9809}
9810
9811impl SuqaddEmitter<Vec, Vec> for Assembler<'_> {
9812    fn suqadd(&mut self, op0: Vec, op1: Vec) {
9813        self.emit_n(InstId::Suqadd_v, &[op0.as_operand(), op1.as_operand()]);
9814    }
9815}
9816
9817impl SxtlEmitter<Vec, Vec> for Assembler<'_> {
9818    fn sxtl(&mut self, op0: Vec, op1: Vec) {
9819        self.emit_n(InstId::Sxtl_v, &[op0.as_operand(), op1.as_operand()]);
9820    }
9821}
9822
9823impl Sxtl2Emitter<Vec, Vec> for Assembler<'_> {
9824    fn sxtl2(&mut self, op0: Vec, op1: Vec) {
9825        self.emit_n(InstId::Sxtl2_v, &[op0.as_operand(), op1.as_operand()]);
9826    }
9827}
9828
9829impl TblEmitter<Vec, Vec, Vec> for Assembler<'_> {
9830    fn tbl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9831        self.emit_n(
9832            InstId::Tbl_v,
9833            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9834        );
9835    }
9836}
9837
9838impl Tbl4Emitter<Vec, Vec, Vec, Vec> for Assembler<'_> {
9839    fn tbl_4(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec) {
9840        self.emit_n(
9841            InstId::Tbl_v,
9842            &[
9843                op0.as_operand(),
9844                op1.as_operand(),
9845                op2.as_operand(),
9846                op3.as_operand(),
9847            ],
9848        );
9849    }
9850}
9851
9852impl Tbl5Emitter<Vec, Vec, Vec, Vec, Vec> for Assembler<'_> {
9853    fn tbl_5(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec, op4: Vec) {
9854        self.emit_n(
9855            InstId::Tbl_v,
9856            &[
9857                op0.as_operand(),
9858                op1.as_operand(),
9859                op2.as_operand(),
9860                op3.as_operand(),
9861                op4.as_operand(),
9862            ],
9863        );
9864    }
9865}
9866
9867impl Tbl6Emitter<Vec, Vec, Vec, Vec, Vec, Vec> for Assembler<'_> {
9868    fn tbl_6(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec, op4: Vec, op5: Vec) {
9869        self.emit_n(
9870            InstId::Tbl_v,
9871            &[
9872                op0.as_operand(),
9873                op1.as_operand(),
9874                op2.as_operand(),
9875                op3.as_operand(),
9876                op4.as_operand(),
9877                op5.as_operand(),
9878            ],
9879        );
9880    }
9881}
9882
9883impl TbxEmitter<Vec, Vec, Vec> for Assembler<'_> {
9884    fn tbx(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9885        self.emit_n(
9886            InstId::Tbx_v,
9887            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9888        );
9889    }
9890}
9891
9892impl Tbx4Emitter<Vec, Vec, Vec, Vec> for Assembler<'_> {
9893    fn tbx_4(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec) {
9894        self.emit_n(
9895            InstId::Tbx_v,
9896            &[
9897                op0.as_operand(),
9898                op1.as_operand(),
9899                op2.as_operand(),
9900                op3.as_operand(),
9901            ],
9902        );
9903    }
9904}
9905
9906impl Tbx5Emitter<Vec, Vec, Vec, Vec, Vec> for Assembler<'_> {
9907    fn tbx_5(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec, op4: Vec) {
9908        self.emit_n(
9909            InstId::Tbx_v,
9910            &[
9911                op0.as_operand(),
9912                op1.as_operand(),
9913                op2.as_operand(),
9914                op3.as_operand(),
9915                op4.as_operand(),
9916            ],
9917        );
9918    }
9919}
9920
9921impl Tbx6Emitter<Vec, Vec, Vec, Vec, Vec, Vec> for Assembler<'_> {
9922    fn tbx_6(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec, op4: Vec, op5: Vec) {
9923        self.emit_n(
9924            InstId::Tbx_v,
9925            &[
9926                op0.as_operand(),
9927                op1.as_operand(),
9928                op2.as_operand(),
9929                op3.as_operand(),
9930                op4.as_operand(),
9931                op5.as_operand(),
9932            ],
9933        );
9934    }
9935}
9936
9937impl Trn1Emitter<Vec, Vec, Vec> for Assembler<'_> {
9938    fn trn1(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9939        self.emit_n(
9940            InstId::Trn1_v,
9941            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9942        );
9943    }
9944}
9945
9946impl Trn2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9947    fn trn2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9948        self.emit_n(
9949            InstId::Trn2_v,
9950            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9951        );
9952    }
9953}
9954
9955impl UabaEmitter<Vec, Vec, Vec> for Assembler<'_> {
9956    fn uaba(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9957        self.emit_n(
9958            InstId::Uaba_v,
9959            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9960        );
9961    }
9962}
9963
9964impl UabalEmitter<Vec, Vec, Vec> for Assembler<'_> {
9965    fn uabal(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9966        self.emit_n(
9967            InstId::Uabal_v,
9968            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9969        );
9970    }
9971}
9972
9973impl Uabal2Emitter<Vec, Vec, Vec> for Assembler<'_> {
9974    fn uabal2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9975        self.emit_n(
9976            InstId::Uabal2_v,
9977            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9978        );
9979    }
9980}
9981
9982impl UabdEmitter<Vec, Vec, Vec> for Assembler<'_> {
9983    fn uabd(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9984        self.emit_n(
9985            InstId::Uabd_v,
9986            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9987        );
9988    }
9989}
9990
9991impl UabdlEmitter<Vec, Vec, Vec> for Assembler<'_> {
9992    fn uabdl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
9993        self.emit_n(
9994            InstId::Uabdl_v,
9995            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
9996        );
9997    }
9998}
9999
10000impl Uabdl2Emitter<Vec, Vec, Vec> for Assembler<'_> {
10001    fn uabdl2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10002        self.emit_n(
10003            InstId::Uabdl2_v,
10004            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10005        );
10006    }
10007}
10008
10009impl UadalpEmitter<Vec, Vec> for Assembler<'_> {
10010    fn uadalp(&mut self, op0: Vec, op1: Vec) {
10011        self.emit_n(InstId::Uadalp_v, &[op0.as_operand(), op1.as_operand()]);
10012    }
10013}
10014
10015impl UaddlEmitter<Vec, Vec, Vec> for Assembler<'_> {
10016    fn uaddl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10017        self.emit_n(
10018            InstId::Uaddl_v,
10019            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10020        );
10021    }
10022}
10023
10024impl Uaddl2Emitter<Vec, Vec, Vec> for Assembler<'_> {
10025    fn uaddl2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10026        self.emit_n(
10027            InstId::Uaddl2_v,
10028            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10029        );
10030    }
10031}
10032
10033impl UaddlpEmitter<Vec, Vec> for Assembler<'_> {
10034    fn uaddlp(&mut self, op0: Vec, op1: Vec) {
10035        self.emit_n(InstId::Uaddlp_v, &[op0.as_operand(), op1.as_operand()]);
10036    }
10037}
10038
10039impl UaddlvEmitter<Vec, Vec> for Assembler<'_> {
10040    fn uaddlv(&mut self, op0: Vec, op1: Vec) {
10041        self.emit_n(InstId::Uaddlv_v, &[op0.as_operand(), op1.as_operand()]);
10042    }
10043}
10044
10045impl UaddwEmitter<Vec, Vec, Vec> for Assembler<'_> {
10046    fn uaddw(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10047        self.emit_n(
10048            InstId::Uaddw_v,
10049            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10050        );
10051    }
10052}
10053
10054impl Uaddw2Emitter<Vec, Vec, Vec> for Assembler<'_> {
10055    fn uaddw2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10056        self.emit_n(
10057            InstId::Uaddw2_v,
10058            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10059        );
10060    }
10061}
10062
10063impl UcvtfEmitter<Vec, Gp> for Assembler<'_> {
10064    fn ucvtf(&mut self, op0: Vec, op1: Gp) {
10065        self.emit_n(InstId::Ucvtf_v, &[op0.as_operand(), op1.as_operand()]);
10066    }
10067}
10068
10069impl UcvtfEmitter<Vec, Vec> for Assembler<'_> {
10070    fn ucvtf(&mut self, op0: Vec, op1: Vec) {
10071        self.emit_n(InstId::Ucvtf_v, &[op0.as_operand(), op1.as_operand()]);
10072    }
10073}
10074
10075impl Ucvtf3Emitter<Vec, Gp, Imm> for Assembler<'_> {
10076    fn ucvtf_3(&mut self, op0: Vec, op1: Gp, op2: Imm) {
10077        self.emit_n(
10078            InstId::Ucvtf_v,
10079            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10080        );
10081    }
10082}
10083
10084impl Ucvtf3Emitter<Vec, Vec, Imm> for Assembler<'_> {
10085    fn ucvtf_3(&mut self, op0: Vec, op1: Vec, op2: Imm) {
10086        self.emit_n(
10087            InstId::Ucvtf_v,
10088            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10089        );
10090    }
10091}
10092
10093impl UhaddEmitter<Vec, Vec, Vec> for Assembler<'_> {
10094    fn uhadd(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10095        self.emit_n(
10096            InstId::Uhadd_v,
10097            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10098        );
10099    }
10100}
10101
10102impl UhsubEmitter<Vec, Vec, Vec> for Assembler<'_> {
10103    fn uhsub(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10104        self.emit_n(
10105            InstId::Uhsub_v,
10106            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10107        );
10108    }
10109}
10110
10111impl UmaxpEmitter<Vec, Vec, Vec> for Assembler<'_> {
10112    fn umaxp(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10113        self.emit_n(
10114            InstId::Umaxp_v,
10115            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10116        );
10117    }
10118}
10119
10120impl UmaxvEmitter<Vec, Vec> for Assembler<'_> {
10121    fn umaxv(&mut self, op0: Vec, op1: Vec) {
10122        self.emit_n(InstId::Umaxv_v, &[op0.as_operand(), op1.as_operand()]);
10123    }
10124}
10125
10126impl UminpEmitter<Vec, Vec, Vec> for Assembler<'_> {
10127    fn uminp(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10128        self.emit_n(
10129            InstId::Uminp_v,
10130            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10131        );
10132    }
10133}
10134
10135impl UminvEmitter<Vec, Vec> for Assembler<'_> {
10136    fn uminv(&mut self, op0: Vec, op1: Vec) {
10137        self.emit_n(InstId::Uminv_v, &[op0.as_operand(), op1.as_operand()]);
10138    }
10139}
10140
10141impl UmlalEmitter<Vec, Vec, Vec> for Assembler<'_> {
10142    fn umlal(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10143        self.emit_n(
10144            InstId::Umlal_v,
10145            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10146        );
10147    }
10148}
10149
10150impl Umlal2Emitter<Vec, Vec, Vec> for Assembler<'_> {
10151    fn umlal2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10152        self.emit_n(
10153            InstId::Umlal2_v,
10154            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10155        );
10156    }
10157}
10158
10159impl UmlslEmitter<Vec, Vec, Vec> for Assembler<'_> {
10160    fn umlsl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10161        self.emit_n(
10162            InstId::Umlsl_v,
10163            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10164        );
10165    }
10166}
10167
10168impl Umlsl2Emitter<Vec, Vec, Vec> for Assembler<'_> {
10169    fn umlsl2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10170        self.emit_n(
10171            InstId::Umlsl2_v,
10172            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10173        );
10174    }
10175}
10176
10177impl UmovEmitter<Gp, Vec> for Assembler<'_> {
10178    fn umov(&mut self, op0: Gp, op1: Vec) {
10179        self.emit_n(InstId::Umov_v, &[op0.as_operand(), op1.as_operand()]);
10180    }
10181}
10182
10183impl Umull2Emitter<Vec, Vec, Vec> for Assembler<'_> {
10184    fn umull2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10185        self.emit_n(
10186            InstId::Umull2_v,
10187            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10188        );
10189    }
10190}
10191
10192impl UqaddEmitter<Vec, Vec, Vec> for Assembler<'_> {
10193    fn uqadd(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10194        self.emit_n(
10195            InstId::Uqadd_v,
10196            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10197        );
10198    }
10199}
10200
10201impl UqrshlEmitter<Vec, Vec, Vec> for Assembler<'_> {
10202    fn uqrshl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10203        self.emit_n(
10204            InstId::Uqrshl_v,
10205            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10206        );
10207    }
10208}
10209
10210impl UqrshlEmitter<Vec, Vec, Imm> for Assembler<'_> {
10211    fn uqrshl(&mut self, op0: Vec, op1: Vec, op2: Imm) {
10212        self.emit_n(
10213            InstId::Uqrshl_v,
10214            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10215        );
10216    }
10217}
10218
10219impl UqrshrnEmitter<Vec, Vec, Imm> for Assembler<'_> {
10220    fn uqrshrn(&mut self, op0: Vec, op1: Vec, op2: Imm) {
10221        self.emit_n(
10222            InstId::Uqrshrn_v,
10223            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10224        );
10225    }
10226}
10227
10228impl Uqrshrn2Emitter<Vec, Vec, Imm> for Assembler<'_> {
10229    fn uqrshrn2(&mut self, op0: Vec, op1: Vec, op2: Imm) {
10230        self.emit_n(
10231            InstId::Uqrshrn2_v,
10232            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10233        );
10234    }
10235}
10236
10237impl UqshlEmitter<Vec, Vec, Vec> for Assembler<'_> {
10238    fn uqshl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10239        self.emit_n(
10240            InstId::Uqshl_v,
10241            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10242        );
10243    }
10244}
10245
10246impl UqshlEmitter<Vec, Vec, Imm> for Assembler<'_> {
10247    fn uqshl(&mut self, op0: Vec, op1: Vec, op2: Imm) {
10248        self.emit_n(
10249            InstId::Uqshl_v,
10250            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10251        );
10252    }
10253}
10254
10255impl UqshrnEmitter<Vec, Vec, Imm> for Assembler<'_> {
10256    fn uqshrn(&mut self, op0: Vec, op1: Vec, op2: Imm) {
10257        self.emit_n(
10258            InstId::Uqshrn_v,
10259            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10260        );
10261    }
10262}
10263
10264impl Uqshrn2Emitter<Vec, Vec, Imm> for Assembler<'_> {
10265    fn uqshrn2(&mut self, op0: Vec, op1: Vec, op2: Imm) {
10266        self.emit_n(
10267            InstId::Uqshrn2_v,
10268            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10269        );
10270    }
10271}
10272
10273impl UqsubEmitter<Vec, Vec, Vec> for Assembler<'_> {
10274    fn uqsub(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10275        self.emit_n(
10276            InstId::Uqsub_v,
10277            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10278        );
10279    }
10280}
10281
10282impl UqxtnEmitter<Vec, Vec> for Assembler<'_> {
10283    fn uqxtn(&mut self, op0: Vec, op1: Vec) {
10284        self.emit_n(InstId::Uqxtn_v, &[op0.as_operand(), op1.as_operand()]);
10285    }
10286}
10287
10288impl Uqxtn2Emitter<Vec, Vec> for Assembler<'_> {
10289    fn uqxtn2(&mut self, op0: Vec, op1: Vec) {
10290        self.emit_n(InstId::Uqxtn2_v, &[op0.as_operand(), op1.as_operand()]);
10291    }
10292}
10293
10294impl UrecpeEmitter<Vec, Vec> for Assembler<'_> {
10295    fn urecpe(&mut self, op0: Vec, op1: Vec) {
10296        self.emit_n(InstId::Urecpe_v, &[op0.as_operand(), op1.as_operand()]);
10297    }
10298}
10299
10300impl UrhaddEmitter<Vec, Vec, Vec> for Assembler<'_> {
10301    fn urhadd(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10302        self.emit_n(
10303            InstId::Urhadd_v,
10304            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10305        );
10306    }
10307}
10308
10309impl UrshlEmitter<Vec, Vec, Vec> for Assembler<'_> {
10310    fn urshl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10311        self.emit_n(
10312            InstId::Urshl_v,
10313            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10314        );
10315    }
10316}
10317
10318impl UrshrEmitter<Vec, Vec, Imm> for Assembler<'_> {
10319    fn urshr(&mut self, op0: Vec, op1: Vec, op2: Imm) {
10320        self.emit_n(
10321            InstId::Urshr_v,
10322            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10323        );
10324    }
10325}
10326
10327impl UrsqrteEmitter<Vec, Vec> for Assembler<'_> {
10328    fn ursqrte(&mut self, op0: Vec, op1: Vec) {
10329        self.emit_n(InstId::Ursqrte_v, &[op0.as_operand(), op1.as_operand()]);
10330    }
10331}
10332
10333impl UrsraEmitter<Vec, Vec, Imm> for Assembler<'_> {
10334    fn ursra(&mut self, op0: Vec, op1: Vec, op2: Imm) {
10335        self.emit_n(
10336            InstId::Ursra_v,
10337            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10338        );
10339    }
10340}
10341
10342impl UshlEmitter<Vec, Vec, Vec> for Assembler<'_> {
10343    fn ushl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10344        self.emit_n(
10345            InstId::Ushl_v,
10346            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10347        );
10348    }
10349}
10350
10351impl UshllEmitter<Vec, Vec, Imm> for Assembler<'_> {
10352    fn ushll(&mut self, op0: Vec, op1: Vec, op2: Imm) {
10353        self.emit_n(
10354            InstId::Ushll_v,
10355            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10356        );
10357    }
10358}
10359
10360impl Ushll2Emitter<Vec, Vec, Imm> for Assembler<'_> {
10361    fn ushll2(&mut self, op0: Vec, op1: Vec, op2: Imm) {
10362        self.emit_n(
10363            InstId::Ushll2_v,
10364            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10365        );
10366    }
10367}
10368
10369impl UshrEmitter<Vec, Vec, Imm> for Assembler<'_> {
10370    fn ushr(&mut self, op0: Vec, op1: Vec, op2: Imm) {
10371        self.emit_n(
10372            InstId::Ushr_v,
10373            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10374        );
10375    }
10376}
10377
10378impl UsqaddEmitter<Vec, Vec> for Assembler<'_> {
10379    fn usqadd(&mut self, op0: Vec, op1: Vec) {
10380        self.emit_n(InstId::Usqadd_v, &[op0.as_operand(), op1.as_operand()]);
10381    }
10382}
10383
10384impl UsraEmitter<Vec, Vec, Imm> for Assembler<'_> {
10385    fn usra(&mut self, op0: Vec, op1: Vec, op2: Imm) {
10386        self.emit_n(
10387            InstId::Usra_v,
10388            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10389        );
10390    }
10391}
10392
10393impl UsublEmitter<Vec, Vec, Vec> for Assembler<'_> {
10394    fn usubl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10395        self.emit_n(
10396            InstId::Usubl_v,
10397            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10398        );
10399    }
10400}
10401
10402impl Usubl2Emitter<Vec, Vec, Vec> for Assembler<'_> {
10403    fn usubl2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10404        self.emit_n(
10405            InstId::Usubl2_v,
10406            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10407        );
10408    }
10409}
10410
10411impl UsubwEmitter<Vec, Vec, Vec> for Assembler<'_> {
10412    fn usubw(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10413        self.emit_n(
10414            InstId::Usubw_v,
10415            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10416        );
10417    }
10418}
10419
10420impl Usubw2Emitter<Vec, Vec, Vec> for Assembler<'_> {
10421    fn usubw2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10422        self.emit_n(
10423            InstId::Usubw2_v,
10424            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10425        );
10426    }
10427}
10428
10429impl UxtlEmitter<Vec, Vec> for Assembler<'_> {
10430    fn uxtl(&mut self, op0: Vec, op1: Vec) {
10431        self.emit_n(InstId::Uxtl_v, &[op0.as_operand(), op1.as_operand()]);
10432    }
10433}
10434
10435impl Uxtl2Emitter<Vec, Vec> for Assembler<'_> {
10436    fn uxtl2(&mut self, op0: Vec, op1: Vec) {
10437        self.emit_n(InstId::Uxtl2_v, &[op0.as_operand(), op1.as_operand()]);
10438    }
10439}
10440
10441impl Uzp1Emitter<Vec, Vec, Vec> for Assembler<'_> {
10442    fn uzp1(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10443        self.emit_n(
10444            InstId::Uzp1_v,
10445            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10446        );
10447    }
10448}
10449
10450impl Uzp2Emitter<Vec, Vec, Vec> for Assembler<'_> {
10451    fn uzp2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10452        self.emit_n(
10453            InstId::Uzp2_v,
10454            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10455        );
10456    }
10457}
10458
10459impl XtnEmitter<Vec, Vec> for Assembler<'_> {
10460    fn xtn(&mut self, op0: Vec, op1: Vec) {
10461        self.emit_n(InstId::Xtn_v, &[op0.as_operand(), op1.as_operand()]);
10462    }
10463}
10464
10465impl Xtn2Emitter<Vec, Vec> for Assembler<'_> {
10466    fn xtn2(&mut self, op0: Vec, op1: Vec) {
10467        self.emit_n(InstId::Xtn2_v, &[op0.as_operand(), op1.as_operand()]);
10468    }
10469}
10470
10471impl Zip1Emitter<Vec, Vec, Vec> for Assembler<'_> {
10472    fn zip1(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10473        self.emit_n(
10474            InstId::Zip1_v,
10475            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10476        );
10477    }
10478}
10479
10480impl Zip2Emitter<Vec, Vec, Vec> for Assembler<'_> {
10481    fn zip2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10482        self.emit_n(
10483            InstId::Zip2_v,
10484            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10485        );
10486    }
10487}
10488
10489impl AesdEmitter<Vec, Vec> for Assembler<'_> {
10490    fn aesd(&mut self, op0: Vec, op1: Vec) {
10491        self.emit_n(InstId::Aesd_v, &[op0.as_operand(), op1.as_operand()]);
10492    }
10493}
10494
10495impl AeseEmitter<Vec, Vec> for Assembler<'_> {
10496    fn aese(&mut self, op0: Vec, op1: Vec) {
10497        self.emit_n(InstId::Aese_v, &[op0.as_operand(), op1.as_operand()]);
10498    }
10499}
10500
10501impl AesimcEmitter<Vec, Vec> for Assembler<'_> {
10502    fn aesimc(&mut self, op0: Vec, op1: Vec) {
10503        self.emit_n(InstId::Aesimc_v, &[op0.as_operand(), op1.as_operand()]);
10504    }
10505}
10506
10507impl AesmcEmitter<Vec, Vec> for Assembler<'_> {
10508    fn aesmc(&mut self, op0: Vec, op1: Vec) {
10509        self.emit_n(InstId::Aesmc_v, &[op0.as_operand(), op1.as_operand()]);
10510    }
10511}
10512
10513impl Sha1cEmitter<Vec, Vec, Vec> for Assembler<'_> {
10514    fn sha1c(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10515        self.emit_n(
10516            InstId::Sha1c_v,
10517            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10518        );
10519    }
10520}
10521
10522impl Sha1hEmitter<Vec, Vec> for Assembler<'_> {
10523    fn sha1h(&mut self, op0: Vec, op1: Vec) {
10524        self.emit_n(InstId::Sha1h_v, &[op0.as_operand(), op1.as_operand()]);
10525    }
10526}
10527
10528impl Sha1mEmitter<Vec, Vec, Vec> for Assembler<'_> {
10529    fn sha1m(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10530        self.emit_n(
10531            InstId::Sha1m_v,
10532            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10533        );
10534    }
10535}
10536
10537impl Sha1pEmitter<Vec, Vec, Vec> for Assembler<'_> {
10538    fn sha1p(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10539        self.emit_n(
10540            InstId::Sha1p_v,
10541            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10542        );
10543    }
10544}
10545
10546impl Sha1su0Emitter<Vec, Vec, Vec> for Assembler<'_> {
10547    fn sha1su0(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10548        self.emit_n(
10549            InstId::Sha1su0_v,
10550            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10551        );
10552    }
10553}
10554
10555impl Sha1su1Emitter<Vec, Vec> for Assembler<'_> {
10556    fn sha1su1(&mut self, op0: Vec, op1: Vec) {
10557        self.emit_n(InstId::Sha1su1_v, &[op0.as_operand(), op1.as_operand()]);
10558    }
10559}
10560
10561impl Sha256hEmitter<Vec, Vec, Vec> for Assembler<'_> {
10562    fn sha256h(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10563        self.emit_n(
10564            InstId::Sha256h_v,
10565            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10566        );
10567    }
10568}
10569
10570impl Sha256h2Emitter<Vec, Vec, Vec> for Assembler<'_> {
10571    fn sha256h2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10572        self.emit_n(
10573            InstId::Sha256h2_v,
10574            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10575        );
10576    }
10577}
10578
10579impl Sha256su0Emitter<Vec, Vec> for Assembler<'_> {
10580    fn sha256su0(&mut self, op0: Vec, op1: Vec) {
10581        self.emit_n(InstId::Sha256su0_v, &[op0.as_operand(), op1.as_operand()]);
10582    }
10583}
10584
10585impl Sha256su1Emitter<Vec, Vec, Vec> for Assembler<'_> {
10586    fn sha256su1(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10587        self.emit_n(
10588            InstId::Sha256su1_v,
10589            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10590        );
10591    }
10592}
10593
10594impl SqrdmlahEmitter<Vec, Vec, Vec> for Assembler<'_> {
10595    fn sqrdmlah(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10596        self.emit_n(
10597            InstId::Sqrdmlah_v,
10598            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10599        );
10600    }
10601}
10602
10603impl SqrdmlshEmitter<Vec, Vec, Vec> for Assembler<'_> {
10604    fn sqrdmlsh(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10605        self.emit_n(
10606            InstId::Sqrdmlsh_v,
10607            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10608        );
10609    }
10610}
10611
10612impl FcaddEmitter<Vec, Vec, Vec, Imm> for Assembler<'_> {
10613    fn fcadd(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Imm) {
10614        self.emit_n(
10615            InstId::Fcadd_v,
10616            &[
10617                op0.as_operand(),
10618                op1.as_operand(),
10619                op2.as_operand(),
10620                op3.as_operand(),
10621            ],
10622        );
10623    }
10624}
10625
10626impl FcmlaEmitter<Vec, Vec, Vec, Imm> for Assembler<'_> {
10627    fn fcmla(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Imm) {
10628        self.emit_n(
10629            InstId::Fcmla_v,
10630            &[
10631                op0.as_operand(),
10632                op1.as_operand(),
10633                op2.as_operand(),
10634                op3.as_operand(),
10635            ],
10636        );
10637    }
10638}
10639
10640impl FjcvtzsEmitter<Gp, Vec> for Assembler<'_> {
10641    fn fjcvtzs(&mut self, op0: Gp, op1: Vec) {
10642        self.emit_n(InstId::Fjcvtzs_v, &[op0.as_operand(), op1.as_operand()]);
10643    }
10644}
10645
10646impl FmlalEmitter<Vec, Vec, Vec> for Assembler<'_> {
10647    fn fmlal(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10648        self.emit_n(
10649            InstId::Fmlal_v,
10650            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10651        );
10652    }
10653}
10654
10655impl Fmlal2Emitter<Vec, Vec, Vec> for Assembler<'_> {
10656    fn fmlal2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10657        self.emit_n(
10658            InstId::Fmlal2_v,
10659            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10660        );
10661    }
10662}
10663
10664impl FmlslEmitter<Vec, Vec, Vec> for Assembler<'_> {
10665    fn fmlsl(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10666        self.emit_n(
10667            InstId::Fmlsl_v,
10668            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10669        );
10670    }
10671}
10672
10673impl Fmlsl2Emitter<Vec, Vec, Vec> for Assembler<'_> {
10674    fn fmlsl2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10675        self.emit_n(
10676            InstId::Fmlsl2_v,
10677            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10678        );
10679    }
10680}
10681
10682impl BcaxEmitter<Vec, Vec, Vec, Vec> for Assembler<'_> {
10683    fn bcax(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec) {
10684        self.emit_n(
10685            InstId::Bcax_v,
10686            &[
10687                op0.as_operand(),
10688                op1.as_operand(),
10689                op2.as_operand(),
10690                op3.as_operand(),
10691            ],
10692        );
10693    }
10694}
10695
10696impl Eor3Emitter<Vec, Vec, Vec, Vec> for Assembler<'_> {
10697    fn eor3(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec) {
10698        self.emit_n(
10699            InstId::Eor3_v,
10700            &[
10701                op0.as_operand(),
10702                op1.as_operand(),
10703                op2.as_operand(),
10704                op3.as_operand(),
10705            ],
10706        );
10707    }
10708}
10709
10710impl Rax1Emitter<Vec, Vec, Vec> for Assembler<'_> {
10711    fn rax1(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10712        self.emit_n(
10713            InstId::Rax1_v,
10714            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10715        );
10716    }
10717}
10718
10719impl XarEmitter<Vec, Vec, Vec, Imm> for Assembler<'_> {
10720    fn xar(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Imm) {
10721        self.emit_n(
10722            InstId::Xar_v,
10723            &[
10724                op0.as_operand(),
10725                op1.as_operand(),
10726                op2.as_operand(),
10727                op3.as_operand(),
10728            ],
10729        );
10730    }
10731}
10732
10733impl Sha512hEmitter<Vec, Vec, Vec> for Assembler<'_> {
10734    fn sha512h(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10735        self.emit_n(
10736            InstId::Sha512h_v,
10737            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10738        );
10739    }
10740}
10741
10742impl Sha512h2Emitter<Vec, Vec, Vec> for Assembler<'_> {
10743    fn sha512h2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10744        self.emit_n(
10745            InstId::Sha512h2_v,
10746            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10747        );
10748    }
10749}
10750
10751impl Sha512su0Emitter<Vec, Vec> for Assembler<'_> {
10752    fn sha512su0(&mut self, op0: Vec, op1: Vec) {
10753        self.emit_n(InstId::Sha512su0_v, &[op0.as_operand(), op1.as_operand()]);
10754    }
10755}
10756
10757impl Sha512su1Emitter<Vec, Vec, Vec> for Assembler<'_> {
10758    fn sha512su1(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10759        self.emit_n(
10760            InstId::Sha512su1_v,
10761            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10762        );
10763    }
10764}
10765
10766impl Sm3partw1Emitter<Vec, Vec, Vec> for Assembler<'_> {
10767    fn sm3partw1(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10768        self.emit_n(
10769            InstId::Sm3partw1_v,
10770            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10771        );
10772    }
10773}
10774
10775impl Sm3partw2Emitter<Vec, Vec, Vec> for Assembler<'_> {
10776    fn sm3partw2(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10777        self.emit_n(
10778            InstId::Sm3partw2_v,
10779            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10780        );
10781    }
10782}
10783
10784impl Sm3ss1Emitter<Vec, Vec, Vec, Vec> for Assembler<'_> {
10785    fn sm3ss1(&mut self, op0: Vec, op1: Vec, op2: Vec, op3: Vec) {
10786        self.emit_n(
10787            InstId::Sm3ss1_v,
10788            &[
10789                op0.as_operand(),
10790                op1.as_operand(),
10791                op2.as_operand(),
10792                op3.as_operand(),
10793            ],
10794        );
10795    }
10796}
10797
10798impl Sm3tt1aEmitter<Vec, Vec, Vec> for Assembler<'_> {
10799    fn sm3tt1a(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10800        self.emit_n(
10801            InstId::Sm3tt1a_v,
10802            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10803        );
10804    }
10805}
10806
10807impl Sm3tt1bEmitter<Vec, Vec, Vec> for Assembler<'_> {
10808    fn sm3tt1b(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10809        self.emit_n(
10810            InstId::Sm3tt1b_v,
10811            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10812        );
10813    }
10814}
10815
10816impl Sm3tt2aEmitter<Vec, Vec, Vec> for Assembler<'_> {
10817    fn sm3tt2a(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10818        self.emit_n(
10819            InstId::Sm3tt2a_v,
10820            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10821        );
10822    }
10823}
10824
10825impl Sm3tt2bEmitter<Vec, Vec, Vec> for Assembler<'_> {
10826    fn sm3tt2b(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10827        self.emit_n(
10828            InstId::Sm3tt2b_v,
10829            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10830        );
10831    }
10832}
10833
10834impl Sm4eEmitter<Vec, Vec> for Assembler<'_> {
10835    fn sm4e(&mut self, op0: Vec, op1: Vec) {
10836        self.emit_n(InstId::Sm4e_v, &[op0.as_operand(), op1.as_operand()]);
10837    }
10838}
10839
10840impl Sm4ekeyEmitter<Vec, Vec, Vec> for Assembler<'_> {
10841    fn sm4ekey(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10842        self.emit_n(
10843            InstId::Sm4ekey_v,
10844            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10845        );
10846    }
10847}
10848
10849impl SdotEmitter<Vec, Vec, Vec> for Assembler<'_> {
10850    fn sdot(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10851        self.emit_n(
10852            InstId::Sdot_v,
10853            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10854        );
10855    }
10856}
10857
10858impl UdotEmitter<Vec, Vec, Vec> for Assembler<'_> {
10859    fn udot(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10860        self.emit_n(
10861            InstId::Udot_v,
10862            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10863        );
10864    }
10865}
10866
10867impl BfcvtEmitter<Vec, Vec> for Assembler<'_> {
10868    fn bfcvt(&mut self, op0: Vec, op1: Vec) {
10869        self.emit_n(InstId::Bfcvt_v, &[op0.as_operand(), op1.as_operand()]);
10870    }
10871}
10872
10873impl BfcvtnEmitter<Vec, Vec> for Assembler<'_> {
10874    fn bfcvtn(&mut self, op0: Vec, op1: Vec) {
10875        self.emit_n(InstId::Bfcvtn_v, &[op0.as_operand(), op1.as_operand()]);
10876    }
10877}
10878
10879impl Bfcvtn2Emitter<Vec, Vec> for Assembler<'_> {
10880    fn bfcvtn2(&mut self, op0: Vec, op1: Vec) {
10881        self.emit_n(InstId::Bfcvtn2_v, &[op0.as_operand(), op1.as_operand()]);
10882    }
10883}
10884
10885impl BfmlalbEmitter<Vec, Vec, Vec> for Assembler<'_> {
10886    fn bfmlalb(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10887        self.emit_n(
10888            InstId::Bfmlalb_v,
10889            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10890        );
10891    }
10892}
10893
10894impl BfmlaltEmitter<Vec, Vec, Vec> for Assembler<'_> {
10895    fn bfmlalt(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10896        self.emit_n(
10897            InstId::Bfmlalt_v,
10898            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10899        );
10900    }
10901}
10902
10903impl BfmmlaEmitter<Vec, Vec, Vec> for Assembler<'_> {
10904    fn bfmmla(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10905        self.emit_n(
10906            InstId::Bfmmla_v,
10907            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10908        );
10909    }
10910}
10911
10912impl BfdotEmitter<Vec, Vec, Vec> for Assembler<'_> {
10913    fn bfdot(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10914        self.emit_n(
10915            InstId::Bfdot_v,
10916            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10917        );
10918    }
10919}
10920
10921impl SmmlaEmitter<Vec, Vec, Vec> for Assembler<'_> {
10922    fn smmla(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10923        self.emit_n(
10924            InstId::Smmla_v,
10925            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10926        );
10927    }
10928}
10929
10930impl SudotEmitter<Vec, Vec, Vec> for Assembler<'_> {
10931    fn sudot(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10932        self.emit_n(
10933            InstId::Sudot_v,
10934            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10935        );
10936    }
10937}
10938
10939impl UmmlaEmitter<Vec, Vec, Vec> for Assembler<'_> {
10940    fn ummla(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10941        self.emit_n(
10942            InstId::Ummla_v,
10943            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10944        );
10945    }
10946}
10947
10948impl UsdotEmitter<Vec, Vec, Vec> for Assembler<'_> {
10949    fn usdot(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10950        self.emit_n(
10951            InstId::Usdot_v,
10952            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10953        );
10954    }
10955}
10956
10957impl UsmmlaEmitter<Vec, Vec, Vec> for Assembler<'_> {
10958    fn usmmla(&mut self, op0: Vec, op1: Vec, op2: Vec) {
10959        self.emit_n(
10960            InstId::Usmmla_v,
10961            &[op0.as_operand(), op1.as_operand(), op2.as_operand()],
10962        );
10963    }
10964}
10965
10966impl Assembler<'_> {
10967    pub fn adc<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
10968    where
10969        Self: AdcEmitter<T0, T1, T2>,
10970    {
10971        <Self as AdcEmitter<T0, T1, T2>>::adc(self, op0, op1, op2);
10972    }
10973    pub fn adcs<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
10974    where
10975        Self: AdcsEmitter<T0, T1, T2>,
10976    {
10977        <Self as AdcsEmitter<T0, T1, T2>>::adcs(self, op0, op1, op2);
10978    }
10979    pub fn add<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
10980    where
10981        Self: AddEmitter<T0, T1, T2>,
10982    {
10983        <Self as AddEmitter<T0, T1, T2>>::add(self, op0, op1, op2);
10984    }
10985    pub fn add_4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
10986    where
10987        Self: Add4Emitter<T0, T1, T2, T3>,
10988    {
10989        <Self as Add4Emitter<T0, T1, T2, T3>>::add_4(self, op0, op1, op2, op3);
10990    }
10991    pub fn adds<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
10992    where
10993        Self: AddsEmitter<T0, T1, T2>,
10994    {
10995        <Self as AddsEmitter<T0, T1, T2>>::adds(self, op0, op1, op2);
10996    }
10997    pub fn adds_4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
10998    where
10999        Self: Adds4Emitter<T0, T1, T2, T3>,
11000    {
11001        <Self as Adds4Emitter<T0, T1, T2, T3>>::adds_4(self, op0, op1, op2, op3);
11002    }
11003    pub fn adr<T0, T1>(&mut self, op0: T0, op1: T1)
11004    where
11005        Self: AdrEmitter<T0, T1>,
11006    {
11007        <Self as AdrEmitter<T0, T1>>::adr(self, op0, op1);
11008    }
11009    pub fn adrp<T0, T1>(&mut self, op0: T0, op1: T1)
11010    where
11011        Self: AdrpEmitter<T0, T1>,
11012    {
11013        <Self as AdrpEmitter<T0, T1>>::adrp(self, op0, op1);
11014    }
11015    pub fn and_<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11016    where
11017        Self: AndEmitter<T0, T1, T2>,
11018    {
11019        <Self as AndEmitter<T0, T1, T2>>::and_(self, op0, op1, op2);
11020    }
11021    pub fn and__4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11022    where
11023        Self: And4Emitter<T0, T1, T2, T3>,
11024    {
11025        <Self as And4Emitter<T0, T1, T2, T3>>::and__4(self, op0, op1, op2, op3);
11026    }
11027    pub fn ands<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11028    where
11029        Self: AndsEmitter<T0, T1, T2>,
11030    {
11031        <Self as AndsEmitter<T0, T1, T2>>::ands(self, op0, op1, op2);
11032    }
11033    pub fn ands_4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11034    where
11035        Self: Ands4Emitter<T0, T1, T2, T3>,
11036    {
11037        <Self as Ands4Emitter<T0, T1, T2, T3>>::ands_4(self, op0, op1, op2, op3);
11038    }
11039    pub fn asr<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11040    where
11041        Self: AsrEmitter<T0, T1, T2>,
11042    {
11043        <Self as AsrEmitter<T0, T1, T2>>::asr(self, op0, op1, op2);
11044    }
11045    pub fn asrv<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11046    where
11047        Self: AsrvEmitter<T0, T1, T2>,
11048    {
11049        <Self as AsrvEmitter<T0, T1, T2>>::asrv(self, op0, op1, op2);
11050    }
11051    pub fn at<T0, T1>(&mut self, op0: T0, op1: T1)
11052    where
11053        Self: AtEmitter<T0, T1>,
11054    {
11055        <Self as AtEmitter<T0, T1>>::at(self, op0, op1);
11056    }
11057    pub fn bfc<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11058    where
11059        Self: BfcEmitter<T0, T1, T2>,
11060    {
11061        <Self as BfcEmitter<T0, T1, T2>>::bfc(self, op0, op1, op2);
11062    }
11063    pub fn bfi<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11064    where
11065        Self: BfiEmitter<T0, T1, T2, T3>,
11066    {
11067        <Self as BfiEmitter<T0, T1, T2, T3>>::bfi(self, op0, op1, op2, op3);
11068    }
11069    pub fn bfm<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11070    where
11071        Self: BfmEmitter<T0, T1, T2, T3>,
11072    {
11073        <Self as BfmEmitter<T0, T1, T2, T3>>::bfm(self, op0, op1, op2, op3);
11074    }
11075    pub fn bfxil<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11076    where
11077        Self: BfxilEmitter<T0, T1, T2, T3>,
11078    {
11079        <Self as BfxilEmitter<T0, T1, T2, T3>>::bfxil(self, op0, op1, op2, op3);
11080    }
11081    pub fn bic<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11082    where
11083        Self: BicEmitter<T0, T1, T2>,
11084    {
11085        <Self as BicEmitter<T0, T1, T2>>::bic(self, op0, op1, op2);
11086    }
11087    pub fn bic_4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11088    where
11089        Self: Bic4Emitter<T0, T1, T2, T3>,
11090    {
11091        <Self as Bic4Emitter<T0, T1, T2, T3>>::bic_4(self, op0, op1, op2, op3);
11092    }
11093    pub fn bics<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11094    where
11095        Self: BicsEmitter<T0, T1, T2>,
11096    {
11097        <Self as BicsEmitter<T0, T1, T2>>::bics(self, op0, op1, op2);
11098    }
11099    pub fn bics_4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11100    where
11101        Self: Bics4Emitter<T0, T1, T2, T3>,
11102    {
11103        <Self as Bics4Emitter<T0, T1, T2, T3>>::bics_4(self, op0, op1, op2, op3);
11104    }
11105    pub fn brk<T0>(&mut self, op0: T0)
11106    where
11107        Self: BrkEmitter<T0>,
11108    {
11109        <Self as BrkEmitter<T0>>::brk(self, op0);
11110    }
11111    pub fn ccmn<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11112    where
11113        Self: CcmnEmitter<T0, T1, T2, T3>,
11114    {
11115        <Self as CcmnEmitter<T0, T1, T2, T3>>::ccmn(self, op0, op1, op2, op3);
11116    }
11117    pub fn ccmp<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11118    where
11119        Self: CcmpEmitter<T0, T1, T2, T3>,
11120    {
11121        <Self as CcmpEmitter<T0, T1, T2, T3>>::ccmp(self, op0, op1, op2, op3);
11122    }
11123    pub fn cinc<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11124    where
11125        Self: CincEmitter<T0, T1, T2>,
11126    {
11127        <Self as CincEmitter<T0, T1, T2>>::cinc(self, op0, op1, op2);
11128    }
11129    pub fn cinv<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11130    where
11131        Self: CinvEmitter<T0, T1, T2>,
11132    {
11133        <Self as CinvEmitter<T0, T1, T2>>::cinv(self, op0, op1, op2);
11134    }
11135    pub fn clrex<T0>(&mut self, op0: T0)
11136    where
11137        Self: ClrexEmitter<T0>,
11138    {
11139        <Self as ClrexEmitter<T0>>::clrex(self, op0);
11140    }
11141    pub fn cls<T0, T1>(&mut self, op0: T0, op1: T1)
11142    where
11143        Self: ClsEmitter<T0, T1>,
11144    {
11145        <Self as ClsEmitter<T0, T1>>::cls(self, op0, op1);
11146    }
11147    pub fn clz<T0, T1>(&mut self, op0: T0, op1: T1)
11148    where
11149        Self: ClzEmitter<T0, T1>,
11150    {
11151        <Self as ClzEmitter<T0, T1>>::clz(self, op0, op1);
11152    }
11153    pub fn cmn<T0, T1>(&mut self, op0: T0, op1: T1)
11154    where
11155        Self: CmnEmitter<T0, T1>,
11156    {
11157        <Self as CmnEmitter<T0, T1>>::cmn(self, op0, op1);
11158    }
11159    pub fn cmn_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11160    where
11161        Self: Cmn3Emitter<T0, T1, T2>,
11162    {
11163        <Self as Cmn3Emitter<T0, T1, T2>>::cmn_3(self, op0, op1, op2);
11164    }
11165    pub fn cmp<T0, T1>(&mut self, op0: T0, op1: T1)
11166    where
11167        Self: CmpEmitter<T0, T1>,
11168    {
11169        <Self as CmpEmitter<T0, T1>>::cmp(self, op0, op1);
11170    }
11171    pub fn cmp_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11172    where
11173        Self: Cmp3Emitter<T0, T1, T2>,
11174    {
11175        <Self as Cmp3Emitter<T0, T1, T2>>::cmp_3(self, op0, op1, op2);
11176    }
11177    pub fn cneg<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11178    where
11179        Self: CnegEmitter<T0, T1, T2>,
11180    {
11181        <Self as CnegEmitter<T0, T1, T2>>::cneg(self, op0, op1, op2);
11182    }
11183    pub fn csel<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11184    where
11185        Self: CselEmitter<T0, T1, T2, T3>,
11186    {
11187        <Self as CselEmitter<T0, T1, T2, T3>>::csel(self, op0, op1, op2, op3);
11188    }
11189    pub fn cset<T0, T1>(&mut self, op0: T0, op1: T1)
11190    where
11191        Self: CsetEmitter<T0, T1>,
11192    {
11193        <Self as CsetEmitter<T0, T1>>::cset(self, op0, op1);
11194    }
11195    pub fn csetm<T0, T1>(&mut self, op0: T0, op1: T1)
11196    where
11197        Self: CsetmEmitter<T0, T1>,
11198    {
11199        <Self as CsetmEmitter<T0, T1>>::csetm(self, op0, op1);
11200    }
11201    pub fn csinc<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11202    where
11203        Self: CsincEmitter<T0, T1, T2, T3>,
11204    {
11205        <Self as CsincEmitter<T0, T1, T2, T3>>::csinc(self, op0, op1, op2, op3);
11206    }
11207    pub fn csinv<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11208    where
11209        Self: CsinvEmitter<T0, T1, T2, T3>,
11210    {
11211        <Self as CsinvEmitter<T0, T1, T2, T3>>::csinv(self, op0, op1, op2, op3);
11212    }
11213    pub fn csneg<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11214    where
11215        Self: CsnegEmitter<T0, T1, T2, T3>,
11216    {
11217        <Self as CsnegEmitter<T0, T1, T2, T3>>::csneg(self, op0, op1, op2, op3);
11218    }
11219    pub fn dc<T0, T1>(&mut self, op0: T0, op1: T1)
11220    where
11221        Self: DcEmitter<T0, T1>,
11222    {
11223        <Self as DcEmitter<T0, T1>>::dc(self, op0, op1);
11224    }
11225    pub fn dmb<T0>(&mut self, op0: T0)
11226    where
11227        Self: DmbEmitter<T0>,
11228    {
11229        <Self as DmbEmitter<T0>>::dmb(self, op0);
11230    }
11231    pub fn dsb<T0>(&mut self, op0: T0)
11232    where
11233        Self: DsbEmitter<T0>,
11234    {
11235        <Self as DsbEmitter<T0>>::dsb(self, op0);
11236    }
11237    pub fn drps(&mut self)
11238    where
11239        Self: DrpsEmitter,
11240    {
11241        <Self as DrpsEmitter>::drps(self);
11242    }
11243    pub fn eon<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11244    where
11245        Self: EonEmitter<T0, T1, T2>,
11246    {
11247        <Self as EonEmitter<T0, T1, T2>>::eon(self, op0, op1, op2);
11248    }
11249    pub fn eon_4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11250    where
11251        Self: Eon4Emitter<T0, T1, T2, T3>,
11252    {
11253        <Self as Eon4Emitter<T0, T1, T2, T3>>::eon_4(self, op0, op1, op2, op3);
11254    }
11255    pub fn eor<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11256    where
11257        Self: EorEmitter<T0, T1, T2>,
11258    {
11259        <Self as EorEmitter<T0, T1, T2>>::eor(self, op0, op1, op2);
11260    }
11261    pub fn eor_4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11262    where
11263        Self: Eor4Emitter<T0, T1, T2, T3>,
11264    {
11265        <Self as Eor4Emitter<T0, T1, T2, T3>>::eor_4(self, op0, op1, op2, op3);
11266    }
11267    pub fn eret(&mut self)
11268    where
11269        Self: EretEmitter,
11270    {
11271        <Self as EretEmitter>::eret(self);
11272    }
11273    pub fn esb(&mut self)
11274    where
11275        Self: EsbEmitter,
11276    {
11277        <Self as EsbEmitter>::esb(self);
11278    }
11279    pub fn extr<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11280    where
11281        Self: ExtrEmitter<T0, T1, T2, T3>,
11282    {
11283        <Self as ExtrEmitter<T0, T1, T2, T3>>::extr(self, op0, op1, op2, op3);
11284    }
11285    pub fn hlt<T0>(&mut self, op0: T0)
11286    where
11287        Self: HltEmitter<T0>,
11288    {
11289        <Self as HltEmitter<T0>>::hlt(self, op0);
11290    }
11291    pub fn hvc<T0>(&mut self, op0: T0)
11292    where
11293        Self: HvcEmitter<T0>,
11294    {
11295        <Self as HvcEmitter<T0>>::hvc(self, op0);
11296    }
11297    pub fn ic<T0, T1>(&mut self, op0: T0, op1: T1)
11298    where
11299        Self: IcEmitter<T0, T1>,
11300    {
11301        <Self as IcEmitter<T0, T1>>::ic(self, op0, op1);
11302    }
11303    pub fn isb<T0>(&mut self, op0: T0)
11304    where
11305        Self: IsbEmitter<T0>,
11306    {
11307        <Self as IsbEmitter<T0>>::isb(self, op0);
11308    }
11309    pub fn lsl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11310    where
11311        Self: LslEmitter<T0, T1, T2>,
11312    {
11313        <Self as LslEmitter<T0, T1, T2>>::lsl(self, op0, op1, op2);
11314    }
11315    pub fn lslv<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11316    where
11317        Self: LslvEmitter<T0, T1, T2>,
11318    {
11319        <Self as LslvEmitter<T0, T1, T2>>::lslv(self, op0, op1, op2);
11320    }
11321    pub fn lsr<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11322    where
11323        Self: LsrEmitter<T0, T1, T2>,
11324    {
11325        <Self as LsrEmitter<T0, T1, T2>>::lsr(self, op0, op1, op2);
11326    }
11327    pub fn lsrv<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11328    where
11329        Self: LsrvEmitter<T0, T1, T2>,
11330    {
11331        <Self as LsrvEmitter<T0, T1, T2>>::lsrv(self, op0, op1, op2);
11332    }
11333    pub fn madd<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11334    where
11335        Self: MaddEmitter<T0, T1, T2, T3>,
11336    {
11337        <Self as MaddEmitter<T0, T1, T2, T3>>::madd(self, op0, op1, op2, op3);
11338    }
11339    pub fn mneg<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11340    where
11341        Self: MnegEmitter<T0, T1, T2>,
11342    {
11343        <Self as MnegEmitter<T0, T1, T2>>::mneg(self, op0, op1, op2);
11344    }
11345    pub fn mov<T0, T1>(&mut self, op0: T0, op1: T1)
11346    where
11347        Self: MovEmitter<T0, T1>,
11348    {
11349        <Self as MovEmitter<T0, T1>>::mov(self, op0, op1);
11350    }
11351    pub fn movk<T0, T1>(&mut self, op0: T0, op1: T1)
11352    where
11353        Self: MovkEmitter<T0, T1>,
11354    {
11355        <Self as MovkEmitter<T0, T1>>::movk(self, op0, op1);
11356    }
11357    pub fn movk_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11358    where
11359        Self: Movk3Emitter<T0, T1, T2>,
11360    {
11361        <Self as Movk3Emitter<T0, T1, T2>>::movk_3(self, op0, op1, op2);
11362    }
11363    pub fn movn<T0, T1>(&mut self, op0: T0, op1: T1)
11364    where
11365        Self: MovnEmitter<T0, T1>,
11366    {
11367        <Self as MovnEmitter<T0, T1>>::movn(self, op0, op1);
11368    }
11369    pub fn movn_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11370    where
11371        Self: Movn3Emitter<T0, T1, T2>,
11372    {
11373        <Self as Movn3Emitter<T0, T1, T2>>::movn_3(self, op0, op1, op2);
11374    }
11375    pub fn movz<T0, T1>(&mut self, op0: T0, op1: T1)
11376    where
11377        Self: MovzEmitter<T0, T1>,
11378    {
11379        <Self as MovzEmitter<T0, T1>>::movz(self, op0, op1);
11380    }
11381    pub fn movz_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11382    where
11383        Self: Movz3Emitter<T0, T1, T2>,
11384    {
11385        <Self as Movz3Emitter<T0, T1, T2>>::movz_3(self, op0, op1, op2);
11386    }
11387    pub fn mrs<T0, T1>(&mut self, op0: T0, op1: T1)
11388    where
11389        Self: MrsEmitter<T0, T1>,
11390    {
11391        <Self as MrsEmitter<T0, T1>>::mrs(self, op0, op1);
11392    }
11393    pub fn msr<T0, T1>(&mut self, op0: T0, op1: T1)
11394    where
11395        Self: MsrEmitter<T0, T1>,
11396    {
11397        <Self as MsrEmitter<T0, T1>>::msr(self, op0, op1);
11398    }
11399    pub fn msub<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11400    where
11401        Self: MsubEmitter<T0, T1, T2, T3>,
11402    {
11403        <Self as MsubEmitter<T0, T1, T2, T3>>::msub(self, op0, op1, op2, op3);
11404    }
11405    pub fn mul<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11406    where
11407        Self: MulEmitter<T0, T1, T2>,
11408    {
11409        <Self as MulEmitter<T0, T1, T2>>::mul(self, op0, op1, op2);
11410    }
11411    pub fn mvn<T0, T1>(&mut self, op0: T0, op1: T1)
11412    where
11413        Self: MvnEmitter<T0, T1>,
11414    {
11415        <Self as MvnEmitter<T0, T1>>::mvn(self, op0, op1);
11416    }
11417    pub fn mvn_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11418    where
11419        Self: Mvn3Emitter<T0, T1, T2>,
11420    {
11421        <Self as Mvn3Emitter<T0, T1, T2>>::mvn_3(self, op0, op1, op2);
11422    }
11423    pub fn mvn_<T0, T1>(&mut self, op0: T0, op1: T1)
11424    where
11425        Self: Mvn_Emitter<T0, T1>,
11426    {
11427        <Self as Mvn_Emitter<T0, T1>>::mvn_(self, op0, op1);
11428    }
11429    pub fn mvn__3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11430    where
11431        Self: Mvn_3Emitter<T0, T1, T2>,
11432    {
11433        <Self as Mvn_3Emitter<T0, T1, T2>>::mvn__3(self, op0, op1, op2);
11434    }
11435    pub fn neg<T0, T1>(&mut self, op0: T0, op1: T1)
11436    where
11437        Self: NegEmitter<T0, T1>,
11438    {
11439        <Self as NegEmitter<T0, T1>>::neg(self, op0, op1);
11440    }
11441    pub fn neg_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11442    where
11443        Self: Neg3Emitter<T0, T1, T2>,
11444    {
11445        <Self as Neg3Emitter<T0, T1, T2>>::neg_3(self, op0, op1, op2);
11446    }
11447    pub fn negs<T0, T1>(&mut self, op0: T0, op1: T1)
11448    where
11449        Self: NegsEmitter<T0, T1>,
11450    {
11451        <Self as NegsEmitter<T0, T1>>::negs(self, op0, op1);
11452    }
11453    pub fn negs_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11454    where
11455        Self: Negs3Emitter<T0, T1, T2>,
11456    {
11457        <Self as Negs3Emitter<T0, T1, T2>>::negs_3(self, op0, op1, op2);
11458    }
11459    pub fn ngc<T0, T1>(&mut self, op0: T0, op1: T1)
11460    where
11461        Self: NgcEmitter<T0, T1>,
11462    {
11463        <Self as NgcEmitter<T0, T1>>::ngc(self, op0, op1);
11464    }
11465    pub fn ngcs<T0, T1>(&mut self, op0: T0, op1: T1)
11466    where
11467        Self: NgcsEmitter<T0, T1>,
11468    {
11469        <Self as NgcsEmitter<T0, T1>>::ngcs(self, op0, op1);
11470    }
11471    pub fn orn<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11472    where
11473        Self: OrnEmitter<T0, T1, T2>,
11474    {
11475        <Self as OrnEmitter<T0, T1, T2>>::orn(self, op0, op1, op2);
11476    }
11477    pub fn orn_4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11478    where
11479        Self: Orn4Emitter<T0, T1, T2, T3>,
11480    {
11481        <Self as Orn4Emitter<T0, T1, T2, T3>>::orn_4(self, op0, op1, op2, op3);
11482    }
11483    pub fn orr<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11484    where
11485        Self: OrrEmitter<T0, T1, T2>,
11486    {
11487        <Self as OrrEmitter<T0, T1, T2>>::orr(self, op0, op1, op2);
11488    }
11489    pub fn orr_4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11490    where
11491        Self: Orr4Emitter<T0, T1, T2, T3>,
11492    {
11493        <Self as Orr4Emitter<T0, T1, T2, T3>>::orr_4(self, op0, op1, op2, op3);
11494    }
11495    pub fn rbit<T0, T1>(&mut self, op0: T0, op1: T1)
11496    where
11497        Self: RbitEmitter<T0, T1>,
11498    {
11499        <Self as RbitEmitter<T0, T1>>::rbit(self, op0, op1);
11500    }
11501    pub fn ret<T0>(&mut self, op0: T0)
11502    where
11503        Self: RetEmitter<T0>,
11504    {
11505        <Self as RetEmitter<T0>>::ret(self, op0);
11506    }
11507    pub fn rev<T0, T1>(&mut self, op0: T0, op1: T1)
11508    where
11509        Self: RevEmitter<T0, T1>,
11510    {
11511        <Self as RevEmitter<T0, T1>>::rev(self, op0, op1);
11512    }
11513    pub fn rev16<T0, T1>(&mut self, op0: T0, op1: T1)
11514    where
11515        Self: Rev16Emitter<T0, T1>,
11516    {
11517        <Self as Rev16Emitter<T0, T1>>::rev16(self, op0, op1);
11518    }
11519    pub fn rev32<T0, T1>(&mut self, op0: T0, op1: T1)
11520    where
11521        Self: Rev32Emitter<T0, T1>,
11522    {
11523        <Self as Rev32Emitter<T0, T1>>::rev32(self, op0, op1);
11524    }
11525    pub fn rev64<T0, T1>(&mut self, op0: T0, op1: T1)
11526    where
11527        Self: Rev64Emitter<T0, T1>,
11528    {
11529        <Self as Rev64Emitter<T0, T1>>::rev64(self, op0, op1);
11530    }
11531    pub fn ror<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11532    where
11533        Self: RorEmitter<T0, T1, T2>,
11534    {
11535        <Self as RorEmitter<T0, T1, T2>>::ror(self, op0, op1, op2);
11536    }
11537    pub fn rorv<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11538    where
11539        Self: RorvEmitter<T0, T1, T2>,
11540    {
11541        <Self as RorvEmitter<T0, T1, T2>>::rorv(self, op0, op1, op2);
11542    }
11543    pub fn sbc<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11544    where
11545        Self: SbcEmitter<T0, T1, T2>,
11546    {
11547        <Self as SbcEmitter<T0, T1, T2>>::sbc(self, op0, op1, op2);
11548    }
11549    pub fn sbcs<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11550    where
11551        Self: SbcsEmitter<T0, T1, T2>,
11552    {
11553        <Self as SbcsEmitter<T0, T1, T2>>::sbcs(self, op0, op1, op2);
11554    }
11555    pub fn sbfiz<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11556    where
11557        Self: SbfizEmitter<T0, T1, T2, T3>,
11558    {
11559        <Self as SbfizEmitter<T0, T1, T2, T3>>::sbfiz(self, op0, op1, op2, op3);
11560    }
11561    pub fn sbfm<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11562    where
11563        Self: SbfmEmitter<T0, T1, T2, T3>,
11564    {
11565        <Self as SbfmEmitter<T0, T1, T2, T3>>::sbfm(self, op0, op1, op2, op3);
11566    }
11567    pub fn sbfx<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11568    where
11569        Self: SbfxEmitter<T0, T1, T2, T3>,
11570    {
11571        <Self as SbfxEmitter<T0, T1, T2, T3>>::sbfx(self, op0, op1, op2, op3);
11572    }
11573    pub fn sdiv<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11574    where
11575        Self: SdivEmitter<T0, T1, T2>,
11576    {
11577        <Self as SdivEmitter<T0, T1, T2>>::sdiv(self, op0, op1, op2);
11578    }
11579    pub fn smaddl<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11580    where
11581        Self: SmaddlEmitter<T0, T1, T2, T3>,
11582    {
11583        <Self as SmaddlEmitter<T0, T1, T2, T3>>::smaddl(self, op0, op1, op2, op3);
11584    }
11585    pub fn smc<T0>(&mut self, op0: T0)
11586    where
11587        Self: SmcEmitter<T0>,
11588    {
11589        <Self as SmcEmitter<T0>>::smc(self, op0);
11590    }
11591    pub fn smnegl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11592    where
11593        Self: SmneglEmitter<T0, T1, T2>,
11594    {
11595        <Self as SmneglEmitter<T0, T1, T2>>::smnegl(self, op0, op1, op2);
11596    }
11597    pub fn smsubl<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11598    where
11599        Self: SmsublEmitter<T0, T1, T2, T3>,
11600    {
11601        <Self as SmsublEmitter<T0, T1, T2, T3>>::smsubl(self, op0, op1, op2, op3);
11602    }
11603    pub fn smulh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11604    where
11605        Self: SmulhEmitter<T0, T1, T2>,
11606    {
11607        <Self as SmulhEmitter<T0, T1, T2>>::smulh(self, op0, op1, op2);
11608    }
11609    pub fn smull<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11610    where
11611        Self: SmullEmitter<T0, T1, T2>,
11612    {
11613        <Self as SmullEmitter<T0, T1, T2>>::smull(self, op0, op1, op2);
11614    }
11615    pub fn sub<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11616    where
11617        Self: SubEmitter<T0, T1, T2>,
11618    {
11619        <Self as SubEmitter<T0, T1, T2>>::sub(self, op0, op1, op2);
11620    }
11621    pub fn sub_4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11622    where
11623        Self: Sub4Emitter<T0, T1, T2, T3>,
11624    {
11625        <Self as Sub4Emitter<T0, T1, T2, T3>>::sub_4(self, op0, op1, op2, op3);
11626    }
11627    pub fn subs<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11628    where
11629        Self: SubsEmitter<T0, T1, T2>,
11630    {
11631        <Self as SubsEmitter<T0, T1, T2>>::subs(self, op0, op1, op2);
11632    }
11633    pub fn subs_4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11634    where
11635        Self: Subs4Emitter<T0, T1, T2, T3>,
11636    {
11637        <Self as Subs4Emitter<T0, T1, T2, T3>>::subs_4(self, op0, op1, op2, op3);
11638    }
11639    pub fn svc<T0>(&mut self, op0: T0)
11640    where
11641        Self: SvcEmitter<T0>,
11642    {
11643        <Self as SvcEmitter<T0>>::svc(self, op0);
11644    }
11645    pub fn sxtb<T0, T1>(&mut self, op0: T0, op1: T1)
11646    where
11647        Self: SxtbEmitter<T0, T1>,
11648    {
11649        <Self as SxtbEmitter<T0, T1>>::sxtb(self, op0, op1);
11650    }
11651    pub fn sxth<T0, T1>(&mut self, op0: T0, op1: T1)
11652    where
11653        Self: SxthEmitter<T0, T1>,
11654    {
11655        <Self as SxthEmitter<T0, T1>>::sxth(self, op0, op1);
11656    }
11657    pub fn sxtw<T0, T1>(&mut self, op0: T0, op1: T1)
11658    where
11659        Self: SxtwEmitter<T0, T1>,
11660    {
11661        <Self as SxtwEmitter<T0, T1>>::sxtw(self, op0, op1);
11662    }
11663    pub fn sys<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11664    where
11665        Self: SysEmitter<T0, T1, T2, T3>,
11666    {
11667        <Self as SysEmitter<T0, T1, T2, T3>>::sys(self, op0, op1, op2, op3);
11668    }
11669    pub fn sys_5<T0, T1, T2, T3, T4>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4)
11670    where
11671        Self: Sys5Emitter<T0, T1, T2, T3, T4>,
11672    {
11673        <Self as Sys5Emitter<T0, T1, T2, T3, T4>>::sys_5(self, op0, op1, op2, op3, op4);
11674    }
11675    pub fn tlbi<T0, T1>(&mut self, op0: T0, op1: T1)
11676    where
11677        Self: TlbiEmitter<T0, T1>,
11678    {
11679        <Self as TlbiEmitter<T0, T1>>::tlbi(self, op0, op1);
11680    }
11681    pub fn tst<T0, T1>(&mut self, op0: T0, op1: T1)
11682    where
11683        Self: TstEmitter<T0, T1>,
11684    {
11685        <Self as TstEmitter<T0, T1>>::tst(self, op0, op1);
11686    }
11687    pub fn tst_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11688    where
11689        Self: Tst3Emitter<T0, T1, T2>,
11690    {
11691        <Self as Tst3Emitter<T0, T1, T2>>::tst_3(self, op0, op1, op2);
11692    }
11693    pub fn udiv<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11694    where
11695        Self: UdivEmitter<T0, T1, T2>,
11696    {
11697        <Self as UdivEmitter<T0, T1, T2>>::udiv(self, op0, op1, op2);
11698    }
11699    pub fn ubfiz<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11700    where
11701        Self: UbfizEmitter<T0, T1, T2, T3>,
11702    {
11703        <Self as UbfizEmitter<T0, T1, T2, T3>>::ubfiz(self, op0, op1, op2, op3);
11704    }
11705    pub fn ubfm<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11706    where
11707        Self: UbfmEmitter<T0, T1, T2, T3>,
11708    {
11709        <Self as UbfmEmitter<T0, T1, T2, T3>>::ubfm(self, op0, op1, op2, op3);
11710    }
11711    pub fn ubfx<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11712    where
11713        Self: UbfxEmitter<T0, T1, T2, T3>,
11714    {
11715        <Self as UbfxEmitter<T0, T1, T2, T3>>::ubfx(self, op0, op1, op2, op3);
11716    }
11717    pub fn umaddl<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11718    where
11719        Self: UmaddlEmitter<T0, T1, T2, T3>,
11720    {
11721        <Self as UmaddlEmitter<T0, T1, T2, T3>>::umaddl(self, op0, op1, op2, op3);
11722    }
11723    pub fn umnegl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11724    where
11725        Self: UmneglEmitter<T0, T1, T2>,
11726    {
11727        <Self as UmneglEmitter<T0, T1, T2>>::umnegl(self, op0, op1, op2);
11728    }
11729    pub fn umsubl<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
11730    where
11731        Self: UmsublEmitter<T0, T1, T2, T3>,
11732    {
11733        <Self as UmsublEmitter<T0, T1, T2, T3>>::umsubl(self, op0, op1, op2, op3);
11734    }
11735    pub fn umull<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11736    where
11737        Self: UmullEmitter<T0, T1, T2>,
11738    {
11739        <Self as UmullEmitter<T0, T1, T2>>::umull(self, op0, op1, op2);
11740    }
11741    pub fn umulh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11742    where
11743        Self: UmulhEmitter<T0, T1, T2>,
11744    {
11745        <Self as UmulhEmitter<T0, T1, T2>>::umulh(self, op0, op1, op2);
11746    }
11747    pub fn uxtb<T0, T1>(&mut self, op0: T0, op1: T1)
11748    where
11749        Self: UxtbEmitter<T0, T1>,
11750    {
11751        <Self as UxtbEmitter<T0, T1>>::uxtb(self, op0, op1);
11752    }
11753    pub fn uxth<T0, T1>(&mut self, op0: T0, op1: T1)
11754    where
11755        Self: UxthEmitter<T0, T1>,
11756    {
11757        <Self as UxthEmitter<T0, T1>>::uxth(self, op0, op1);
11758    }
11759    pub fn csdb(&mut self)
11760    where
11761        Self: CsdbEmitter,
11762    {
11763        <Self as CsdbEmitter>::csdb(self);
11764    }
11765    pub fn dcps1<T0>(&mut self, op0: T0)
11766    where
11767        Self: Dcps1Emitter<T0>,
11768    {
11769        <Self as Dcps1Emitter<T0>>::dcps1(self, op0);
11770    }
11771    pub fn dcps2<T0>(&mut self, op0: T0)
11772    where
11773        Self: Dcps2Emitter<T0>,
11774    {
11775        <Self as Dcps2Emitter<T0>>::dcps2(self, op0);
11776    }
11777    pub fn dcps3<T0>(&mut self, op0: T0)
11778    where
11779        Self: Dcps3Emitter<T0>,
11780    {
11781        <Self as Dcps3Emitter<T0>>::dcps3(self, op0);
11782    }
11783    pub fn pssbb(&mut self)
11784    where
11785        Self: PssbbEmitter,
11786    {
11787        <Self as PssbbEmitter>::pssbb(self);
11788    }
11789    pub fn ssbb(&mut self)
11790    where
11791        Self: SsbbEmitter,
11792    {
11793        <Self as SsbbEmitter>::ssbb(self);
11794    }
11795    pub fn udf<T0>(&mut self, op0: T0)
11796    where
11797        Self: UdfEmitter<T0>,
11798    {
11799        <Self as UdfEmitter<T0>>::udf(self, op0);
11800    }
11801
11802    pub fn b<T>(&mut self, op0: T)
11803    where
11804        Self: BEmitter<T>,
11805    {
11806        <Self as BEmitter<T>>::b(self, op0);
11807    }
11808
11809    pub fn b_eq<T0>(&mut self, op0: T0)
11810    where
11811        Self: BEmitter<T0>,
11812    {
11813        <Self as BEmitter<T0>>::b_eq(self, op0);
11814    }
11815    pub fn b_ne<T0>(&mut self, op0: T0)
11816    where
11817        Self: BEmitter<T0>,
11818    {
11819        <Self as BEmitter<T0>>::b_ne(self, op0);
11820    }
11821    pub fn b_cs<T0>(&mut self, op0: T0)
11822    where
11823        Self: BEmitter<T0>,
11824    {
11825        <Self as BEmitter<T0>>::b_cs(self, op0);
11826    }
11827    pub fn b_hs<T0>(&mut self, op0: T0)
11828    where
11829        Self: BEmitter<T0>,
11830    {
11831        <Self as BEmitter<T0>>::b_hs(self, op0);
11832    }
11833    pub fn b_cc<T0>(&mut self, op0: T0)
11834    where
11835        Self: BEmitter<T0>,
11836    {
11837        <Self as BEmitter<T0>>::b_cc(self, op0);
11838    }
11839    pub fn b_lo<T0>(&mut self, op0: T0)
11840    where
11841        Self: BEmitter<T0>,
11842    {
11843        <Self as BEmitter<T0>>::b_lo(self, op0);
11844    }
11845    pub fn b_mi<T0>(&mut self, op0: T0)
11846    where
11847        Self: BEmitter<T0>,
11848    {
11849        <Self as BEmitter<T0>>::b_mi(self, op0);
11850    }
11851    pub fn b_pl<T0>(&mut self, op0: T0)
11852    where
11853        Self: BEmitter<T0>,
11854    {
11855        <Self as BEmitter<T0>>::b_pl(self, op0);
11856    }
11857    pub fn b_vs<T0>(&mut self, op0: T0)
11858    where
11859        Self: BEmitter<T0>,
11860    {
11861        <Self as BEmitter<T0>>::b_vs(self, op0);
11862    }
11863    pub fn b_vc<T0>(&mut self, op0: T0)
11864    where
11865        Self: BEmitter<T0>,
11866    {
11867        <Self as BEmitter<T0>>::b_vc(self, op0);
11868    }
11869    pub fn b_hi<T0>(&mut self, op0: T0)
11870    where
11871        Self: BEmitter<T0>,
11872    {
11873        <Self as BEmitter<T0>>::b_hi(self, op0);
11874    }
11875    pub fn b_ls<T0>(&mut self, op0: T0)
11876    where
11877        Self: BEmitter<T0>,
11878    {
11879        <Self as BEmitter<T0>>::b_ls(self, op0);
11880    }
11881    pub fn b_ge<T0>(&mut self, op0: T0)
11882    where
11883        Self: BEmitter<T0>,
11884    {
11885        <Self as BEmitter<T0>>::b_ge(self, op0);
11886    }
11887    pub fn b_lt<T0>(&mut self, op0: T0)
11888    where
11889        Self: BEmitter<T0>,
11890    {
11891        <Self as BEmitter<T0>>::b_lt(self, op0);
11892    }
11893    pub fn b_gt<T0>(&mut self, op0: T0)
11894    where
11895        Self: BEmitter<T0>,
11896    {
11897        <Self as BEmitter<T0>>::b_gt(self, op0);
11898    }
11899    pub fn b_le<T0>(&mut self, op0: T0)
11900    where
11901        Self: BEmitter<T0>,
11902    {
11903        <Self as BEmitter<T0>>::b_le(self, op0);
11904    }
11905    pub fn b_al<T0>(&mut self, op0: T0)
11906    where
11907        Self: BEmitter<T0>,
11908    {
11909        <Self as BEmitter<T0>>::b_al(self, op0);
11910    }
11911    pub fn bl<T0>(&mut self, op0: T0)
11912    where
11913        Self: BlEmitter<T0>,
11914    {
11915        <Self as BlEmitter<T0>>::bl(self, op0);
11916    }
11917    pub fn blr<T0>(&mut self, op0: T0)
11918    where
11919        Self: BlrEmitter<T0>,
11920    {
11921        <Self as BlrEmitter<T0>>::blr(self, op0);
11922    }
11923    pub fn br<T0>(&mut self, op0: T0)
11924    where
11925        Self: BrEmitter<T0>,
11926    {
11927        <Self as BrEmitter<T0>>::br(self, op0);
11928    }
11929    pub fn cbz<T0, T1>(&mut self, op0: T0, op1: T1)
11930    where
11931        Self: CbzEmitter<T0, T1>,
11932    {
11933        <Self as CbzEmitter<T0, T1>>::cbz(self, op0, op1);
11934    }
11935    pub fn cbnz<T0, T1>(&mut self, op0: T0, op1: T1)
11936    where
11937        Self: CbnzEmitter<T0, T1>,
11938    {
11939        <Self as CbnzEmitter<T0, T1>>::cbnz(self, op0, op1);
11940    }
11941    pub fn tbnz<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11942    where
11943        Self: TbnzEmitter<T0, T1, T2>,
11944    {
11945        <Self as TbnzEmitter<T0, T1, T2>>::tbnz(self, op0, op1, op2);
11946    }
11947    pub fn tbz<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11948    where
11949        Self: TbzEmitter<T0, T1, T2>,
11950    {
11951        <Self as TbzEmitter<T0, T1, T2>>::tbz(self, op0, op1, op2);
11952    }
11953    pub fn cas<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11954    where
11955        Self: CasEmitter<T0, T1, T2>,
11956    {
11957        <Self as CasEmitter<T0, T1, T2>>::cas(self, op0, op1, op2);
11958    }
11959    pub fn casa<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11960    where
11961        Self: CasaEmitter<T0, T1, T2>,
11962    {
11963        <Self as CasaEmitter<T0, T1, T2>>::casa(self, op0, op1, op2);
11964    }
11965    pub fn casab<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11966    where
11967        Self: CasabEmitter<T0, T1, T2>,
11968    {
11969        <Self as CasabEmitter<T0, T1, T2>>::casab(self, op0, op1, op2);
11970    }
11971    pub fn casah<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11972    where
11973        Self: CasahEmitter<T0, T1, T2>,
11974    {
11975        <Self as CasahEmitter<T0, T1, T2>>::casah(self, op0, op1, op2);
11976    }
11977    pub fn casal<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11978    where
11979        Self: CasalEmitter<T0, T1, T2>,
11980    {
11981        <Self as CasalEmitter<T0, T1, T2>>::casal(self, op0, op1, op2);
11982    }
11983    pub fn casalb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11984    where
11985        Self: CasalbEmitter<T0, T1, T2>,
11986    {
11987        <Self as CasalbEmitter<T0, T1, T2>>::casalb(self, op0, op1, op2);
11988    }
11989    pub fn casalh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11990    where
11991        Self: CasalhEmitter<T0, T1, T2>,
11992    {
11993        <Self as CasalhEmitter<T0, T1, T2>>::casalh(self, op0, op1, op2);
11994    }
11995    pub fn casb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
11996    where
11997        Self: CasbEmitter<T0, T1, T2>,
11998    {
11999        <Self as CasbEmitter<T0, T1, T2>>::casb(self, op0, op1, op2);
12000    }
12001    pub fn cash<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12002    where
12003        Self: CashEmitter<T0, T1, T2>,
12004    {
12005        <Self as CashEmitter<T0, T1, T2>>::cash(self, op0, op1, op2);
12006    }
12007    pub fn casl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12008    where
12009        Self: CaslEmitter<T0, T1, T2>,
12010    {
12011        <Self as CaslEmitter<T0, T1, T2>>::casl(self, op0, op1, op2);
12012    }
12013    pub fn caslb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12014    where
12015        Self: CaslbEmitter<T0, T1, T2>,
12016    {
12017        <Self as CaslbEmitter<T0, T1, T2>>::caslb(self, op0, op1, op2);
12018    }
12019    pub fn caslh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12020    where
12021        Self: CaslhEmitter<T0, T1, T2>,
12022    {
12023        <Self as CaslhEmitter<T0, T1, T2>>::caslh(self, op0, op1, op2);
12024    }
12025    pub fn casp<T0, T1, T2, T3, T4>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4)
12026    where
12027        Self: CaspEmitter<T0, T1, T2, T3, T4>,
12028    {
12029        <Self as CaspEmitter<T0, T1, T2, T3, T4>>::casp(self, op0, op1, op2, op3, op4);
12030    }
12031    pub fn caspa<T0, T1, T2, T3, T4>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4)
12032    where
12033        Self: CaspaEmitter<T0, T1, T2, T3, T4>,
12034    {
12035        <Self as CaspaEmitter<T0, T1, T2, T3, T4>>::caspa(self, op0, op1, op2, op3, op4);
12036    }
12037    pub fn caspal<T0, T1, T2, T3, T4>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4)
12038    where
12039        Self: CaspalEmitter<T0, T1, T2, T3, T4>,
12040    {
12041        <Self as CaspalEmitter<T0, T1, T2, T3, T4>>::caspal(self, op0, op1, op2, op3, op4);
12042    }
12043    pub fn caspl<T0, T1, T2, T3, T4>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4)
12044    where
12045        Self: CasplEmitter<T0, T1, T2, T3, T4>,
12046    {
12047        <Self as CasplEmitter<T0, T1, T2, T3, T4>>::caspl(self, op0, op1, op2, op3, op4);
12048    }
12049    pub fn ldadd<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12050    where
12051        Self: LdaddEmitter<T0, T1, T2>,
12052    {
12053        <Self as LdaddEmitter<T0, T1, T2>>::ldadd(self, op0, op1, op2);
12054    }
12055    pub fn ldadda<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12056    where
12057        Self: LdaddaEmitter<T0, T1, T2>,
12058    {
12059        <Self as LdaddaEmitter<T0, T1, T2>>::ldadda(self, op0, op1, op2);
12060    }
12061    pub fn ldaddab<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12062    where
12063        Self: LdaddabEmitter<T0, T1, T2>,
12064    {
12065        <Self as LdaddabEmitter<T0, T1, T2>>::ldaddab(self, op0, op1, op2);
12066    }
12067    pub fn ldaddah<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12068    where
12069        Self: LdaddahEmitter<T0, T1, T2>,
12070    {
12071        <Self as LdaddahEmitter<T0, T1, T2>>::ldaddah(self, op0, op1, op2);
12072    }
12073    pub fn ldaddal<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12074    where
12075        Self: LdaddalEmitter<T0, T1, T2>,
12076    {
12077        <Self as LdaddalEmitter<T0, T1, T2>>::ldaddal(self, op0, op1, op2);
12078    }
12079    pub fn ldaddalb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12080    where
12081        Self: LdaddalbEmitter<T0, T1, T2>,
12082    {
12083        <Self as LdaddalbEmitter<T0, T1, T2>>::ldaddalb(self, op0, op1, op2);
12084    }
12085    pub fn ldaddalh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12086    where
12087        Self: LdaddalhEmitter<T0, T1, T2>,
12088    {
12089        <Self as LdaddalhEmitter<T0, T1, T2>>::ldaddalh(self, op0, op1, op2);
12090    }
12091    pub fn ldaddb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12092    where
12093        Self: LdaddbEmitter<T0, T1, T2>,
12094    {
12095        <Self as LdaddbEmitter<T0, T1, T2>>::ldaddb(self, op0, op1, op2);
12096    }
12097    pub fn ldaddh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12098    where
12099        Self: LdaddhEmitter<T0, T1, T2>,
12100    {
12101        <Self as LdaddhEmitter<T0, T1, T2>>::ldaddh(self, op0, op1, op2);
12102    }
12103    pub fn ldaddl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12104    where
12105        Self: LdaddlEmitter<T0, T1, T2>,
12106    {
12107        <Self as LdaddlEmitter<T0, T1, T2>>::ldaddl(self, op0, op1, op2);
12108    }
12109    pub fn ldaddlb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12110    where
12111        Self: LdaddlbEmitter<T0, T1, T2>,
12112    {
12113        <Self as LdaddlbEmitter<T0, T1, T2>>::ldaddlb(self, op0, op1, op2);
12114    }
12115    pub fn ldaddlh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12116    where
12117        Self: LdaddlhEmitter<T0, T1, T2>,
12118    {
12119        <Self as LdaddlhEmitter<T0, T1, T2>>::ldaddlh(self, op0, op1, op2);
12120    }
12121    pub fn ldar<T0, T1>(&mut self, op0: T0, op1: T1)
12122    where
12123        Self: LdarEmitter<T0, T1>,
12124    {
12125        <Self as LdarEmitter<T0, T1>>::ldar(self, op0, op1);
12126    }
12127    pub fn ldarb<T0, T1>(&mut self, op0: T0, op1: T1)
12128    where
12129        Self: LdarbEmitter<T0, T1>,
12130    {
12131        <Self as LdarbEmitter<T0, T1>>::ldarb(self, op0, op1);
12132    }
12133    pub fn ldarh<T0, T1>(&mut self, op0: T0, op1: T1)
12134    where
12135        Self: LdarhEmitter<T0, T1>,
12136    {
12137        <Self as LdarhEmitter<T0, T1>>::ldarh(self, op0, op1);
12138    }
12139    pub fn ldaxr<T0, T1>(&mut self, op0: T0, op1: T1)
12140    where
12141        Self: LdaxrEmitter<T0, T1>,
12142    {
12143        <Self as LdaxrEmitter<T0, T1>>::ldaxr(self, op0, op1);
12144    }
12145    pub fn ldaxrb<T0, T1>(&mut self, op0: T0, op1: T1)
12146    where
12147        Self: LdaxrbEmitter<T0, T1>,
12148    {
12149        <Self as LdaxrbEmitter<T0, T1>>::ldaxrb(self, op0, op1);
12150    }
12151    pub fn ldaxrh<T0, T1>(&mut self, op0: T0, op1: T1)
12152    where
12153        Self: LdaxrhEmitter<T0, T1>,
12154    {
12155        <Self as LdaxrhEmitter<T0, T1>>::ldaxrh(self, op0, op1);
12156    }
12157    pub fn ldclr<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12158    where
12159        Self: LdclrEmitter<T0, T1, T2>,
12160    {
12161        <Self as LdclrEmitter<T0, T1, T2>>::ldclr(self, op0, op1, op2);
12162    }
12163    pub fn ldclra<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12164    where
12165        Self: LdclraEmitter<T0, T1, T2>,
12166    {
12167        <Self as LdclraEmitter<T0, T1, T2>>::ldclra(self, op0, op1, op2);
12168    }
12169    pub fn ldclrab<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12170    where
12171        Self: LdclrabEmitter<T0, T1, T2>,
12172    {
12173        <Self as LdclrabEmitter<T0, T1, T2>>::ldclrab(self, op0, op1, op2);
12174    }
12175    pub fn ldclrah<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12176    where
12177        Self: LdclrahEmitter<T0, T1, T2>,
12178    {
12179        <Self as LdclrahEmitter<T0, T1, T2>>::ldclrah(self, op0, op1, op2);
12180    }
12181    pub fn ldclral<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12182    where
12183        Self: LdclralEmitter<T0, T1, T2>,
12184    {
12185        <Self as LdclralEmitter<T0, T1, T2>>::ldclral(self, op0, op1, op2);
12186    }
12187    pub fn ldclralb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12188    where
12189        Self: LdclralbEmitter<T0, T1, T2>,
12190    {
12191        <Self as LdclralbEmitter<T0, T1, T2>>::ldclralb(self, op0, op1, op2);
12192    }
12193    pub fn ldclralh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12194    where
12195        Self: LdclralhEmitter<T0, T1, T2>,
12196    {
12197        <Self as LdclralhEmitter<T0, T1, T2>>::ldclralh(self, op0, op1, op2);
12198    }
12199    pub fn ldclrb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12200    where
12201        Self: LdclrbEmitter<T0, T1, T2>,
12202    {
12203        <Self as LdclrbEmitter<T0, T1, T2>>::ldclrb(self, op0, op1, op2);
12204    }
12205    pub fn ldclrh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12206    where
12207        Self: LdclrhEmitter<T0, T1, T2>,
12208    {
12209        <Self as LdclrhEmitter<T0, T1, T2>>::ldclrh(self, op0, op1, op2);
12210    }
12211    pub fn ldclrl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12212    where
12213        Self: LdclrlEmitter<T0, T1, T2>,
12214    {
12215        <Self as LdclrlEmitter<T0, T1, T2>>::ldclrl(self, op0, op1, op2);
12216    }
12217    pub fn ldclrlb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12218    where
12219        Self: LdclrlbEmitter<T0, T1, T2>,
12220    {
12221        <Self as LdclrlbEmitter<T0, T1, T2>>::ldclrlb(self, op0, op1, op2);
12222    }
12223    pub fn ldclrlh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12224    where
12225        Self: LdclrlhEmitter<T0, T1, T2>,
12226    {
12227        <Self as LdclrlhEmitter<T0, T1, T2>>::ldclrlh(self, op0, op1, op2);
12228    }
12229    pub fn ldeor<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12230    where
12231        Self: LdeorEmitter<T0, T1, T2>,
12232    {
12233        <Self as LdeorEmitter<T0, T1, T2>>::ldeor(self, op0, op1, op2);
12234    }
12235    pub fn ldeora<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12236    where
12237        Self: LdeoraEmitter<T0, T1, T2>,
12238    {
12239        <Self as LdeoraEmitter<T0, T1, T2>>::ldeora(self, op0, op1, op2);
12240    }
12241    pub fn ldeorab<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12242    where
12243        Self: LdeorabEmitter<T0, T1, T2>,
12244    {
12245        <Self as LdeorabEmitter<T0, T1, T2>>::ldeorab(self, op0, op1, op2);
12246    }
12247    pub fn ldeorah<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12248    where
12249        Self: LdeorahEmitter<T0, T1, T2>,
12250    {
12251        <Self as LdeorahEmitter<T0, T1, T2>>::ldeorah(self, op0, op1, op2);
12252    }
12253    pub fn ldeoral<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12254    where
12255        Self: LdeoralEmitter<T0, T1, T2>,
12256    {
12257        <Self as LdeoralEmitter<T0, T1, T2>>::ldeoral(self, op0, op1, op2);
12258    }
12259    pub fn ldeoralb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12260    where
12261        Self: LdeoralbEmitter<T0, T1, T2>,
12262    {
12263        <Self as LdeoralbEmitter<T0, T1, T2>>::ldeoralb(self, op0, op1, op2);
12264    }
12265    pub fn ldeoralh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12266    where
12267        Self: LdeoralhEmitter<T0, T1, T2>,
12268    {
12269        <Self as LdeoralhEmitter<T0, T1, T2>>::ldeoralh(self, op0, op1, op2);
12270    }
12271    pub fn ldeorb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12272    where
12273        Self: LdeorbEmitter<T0, T1, T2>,
12274    {
12275        <Self as LdeorbEmitter<T0, T1, T2>>::ldeorb(self, op0, op1, op2);
12276    }
12277    pub fn ldeorh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12278    where
12279        Self: LdeorhEmitter<T0, T1, T2>,
12280    {
12281        <Self as LdeorhEmitter<T0, T1, T2>>::ldeorh(self, op0, op1, op2);
12282    }
12283    pub fn ldeorl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12284    where
12285        Self: LdeorlEmitter<T0, T1, T2>,
12286    {
12287        <Self as LdeorlEmitter<T0, T1, T2>>::ldeorl(self, op0, op1, op2);
12288    }
12289    pub fn ldeorlb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12290    where
12291        Self: LdeorlbEmitter<T0, T1, T2>,
12292    {
12293        <Self as LdeorlbEmitter<T0, T1, T2>>::ldeorlb(self, op0, op1, op2);
12294    }
12295    pub fn ldeorlh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12296    where
12297        Self: LdeorlhEmitter<T0, T1, T2>,
12298    {
12299        <Self as LdeorlhEmitter<T0, T1, T2>>::ldeorlh(self, op0, op1, op2);
12300    }
12301    pub fn ldlar<T0, T1>(&mut self, op0: T0, op1: T1)
12302    where
12303        Self: LdlarEmitter<T0, T1>,
12304    {
12305        <Self as LdlarEmitter<T0, T1>>::ldlar(self, op0, op1);
12306    }
12307    pub fn ldlarb<T0, T1>(&mut self, op0: T0, op1: T1)
12308    where
12309        Self: LdlarbEmitter<T0, T1>,
12310    {
12311        <Self as LdlarbEmitter<T0, T1>>::ldlarb(self, op0, op1);
12312    }
12313    pub fn ldlarh<T0, T1>(&mut self, op0: T0, op1: T1)
12314    where
12315        Self: LdlarhEmitter<T0, T1>,
12316    {
12317        <Self as LdlarhEmitter<T0, T1>>::ldlarh(self, op0, op1);
12318    }
12319    pub fn ldnp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12320    where
12321        Self: LdnpEmitter<T0, T1, T2>,
12322    {
12323        <Self as LdnpEmitter<T0, T1, T2>>::ldnp(self, op0, op1, op2);
12324    }
12325    pub fn ldp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12326    where
12327        Self: LdpEmitter<T0, T1, T2>,
12328    {
12329        <Self as LdpEmitter<T0, T1, T2>>::ldp(self, op0, op1, op2);
12330    }
12331    pub fn ldpsw<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12332    where
12333        Self: LdpswEmitter<T0, T1, T2>,
12334    {
12335        <Self as LdpswEmitter<T0, T1, T2>>::ldpsw(self, op0, op1, op2);
12336    }
12337    pub fn ldr<T0, T1>(&mut self, op0: T0, op1: T1)
12338    where
12339        Self: LdrEmitter<T0, T1>,
12340    {
12341        <Self as LdrEmitter<T0, T1>>::ldr(self, op0, op1);
12342    }
12343    pub fn ldrb<T0, T1>(&mut self, op0: T0, op1: T1)
12344    where
12345        Self: LdrbEmitter<T0, T1>,
12346    {
12347        <Self as LdrbEmitter<T0, T1>>::ldrb(self, op0, op1);
12348    }
12349    pub fn ldrh<T0, T1>(&mut self, op0: T0, op1: T1)
12350    where
12351        Self: LdrhEmitter<T0, T1>,
12352    {
12353        <Self as LdrhEmitter<T0, T1>>::ldrh(self, op0, op1);
12354    }
12355    pub fn ldrsb<T0, T1>(&mut self, op0: T0, op1: T1)
12356    where
12357        Self: LdrsbEmitter<T0, T1>,
12358    {
12359        <Self as LdrsbEmitter<T0, T1>>::ldrsb(self, op0, op1);
12360    }
12361    pub fn ldrsh<T0, T1>(&mut self, op0: T0, op1: T1)
12362    where
12363        Self: LdrshEmitter<T0, T1>,
12364    {
12365        <Self as LdrshEmitter<T0, T1>>::ldrsh(self, op0, op1);
12366    }
12367    pub fn ldrsw<T0, T1>(&mut self, op0: T0, op1: T1)
12368    where
12369        Self: LdrswEmitter<T0, T1>,
12370    {
12371        <Self as LdrswEmitter<T0, T1>>::ldrsw(self, op0, op1);
12372    }
12373    pub fn ldset<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12374    where
12375        Self: LdsetEmitter<T0, T1, T2>,
12376    {
12377        <Self as LdsetEmitter<T0, T1, T2>>::ldset(self, op0, op1, op2);
12378    }
12379    pub fn ldseta<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12380    where
12381        Self: LdsetaEmitter<T0, T1, T2>,
12382    {
12383        <Self as LdsetaEmitter<T0, T1, T2>>::ldseta(self, op0, op1, op2);
12384    }
12385    pub fn ldsetab<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12386    where
12387        Self: LdsetabEmitter<T0, T1, T2>,
12388    {
12389        <Self as LdsetabEmitter<T0, T1, T2>>::ldsetab(self, op0, op1, op2);
12390    }
12391    pub fn ldsetah<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12392    where
12393        Self: LdsetahEmitter<T0, T1, T2>,
12394    {
12395        <Self as LdsetahEmitter<T0, T1, T2>>::ldsetah(self, op0, op1, op2);
12396    }
12397    pub fn ldsetal<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12398    where
12399        Self: LdsetalEmitter<T0, T1, T2>,
12400    {
12401        <Self as LdsetalEmitter<T0, T1, T2>>::ldsetal(self, op0, op1, op2);
12402    }
12403    pub fn ldsetalb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12404    where
12405        Self: LdsetalbEmitter<T0, T1, T2>,
12406    {
12407        <Self as LdsetalbEmitter<T0, T1, T2>>::ldsetalb(self, op0, op1, op2);
12408    }
12409    pub fn ldsetalh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12410    where
12411        Self: LdsetalhEmitter<T0, T1, T2>,
12412    {
12413        <Self as LdsetalhEmitter<T0, T1, T2>>::ldsetalh(self, op0, op1, op2);
12414    }
12415    pub fn ldsetb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12416    where
12417        Self: LdsetbEmitter<T0, T1, T2>,
12418    {
12419        <Self as LdsetbEmitter<T0, T1, T2>>::ldsetb(self, op0, op1, op2);
12420    }
12421    pub fn ldseth<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12422    where
12423        Self: LdsethEmitter<T0, T1, T2>,
12424    {
12425        <Self as LdsethEmitter<T0, T1, T2>>::ldseth(self, op0, op1, op2);
12426    }
12427    pub fn ldsetl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12428    where
12429        Self: LdsetlEmitter<T0, T1, T2>,
12430    {
12431        <Self as LdsetlEmitter<T0, T1, T2>>::ldsetl(self, op0, op1, op2);
12432    }
12433    pub fn ldsetlb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12434    where
12435        Self: LdsetlbEmitter<T0, T1, T2>,
12436    {
12437        <Self as LdsetlbEmitter<T0, T1, T2>>::ldsetlb(self, op0, op1, op2);
12438    }
12439    pub fn ldsetlh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12440    where
12441        Self: LdsetlhEmitter<T0, T1, T2>,
12442    {
12443        <Self as LdsetlhEmitter<T0, T1, T2>>::ldsetlh(self, op0, op1, op2);
12444    }
12445    pub fn ldsmax<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12446    where
12447        Self: LdsmaxEmitter<T0, T1, T2>,
12448    {
12449        <Self as LdsmaxEmitter<T0, T1, T2>>::ldsmax(self, op0, op1, op2);
12450    }
12451    pub fn ldsmaxa<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12452    where
12453        Self: LdsmaxaEmitter<T0, T1, T2>,
12454    {
12455        <Self as LdsmaxaEmitter<T0, T1, T2>>::ldsmaxa(self, op0, op1, op2);
12456    }
12457    pub fn ldsmaxab<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12458    where
12459        Self: LdsmaxabEmitter<T0, T1, T2>,
12460    {
12461        <Self as LdsmaxabEmitter<T0, T1, T2>>::ldsmaxab(self, op0, op1, op2);
12462    }
12463    pub fn ldsmaxah<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12464    where
12465        Self: LdsmaxahEmitter<T0, T1, T2>,
12466    {
12467        <Self as LdsmaxahEmitter<T0, T1, T2>>::ldsmaxah(self, op0, op1, op2);
12468    }
12469    pub fn ldsmaxal<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12470    where
12471        Self: LdsmaxalEmitter<T0, T1, T2>,
12472    {
12473        <Self as LdsmaxalEmitter<T0, T1, T2>>::ldsmaxal(self, op0, op1, op2);
12474    }
12475    pub fn ldsmaxalb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12476    where
12477        Self: LdsmaxalbEmitter<T0, T1, T2>,
12478    {
12479        <Self as LdsmaxalbEmitter<T0, T1, T2>>::ldsmaxalb(self, op0, op1, op2);
12480    }
12481    pub fn ldsmaxalh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12482    where
12483        Self: LdsmaxalhEmitter<T0, T1, T2>,
12484    {
12485        <Self as LdsmaxalhEmitter<T0, T1, T2>>::ldsmaxalh(self, op0, op1, op2);
12486    }
12487    pub fn ldsmaxb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12488    where
12489        Self: LdsmaxbEmitter<T0, T1, T2>,
12490    {
12491        <Self as LdsmaxbEmitter<T0, T1, T2>>::ldsmaxb(self, op0, op1, op2);
12492    }
12493    pub fn ldsmaxh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12494    where
12495        Self: LdsmaxhEmitter<T0, T1, T2>,
12496    {
12497        <Self as LdsmaxhEmitter<T0, T1, T2>>::ldsmaxh(self, op0, op1, op2);
12498    }
12499    pub fn ldsmaxl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12500    where
12501        Self: LdsmaxlEmitter<T0, T1, T2>,
12502    {
12503        <Self as LdsmaxlEmitter<T0, T1, T2>>::ldsmaxl(self, op0, op1, op2);
12504    }
12505    pub fn ldsmaxlb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12506    where
12507        Self: LdsmaxlbEmitter<T0, T1, T2>,
12508    {
12509        <Self as LdsmaxlbEmitter<T0, T1, T2>>::ldsmaxlb(self, op0, op1, op2);
12510    }
12511    pub fn ldsmaxlh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12512    where
12513        Self: LdsmaxlhEmitter<T0, T1, T2>,
12514    {
12515        <Self as LdsmaxlhEmitter<T0, T1, T2>>::ldsmaxlh(self, op0, op1, op2);
12516    }
12517    pub fn ldsmin<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12518    where
12519        Self: LdsminEmitter<T0, T1, T2>,
12520    {
12521        <Self as LdsminEmitter<T0, T1, T2>>::ldsmin(self, op0, op1, op2);
12522    }
12523    pub fn ldsmina<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12524    where
12525        Self: LdsminaEmitter<T0, T1, T2>,
12526    {
12527        <Self as LdsminaEmitter<T0, T1, T2>>::ldsmina(self, op0, op1, op2);
12528    }
12529    pub fn ldsminab<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12530    where
12531        Self: LdsminabEmitter<T0, T1, T2>,
12532    {
12533        <Self as LdsminabEmitter<T0, T1, T2>>::ldsminab(self, op0, op1, op2);
12534    }
12535    pub fn ldsminah<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12536    where
12537        Self: LdsminahEmitter<T0, T1, T2>,
12538    {
12539        <Self as LdsminahEmitter<T0, T1, T2>>::ldsminah(self, op0, op1, op2);
12540    }
12541    pub fn ldsminal<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12542    where
12543        Self: LdsminalEmitter<T0, T1, T2>,
12544    {
12545        <Self as LdsminalEmitter<T0, T1, T2>>::ldsminal(self, op0, op1, op2);
12546    }
12547    pub fn ldsminalb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12548    where
12549        Self: LdsminalbEmitter<T0, T1, T2>,
12550    {
12551        <Self as LdsminalbEmitter<T0, T1, T2>>::ldsminalb(self, op0, op1, op2);
12552    }
12553    pub fn ldsminalh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12554    where
12555        Self: LdsminalhEmitter<T0, T1, T2>,
12556    {
12557        <Self as LdsminalhEmitter<T0, T1, T2>>::ldsminalh(self, op0, op1, op2);
12558    }
12559    pub fn ldsminb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12560    where
12561        Self: LdsminbEmitter<T0, T1, T2>,
12562    {
12563        <Self as LdsminbEmitter<T0, T1, T2>>::ldsminb(self, op0, op1, op2);
12564    }
12565    pub fn ldsminh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12566    where
12567        Self: LdsminhEmitter<T0, T1, T2>,
12568    {
12569        <Self as LdsminhEmitter<T0, T1, T2>>::ldsminh(self, op0, op1, op2);
12570    }
12571    pub fn ldsminl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12572    where
12573        Self: LdsminlEmitter<T0, T1, T2>,
12574    {
12575        <Self as LdsminlEmitter<T0, T1, T2>>::ldsminl(self, op0, op1, op2);
12576    }
12577    pub fn ldsminlb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12578    where
12579        Self: LdsminlbEmitter<T0, T1, T2>,
12580    {
12581        <Self as LdsminlbEmitter<T0, T1, T2>>::ldsminlb(self, op0, op1, op2);
12582    }
12583    pub fn ldsminlh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12584    where
12585        Self: LdsminlhEmitter<T0, T1, T2>,
12586    {
12587        <Self as LdsminlhEmitter<T0, T1, T2>>::ldsminlh(self, op0, op1, op2);
12588    }
12589    pub fn ldtr<T0, T1>(&mut self, op0: T0, op1: T1)
12590    where
12591        Self: LdtrEmitter<T0, T1>,
12592    {
12593        <Self as LdtrEmitter<T0, T1>>::ldtr(self, op0, op1);
12594    }
12595    pub fn ldtrb<T0, T1>(&mut self, op0: T0, op1: T1)
12596    where
12597        Self: LdtrbEmitter<T0, T1>,
12598    {
12599        <Self as LdtrbEmitter<T0, T1>>::ldtrb(self, op0, op1);
12600    }
12601    pub fn ldtrh<T0, T1>(&mut self, op0: T0, op1: T1)
12602    where
12603        Self: LdtrhEmitter<T0, T1>,
12604    {
12605        <Self as LdtrhEmitter<T0, T1>>::ldtrh(self, op0, op1);
12606    }
12607    pub fn ldtrsb<T0, T1>(&mut self, op0: T0, op1: T1)
12608    where
12609        Self: LdtrsbEmitter<T0, T1>,
12610    {
12611        <Self as LdtrsbEmitter<T0, T1>>::ldtrsb(self, op0, op1);
12612    }
12613    pub fn ldtrsh<T0, T1>(&mut self, op0: T0, op1: T1)
12614    where
12615        Self: LdtrshEmitter<T0, T1>,
12616    {
12617        <Self as LdtrshEmitter<T0, T1>>::ldtrsh(self, op0, op1);
12618    }
12619    pub fn ldtrsw<T0, T1>(&mut self, op0: T0, op1: T1)
12620    where
12621        Self: LdtrswEmitter<T0, T1>,
12622    {
12623        <Self as LdtrswEmitter<T0, T1>>::ldtrsw(self, op0, op1);
12624    }
12625    pub fn ldumax<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12626    where
12627        Self: LdumaxEmitter<T0, T1, T2>,
12628    {
12629        <Self as LdumaxEmitter<T0, T1, T2>>::ldumax(self, op0, op1, op2);
12630    }
12631    pub fn ldumaxa<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12632    where
12633        Self: LdumaxaEmitter<T0, T1, T2>,
12634    {
12635        <Self as LdumaxaEmitter<T0, T1, T2>>::ldumaxa(self, op0, op1, op2);
12636    }
12637    pub fn ldumaxab<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12638    where
12639        Self: LdumaxabEmitter<T0, T1, T2>,
12640    {
12641        <Self as LdumaxabEmitter<T0, T1, T2>>::ldumaxab(self, op0, op1, op2);
12642    }
12643    pub fn ldumaxah<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12644    where
12645        Self: LdumaxahEmitter<T0, T1, T2>,
12646    {
12647        <Self as LdumaxahEmitter<T0, T1, T2>>::ldumaxah(self, op0, op1, op2);
12648    }
12649    pub fn ldumaxal<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12650    where
12651        Self: LdumaxalEmitter<T0, T1, T2>,
12652    {
12653        <Self as LdumaxalEmitter<T0, T1, T2>>::ldumaxal(self, op0, op1, op2);
12654    }
12655    pub fn ldumaxalb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12656    where
12657        Self: LdumaxalbEmitter<T0, T1, T2>,
12658    {
12659        <Self as LdumaxalbEmitter<T0, T1, T2>>::ldumaxalb(self, op0, op1, op2);
12660    }
12661    pub fn ldumaxalh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12662    where
12663        Self: LdumaxalhEmitter<T0, T1, T2>,
12664    {
12665        <Self as LdumaxalhEmitter<T0, T1, T2>>::ldumaxalh(self, op0, op1, op2);
12666    }
12667    pub fn ldumaxb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12668    where
12669        Self: LdumaxbEmitter<T0, T1, T2>,
12670    {
12671        <Self as LdumaxbEmitter<T0, T1, T2>>::ldumaxb(self, op0, op1, op2);
12672    }
12673    pub fn ldumaxh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12674    where
12675        Self: LdumaxhEmitter<T0, T1, T2>,
12676    {
12677        <Self as LdumaxhEmitter<T0, T1, T2>>::ldumaxh(self, op0, op1, op2);
12678    }
12679    pub fn ldumaxl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12680    where
12681        Self: LdumaxlEmitter<T0, T1, T2>,
12682    {
12683        <Self as LdumaxlEmitter<T0, T1, T2>>::ldumaxl(self, op0, op1, op2);
12684    }
12685    pub fn ldumaxlb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12686    where
12687        Self: LdumaxlbEmitter<T0, T1, T2>,
12688    {
12689        <Self as LdumaxlbEmitter<T0, T1, T2>>::ldumaxlb(self, op0, op1, op2);
12690    }
12691    pub fn ldumaxlh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12692    where
12693        Self: LdumaxlhEmitter<T0, T1, T2>,
12694    {
12695        <Self as LdumaxlhEmitter<T0, T1, T2>>::ldumaxlh(self, op0, op1, op2);
12696    }
12697    pub fn ldumin<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12698    where
12699        Self: LduminEmitter<T0, T1, T2>,
12700    {
12701        <Self as LduminEmitter<T0, T1, T2>>::ldumin(self, op0, op1, op2);
12702    }
12703    pub fn ldumina<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12704    where
12705        Self: LduminaEmitter<T0, T1, T2>,
12706    {
12707        <Self as LduminaEmitter<T0, T1, T2>>::ldumina(self, op0, op1, op2);
12708    }
12709    pub fn lduminab<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12710    where
12711        Self: LduminabEmitter<T0, T1, T2>,
12712    {
12713        <Self as LduminabEmitter<T0, T1, T2>>::lduminab(self, op0, op1, op2);
12714    }
12715    pub fn lduminah<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12716    where
12717        Self: LduminahEmitter<T0, T1, T2>,
12718    {
12719        <Self as LduminahEmitter<T0, T1, T2>>::lduminah(self, op0, op1, op2);
12720    }
12721    pub fn lduminal<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12722    where
12723        Self: LduminalEmitter<T0, T1, T2>,
12724    {
12725        <Self as LduminalEmitter<T0, T1, T2>>::lduminal(self, op0, op1, op2);
12726    }
12727    pub fn lduminalb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12728    where
12729        Self: LduminalbEmitter<T0, T1, T2>,
12730    {
12731        <Self as LduminalbEmitter<T0, T1, T2>>::lduminalb(self, op0, op1, op2);
12732    }
12733    pub fn lduminalh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12734    where
12735        Self: LduminalhEmitter<T0, T1, T2>,
12736    {
12737        <Self as LduminalhEmitter<T0, T1, T2>>::lduminalh(self, op0, op1, op2);
12738    }
12739    pub fn lduminb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12740    where
12741        Self: LduminbEmitter<T0, T1, T2>,
12742    {
12743        <Self as LduminbEmitter<T0, T1, T2>>::lduminb(self, op0, op1, op2);
12744    }
12745    pub fn lduminh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12746    where
12747        Self: LduminhEmitter<T0, T1, T2>,
12748    {
12749        <Self as LduminhEmitter<T0, T1, T2>>::lduminh(self, op0, op1, op2);
12750    }
12751    pub fn lduminl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12752    where
12753        Self: LduminlEmitter<T0, T1, T2>,
12754    {
12755        <Self as LduminlEmitter<T0, T1, T2>>::lduminl(self, op0, op1, op2);
12756    }
12757    pub fn lduminlb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12758    where
12759        Self: LduminlbEmitter<T0, T1, T2>,
12760    {
12761        <Self as LduminlbEmitter<T0, T1, T2>>::lduminlb(self, op0, op1, op2);
12762    }
12763    pub fn lduminlh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12764    where
12765        Self: LduminlhEmitter<T0, T1, T2>,
12766    {
12767        <Self as LduminlhEmitter<T0, T1, T2>>::lduminlh(self, op0, op1, op2);
12768    }
12769    pub fn ldur<T0, T1>(&mut self, op0: T0, op1: T1)
12770    where
12771        Self: LdurEmitter<T0, T1>,
12772    {
12773        <Self as LdurEmitter<T0, T1>>::ldur(self, op0, op1);
12774    }
12775    pub fn ldurb<T0, T1>(&mut self, op0: T0, op1: T1)
12776    where
12777        Self: LdurbEmitter<T0, T1>,
12778    {
12779        <Self as LdurbEmitter<T0, T1>>::ldurb(self, op0, op1);
12780    }
12781    pub fn ldurh<T0, T1>(&mut self, op0: T0, op1: T1)
12782    where
12783        Self: LdurhEmitter<T0, T1>,
12784    {
12785        <Self as LdurhEmitter<T0, T1>>::ldurh(self, op0, op1);
12786    }
12787    pub fn ldursb<T0, T1>(&mut self, op0: T0, op1: T1)
12788    where
12789        Self: LdursbEmitter<T0, T1>,
12790    {
12791        <Self as LdursbEmitter<T0, T1>>::ldursb(self, op0, op1);
12792    }
12793    pub fn ldursh<T0, T1>(&mut self, op0: T0, op1: T1)
12794    where
12795        Self: LdurshEmitter<T0, T1>,
12796    {
12797        <Self as LdurshEmitter<T0, T1>>::ldursh(self, op0, op1);
12798    }
12799    pub fn ldursw<T0, T1>(&mut self, op0: T0, op1: T1)
12800    where
12801        Self: LdurswEmitter<T0, T1>,
12802    {
12803        <Self as LdurswEmitter<T0, T1>>::ldursw(self, op0, op1);
12804    }
12805    pub fn ldxp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12806    where
12807        Self: LdxpEmitter<T0, T1, T2>,
12808    {
12809        <Self as LdxpEmitter<T0, T1, T2>>::ldxp(self, op0, op1, op2);
12810    }
12811    pub fn ldaxp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12812    where
12813        Self: LdaxpEmitter<T0, T1, T2>,
12814    {
12815        <Self as LdaxpEmitter<T0, T1, T2>>::ldaxp(self, op0, op1, op2);
12816    }
12817    pub fn ldxr<T0, T1>(&mut self, op0: T0, op1: T1)
12818    where
12819        Self: LdxrEmitter<T0, T1>,
12820    {
12821        <Self as LdxrEmitter<T0, T1>>::ldxr(self, op0, op1);
12822    }
12823    pub fn ldxrb<T0, T1>(&mut self, op0: T0, op1: T1)
12824    where
12825        Self: LdxrbEmitter<T0, T1>,
12826    {
12827        <Self as LdxrbEmitter<T0, T1>>::ldxrb(self, op0, op1);
12828    }
12829    pub fn ldxrh<T0, T1>(&mut self, op0: T0, op1: T1)
12830    where
12831        Self: LdxrhEmitter<T0, T1>,
12832    {
12833        <Self as LdxrhEmitter<T0, T1>>::ldxrh(self, op0, op1);
12834    }
12835    pub fn prfm<T0, T1>(&mut self, op0: T0, op1: T1)
12836    where
12837        Self: PrfmEmitter<T0, T1>,
12838    {
12839        <Self as PrfmEmitter<T0, T1>>::prfm(self, op0, op1);
12840    }
12841    pub fn stadd<T0, T1>(&mut self, op0: T0, op1: T1)
12842    where
12843        Self: StaddEmitter<T0, T1>,
12844    {
12845        <Self as StaddEmitter<T0, T1>>::stadd(self, op0, op1);
12846    }
12847    pub fn staddb<T0, T1>(&mut self, op0: T0, op1: T1)
12848    where
12849        Self: StaddbEmitter<T0, T1>,
12850    {
12851        <Self as StaddbEmitter<T0, T1>>::staddb(self, op0, op1);
12852    }
12853    pub fn staddh<T0, T1>(&mut self, op0: T0, op1: T1)
12854    where
12855        Self: StaddhEmitter<T0, T1>,
12856    {
12857        <Self as StaddhEmitter<T0, T1>>::staddh(self, op0, op1);
12858    }
12859    pub fn staddl<T0, T1>(&mut self, op0: T0, op1: T1)
12860    where
12861        Self: StaddlEmitter<T0, T1>,
12862    {
12863        <Self as StaddlEmitter<T0, T1>>::staddl(self, op0, op1);
12864    }
12865    pub fn staddlb<T0, T1>(&mut self, op0: T0, op1: T1)
12866    where
12867        Self: StaddlbEmitter<T0, T1>,
12868    {
12869        <Self as StaddlbEmitter<T0, T1>>::staddlb(self, op0, op1);
12870    }
12871    pub fn staddlh<T0, T1>(&mut self, op0: T0, op1: T1)
12872    where
12873        Self: StaddlhEmitter<T0, T1>,
12874    {
12875        <Self as StaddlhEmitter<T0, T1>>::staddlh(self, op0, op1);
12876    }
12877    pub fn stclr<T0, T1>(&mut self, op0: T0, op1: T1)
12878    where
12879        Self: StclrEmitter<T0, T1>,
12880    {
12881        <Self as StclrEmitter<T0, T1>>::stclr(self, op0, op1);
12882    }
12883    pub fn stclrb<T0, T1>(&mut self, op0: T0, op1: T1)
12884    where
12885        Self: StclrbEmitter<T0, T1>,
12886    {
12887        <Self as StclrbEmitter<T0, T1>>::stclrb(self, op0, op1);
12888    }
12889    pub fn stclrh<T0, T1>(&mut self, op0: T0, op1: T1)
12890    where
12891        Self: StclrhEmitter<T0, T1>,
12892    {
12893        <Self as StclrhEmitter<T0, T1>>::stclrh(self, op0, op1);
12894    }
12895    pub fn stclrl<T0, T1>(&mut self, op0: T0, op1: T1)
12896    where
12897        Self: StclrlEmitter<T0, T1>,
12898    {
12899        <Self as StclrlEmitter<T0, T1>>::stclrl(self, op0, op1);
12900    }
12901    pub fn stclrlb<T0, T1>(&mut self, op0: T0, op1: T1)
12902    where
12903        Self: StclrlbEmitter<T0, T1>,
12904    {
12905        <Self as StclrlbEmitter<T0, T1>>::stclrlb(self, op0, op1);
12906    }
12907    pub fn stclrlh<T0, T1>(&mut self, op0: T0, op1: T1)
12908    where
12909        Self: StclrlhEmitter<T0, T1>,
12910    {
12911        <Self as StclrlhEmitter<T0, T1>>::stclrlh(self, op0, op1);
12912    }
12913    pub fn steor<T0, T1>(&mut self, op0: T0, op1: T1)
12914    where
12915        Self: SteorEmitter<T0, T1>,
12916    {
12917        <Self as SteorEmitter<T0, T1>>::steor(self, op0, op1);
12918    }
12919    pub fn steorb<T0, T1>(&mut self, op0: T0, op1: T1)
12920    where
12921        Self: SteorbEmitter<T0, T1>,
12922    {
12923        <Self as SteorbEmitter<T0, T1>>::steorb(self, op0, op1);
12924    }
12925    pub fn steorh<T0, T1>(&mut self, op0: T0, op1: T1)
12926    where
12927        Self: SteorhEmitter<T0, T1>,
12928    {
12929        <Self as SteorhEmitter<T0, T1>>::steorh(self, op0, op1);
12930    }
12931    pub fn steorl<T0, T1>(&mut self, op0: T0, op1: T1)
12932    where
12933        Self: SteorlEmitter<T0, T1>,
12934    {
12935        <Self as SteorlEmitter<T0, T1>>::steorl(self, op0, op1);
12936    }
12937    pub fn steorlb<T0, T1>(&mut self, op0: T0, op1: T1)
12938    where
12939        Self: SteorlbEmitter<T0, T1>,
12940    {
12941        <Self as SteorlbEmitter<T0, T1>>::steorlb(self, op0, op1);
12942    }
12943    pub fn steorlh<T0, T1>(&mut self, op0: T0, op1: T1)
12944    where
12945        Self: SteorlhEmitter<T0, T1>,
12946    {
12947        <Self as SteorlhEmitter<T0, T1>>::steorlh(self, op0, op1);
12948    }
12949    pub fn stllr<T0, T1>(&mut self, op0: T0, op1: T1)
12950    where
12951        Self: StllrEmitter<T0, T1>,
12952    {
12953        <Self as StllrEmitter<T0, T1>>::stllr(self, op0, op1);
12954    }
12955    pub fn stllrb<T0, T1>(&mut self, op0: T0, op1: T1)
12956    where
12957        Self: StllrbEmitter<T0, T1>,
12958    {
12959        <Self as StllrbEmitter<T0, T1>>::stllrb(self, op0, op1);
12960    }
12961    pub fn stllrh<T0, T1>(&mut self, op0: T0, op1: T1)
12962    where
12963        Self: StllrhEmitter<T0, T1>,
12964    {
12965        <Self as StllrhEmitter<T0, T1>>::stllrh(self, op0, op1);
12966    }
12967    pub fn stlr<T0, T1>(&mut self, op0: T0, op1: T1)
12968    where
12969        Self: StlrEmitter<T0, T1>,
12970    {
12971        <Self as StlrEmitter<T0, T1>>::stlr(self, op0, op1);
12972    }
12973    pub fn stlrb<T0, T1>(&mut self, op0: T0, op1: T1)
12974    where
12975        Self: StlrbEmitter<T0, T1>,
12976    {
12977        <Self as StlrbEmitter<T0, T1>>::stlrb(self, op0, op1);
12978    }
12979    pub fn stlrh<T0, T1>(&mut self, op0: T0, op1: T1)
12980    where
12981        Self: StlrhEmitter<T0, T1>,
12982    {
12983        <Self as StlrhEmitter<T0, T1>>::stlrh(self, op0, op1);
12984    }
12985    pub fn stlxr<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12986    where
12987        Self: StlxrEmitter<T0, T1, T2>,
12988    {
12989        <Self as StlxrEmitter<T0, T1, T2>>::stlxr(self, op0, op1, op2);
12990    }
12991    pub fn stlxrb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12992    where
12993        Self: StlxrbEmitter<T0, T1, T2>,
12994    {
12995        <Self as StlxrbEmitter<T0, T1, T2>>::stlxrb(self, op0, op1, op2);
12996    }
12997    pub fn stlxrh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
12998    where
12999        Self: StlxrhEmitter<T0, T1, T2>,
13000    {
13001        <Self as StlxrhEmitter<T0, T1, T2>>::stlxrh(self, op0, op1, op2);
13002    }
13003    pub fn stnp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13004    where
13005        Self: StnpEmitter<T0, T1, T2>,
13006    {
13007        <Self as StnpEmitter<T0, T1, T2>>::stnp(self, op0, op1, op2);
13008    }
13009    pub fn stp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13010    where
13011        Self: StpEmitter<T0, T1, T2>,
13012    {
13013        <Self as StpEmitter<T0, T1, T2>>::stp(self, op0, op1, op2);
13014    }
13015    pub fn str<T0, T1>(&mut self, op0: T0, op1: T1)
13016    where
13017        Self: StrEmitter<T0, T1>,
13018    {
13019        <Self as StrEmitter<T0, T1>>::str(self, op0, op1);
13020    }
13021    pub fn strb<T0, T1>(&mut self, op0: T0, op1: T1)
13022    where
13023        Self: StrbEmitter<T0, T1>,
13024    {
13025        <Self as StrbEmitter<T0, T1>>::strb(self, op0, op1);
13026    }
13027    pub fn strh<T0, T1>(&mut self, op0: T0, op1: T1)
13028    where
13029        Self: StrhEmitter<T0, T1>,
13030    {
13031        <Self as StrhEmitter<T0, T1>>::strh(self, op0, op1);
13032    }
13033    pub fn stset<T0, T1>(&mut self, op0: T0, op1: T1)
13034    where
13035        Self: StsetEmitter<T0, T1>,
13036    {
13037        <Self as StsetEmitter<T0, T1>>::stset(self, op0, op1);
13038    }
13039    pub fn stsetb<T0, T1>(&mut self, op0: T0, op1: T1)
13040    where
13041        Self: StsetbEmitter<T0, T1>,
13042    {
13043        <Self as StsetbEmitter<T0, T1>>::stsetb(self, op0, op1);
13044    }
13045    pub fn stseth<T0, T1>(&mut self, op0: T0, op1: T1)
13046    where
13047        Self: StsethEmitter<T0, T1>,
13048    {
13049        <Self as StsethEmitter<T0, T1>>::stseth(self, op0, op1);
13050    }
13051    pub fn stsetl<T0, T1>(&mut self, op0: T0, op1: T1)
13052    where
13053        Self: StsetlEmitter<T0, T1>,
13054    {
13055        <Self as StsetlEmitter<T0, T1>>::stsetl(self, op0, op1);
13056    }
13057    pub fn stsetlb<T0, T1>(&mut self, op0: T0, op1: T1)
13058    where
13059        Self: StsetlbEmitter<T0, T1>,
13060    {
13061        <Self as StsetlbEmitter<T0, T1>>::stsetlb(self, op0, op1);
13062    }
13063    pub fn stsetlh<T0, T1>(&mut self, op0: T0, op1: T1)
13064    where
13065        Self: StsetlhEmitter<T0, T1>,
13066    {
13067        <Self as StsetlhEmitter<T0, T1>>::stsetlh(self, op0, op1);
13068    }
13069    pub fn stsmax<T0, T1>(&mut self, op0: T0, op1: T1)
13070    where
13071        Self: StsmaxEmitter<T0, T1>,
13072    {
13073        <Self as StsmaxEmitter<T0, T1>>::stsmax(self, op0, op1);
13074    }
13075    pub fn stsmaxb<T0, T1>(&mut self, op0: T0, op1: T1)
13076    where
13077        Self: StsmaxbEmitter<T0, T1>,
13078    {
13079        <Self as StsmaxbEmitter<T0, T1>>::stsmaxb(self, op0, op1);
13080    }
13081    pub fn stsmaxh<T0, T1>(&mut self, op0: T0, op1: T1)
13082    where
13083        Self: StsmaxhEmitter<T0, T1>,
13084    {
13085        <Self as StsmaxhEmitter<T0, T1>>::stsmaxh(self, op0, op1);
13086    }
13087    pub fn stsmaxl<T0, T1>(&mut self, op0: T0, op1: T1)
13088    where
13089        Self: StsmaxlEmitter<T0, T1>,
13090    {
13091        <Self as StsmaxlEmitter<T0, T1>>::stsmaxl(self, op0, op1);
13092    }
13093    pub fn stsmaxlb<T0, T1>(&mut self, op0: T0, op1: T1)
13094    where
13095        Self: StsmaxlbEmitter<T0, T1>,
13096    {
13097        <Self as StsmaxlbEmitter<T0, T1>>::stsmaxlb(self, op0, op1);
13098    }
13099    pub fn stsmaxlh<T0, T1>(&mut self, op0: T0, op1: T1)
13100    where
13101        Self: StsmaxlhEmitter<T0, T1>,
13102    {
13103        <Self as StsmaxlhEmitter<T0, T1>>::stsmaxlh(self, op0, op1);
13104    }
13105    pub fn stsmin<T0, T1>(&mut self, op0: T0, op1: T1)
13106    where
13107        Self: StsminEmitter<T0, T1>,
13108    {
13109        <Self as StsminEmitter<T0, T1>>::stsmin(self, op0, op1);
13110    }
13111    pub fn stsminb<T0, T1>(&mut self, op0: T0, op1: T1)
13112    where
13113        Self: StsminbEmitter<T0, T1>,
13114    {
13115        <Self as StsminbEmitter<T0, T1>>::stsminb(self, op0, op1);
13116    }
13117    pub fn stsminh<T0, T1>(&mut self, op0: T0, op1: T1)
13118    where
13119        Self: StsminhEmitter<T0, T1>,
13120    {
13121        <Self as StsminhEmitter<T0, T1>>::stsminh(self, op0, op1);
13122    }
13123    pub fn stsminl<T0, T1>(&mut self, op0: T0, op1: T1)
13124    where
13125        Self: StsminlEmitter<T0, T1>,
13126    {
13127        <Self as StsminlEmitter<T0, T1>>::stsminl(self, op0, op1);
13128    }
13129    pub fn stsminlb<T0, T1>(&mut self, op0: T0, op1: T1)
13130    where
13131        Self: StsminlbEmitter<T0, T1>,
13132    {
13133        <Self as StsminlbEmitter<T0, T1>>::stsminlb(self, op0, op1);
13134    }
13135    pub fn stsminlh<T0, T1>(&mut self, op0: T0, op1: T1)
13136    where
13137        Self: StsminlhEmitter<T0, T1>,
13138    {
13139        <Self as StsminlhEmitter<T0, T1>>::stsminlh(self, op0, op1);
13140    }
13141    pub fn sttr<T0, T1>(&mut self, op0: T0, op1: T1)
13142    where
13143        Self: SttrEmitter<T0, T1>,
13144    {
13145        <Self as SttrEmitter<T0, T1>>::sttr(self, op0, op1);
13146    }
13147    pub fn sttrb<T0, T1>(&mut self, op0: T0, op1: T1)
13148    where
13149        Self: SttrbEmitter<T0, T1>,
13150    {
13151        <Self as SttrbEmitter<T0, T1>>::sttrb(self, op0, op1);
13152    }
13153    pub fn sttrh<T0, T1>(&mut self, op0: T0, op1: T1)
13154    where
13155        Self: SttrhEmitter<T0, T1>,
13156    {
13157        <Self as SttrhEmitter<T0, T1>>::sttrh(self, op0, op1);
13158    }
13159    pub fn stumax<T0, T1>(&mut self, op0: T0, op1: T1)
13160    where
13161        Self: StumaxEmitter<T0, T1>,
13162    {
13163        <Self as StumaxEmitter<T0, T1>>::stumax(self, op0, op1);
13164    }
13165    pub fn stumaxb<T0, T1>(&mut self, op0: T0, op1: T1)
13166    where
13167        Self: StumaxbEmitter<T0, T1>,
13168    {
13169        <Self as StumaxbEmitter<T0, T1>>::stumaxb(self, op0, op1);
13170    }
13171    pub fn stumaxh<T0, T1>(&mut self, op0: T0, op1: T1)
13172    where
13173        Self: StumaxhEmitter<T0, T1>,
13174    {
13175        <Self as StumaxhEmitter<T0, T1>>::stumaxh(self, op0, op1);
13176    }
13177    pub fn stumaxl<T0, T1>(&mut self, op0: T0, op1: T1)
13178    where
13179        Self: StumaxlEmitter<T0, T1>,
13180    {
13181        <Self as StumaxlEmitter<T0, T1>>::stumaxl(self, op0, op1);
13182    }
13183    pub fn stumaxlb<T0, T1>(&mut self, op0: T0, op1: T1)
13184    where
13185        Self: StumaxlbEmitter<T0, T1>,
13186    {
13187        <Self as StumaxlbEmitter<T0, T1>>::stumaxlb(self, op0, op1);
13188    }
13189    pub fn stumaxlh<T0, T1>(&mut self, op0: T0, op1: T1)
13190    where
13191        Self: StumaxlhEmitter<T0, T1>,
13192    {
13193        <Self as StumaxlhEmitter<T0, T1>>::stumaxlh(self, op0, op1);
13194    }
13195    pub fn stumin<T0, T1>(&mut self, op0: T0, op1: T1)
13196    where
13197        Self: StuminEmitter<T0, T1>,
13198    {
13199        <Self as StuminEmitter<T0, T1>>::stumin(self, op0, op1);
13200    }
13201    pub fn stuminb<T0, T1>(&mut self, op0: T0, op1: T1)
13202    where
13203        Self: StuminbEmitter<T0, T1>,
13204    {
13205        <Self as StuminbEmitter<T0, T1>>::stuminb(self, op0, op1);
13206    }
13207    pub fn stuminh<T0, T1>(&mut self, op0: T0, op1: T1)
13208    where
13209        Self: StuminhEmitter<T0, T1>,
13210    {
13211        <Self as StuminhEmitter<T0, T1>>::stuminh(self, op0, op1);
13212    }
13213    pub fn stuminl<T0, T1>(&mut self, op0: T0, op1: T1)
13214    where
13215        Self: StuminlEmitter<T0, T1>,
13216    {
13217        <Self as StuminlEmitter<T0, T1>>::stuminl(self, op0, op1);
13218    }
13219    pub fn stuminlb<T0, T1>(&mut self, op0: T0, op1: T1)
13220    where
13221        Self: StuminlbEmitter<T0, T1>,
13222    {
13223        <Self as StuminlbEmitter<T0, T1>>::stuminlb(self, op0, op1);
13224    }
13225    pub fn stuminlh<T0, T1>(&mut self, op0: T0, op1: T1)
13226    where
13227        Self: StuminlhEmitter<T0, T1>,
13228    {
13229        <Self as StuminlhEmitter<T0, T1>>::stuminlh(self, op0, op1);
13230    }
13231    pub fn stur<T0, T1>(&mut self, op0: T0, op1: T1)
13232    where
13233        Self: SturEmitter<T0, T1>,
13234    {
13235        <Self as SturEmitter<T0, T1>>::stur(self, op0, op1);
13236    }
13237    pub fn sturb<T0, T1>(&mut self, op0: T0, op1: T1)
13238    where
13239        Self: SturbEmitter<T0, T1>,
13240    {
13241        <Self as SturbEmitter<T0, T1>>::sturb(self, op0, op1);
13242    }
13243    pub fn sturh<T0, T1>(&mut self, op0: T0, op1: T1)
13244    where
13245        Self: SturhEmitter<T0, T1>,
13246    {
13247        <Self as SturhEmitter<T0, T1>>::sturh(self, op0, op1);
13248    }
13249    pub fn stxp<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
13250    where
13251        Self: StxpEmitter<T0, T1, T2, T3>,
13252    {
13253        <Self as StxpEmitter<T0, T1, T2, T3>>::stxp(self, op0, op1, op2, op3);
13254    }
13255    pub fn stlxp<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
13256    where
13257        Self: StlxpEmitter<T0, T1, T2, T3>,
13258    {
13259        <Self as StlxpEmitter<T0, T1, T2, T3>>::stlxp(self, op0, op1, op2, op3);
13260    }
13261    pub fn stxr<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13262    where
13263        Self: StxrEmitter<T0, T1, T2>,
13264    {
13265        <Self as StxrEmitter<T0, T1, T2>>::stxr(self, op0, op1, op2);
13266    }
13267    pub fn stxrb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13268    where
13269        Self: StxrbEmitter<T0, T1, T2>,
13270    {
13271        <Self as StxrbEmitter<T0, T1, T2>>::stxrb(self, op0, op1, op2);
13272    }
13273    pub fn stxrh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13274    where
13275        Self: StxrhEmitter<T0, T1, T2>,
13276    {
13277        <Self as StxrhEmitter<T0, T1, T2>>::stxrh(self, op0, op1, op2);
13278    }
13279    pub fn swp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13280    where
13281        Self: SwpEmitter<T0, T1, T2>,
13282    {
13283        <Self as SwpEmitter<T0, T1, T2>>::swp(self, op0, op1, op2);
13284    }
13285    pub fn swpa<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13286    where
13287        Self: SwpaEmitter<T0, T1, T2>,
13288    {
13289        <Self as SwpaEmitter<T0, T1, T2>>::swpa(self, op0, op1, op2);
13290    }
13291    pub fn swpab<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13292    where
13293        Self: SwpabEmitter<T0, T1, T2>,
13294    {
13295        <Self as SwpabEmitter<T0, T1, T2>>::swpab(self, op0, op1, op2);
13296    }
13297    pub fn swpah<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13298    where
13299        Self: SwpahEmitter<T0, T1, T2>,
13300    {
13301        <Self as SwpahEmitter<T0, T1, T2>>::swpah(self, op0, op1, op2);
13302    }
13303    pub fn swpal<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13304    where
13305        Self: SwpalEmitter<T0, T1, T2>,
13306    {
13307        <Self as SwpalEmitter<T0, T1, T2>>::swpal(self, op0, op1, op2);
13308    }
13309    pub fn swpalb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13310    where
13311        Self: SwpalbEmitter<T0, T1, T2>,
13312    {
13313        <Self as SwpalbEmitter<T0, T1, T2>>::swpalb(self, op0, op1, op2);
13314    }
13315    pub fn swpalh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13316    where
13317        Self: SwpalhEmitter<T0, T1, T2>,
13318    {
13319        <Self as SwpalhEmitter<T0, T1, T2>>::swpalh(self, op0, op1, op2);
13320    }
13321    pub fn swpb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13322    where
13323        Self: SwpbEmitter<T0, T1, T2>,
13324    {
13325        <Self as SwpbEmitter<T0, T1, T2>>::swpb(self, op0, op1, op2);
13326    }
13327    pub fn swph<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13328    where
13329        Self: SwphEmitter<T0, T1, T2>,
13330    {
13331        <Self as SwphEmitter<T0, T1, T2>>::swph(self, op0, op1, op2);
13332    }
13333    pub fn swpl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13334    where
13335        Self: SwplEmitter<T0, T1, T2>,
13336    {
13337        <Self as SwplEmitter<T0, T1, T2>>::swpl(self, op0, op1, op2);
13338    }
13339    pub fn swplb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13340    where
13341        Self: SwplbEmitter<T0, T1, T2>,
13342    {
13343        <Self as SwplbEmitter<T0, T1, T2>>::swplb(self, op0, op1, op2);
13344    }
13345    pub fn swplh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13346    where
13347        Self: SwplhEmitter<T0, T1, T2>,
13348    {
13349        <Self as SwplhEmitter<T0, T1, T2>>::swplh(self, op0, op1, op2);
13350    }
13351    pub fn bti<T0>(&mut self, op0: T0)
13352    where
13353        Self: BtiEmitter<T0>,
13354    {
13355        <Self as BtiEmitter<T0>>::bti(self, op0);
13356    }
13357    pub fn chkfeat<T0>(&mut self, op0: T0)
13358    where
13359        Self: ChkfeatEmitter<T0>,
13360    {
13361        <Self as ChkfeatEmitter<T0>>::chkfeat(self, op0);
13362    }
13363    pub fn clrbhb(&mut self)
13364    where
13365        Self: ClrbhbEmitter,
13366    {
13367        <Self as ClrbhbEmitter>::clrbhb(self);
13368    }
13369    pub fn crc32b<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13370    where
13371        Self: Crc32bEmitter<T0, T1, T2>,
13372    {
13373        <Self as Crc32bEmitter<T0, T1, T2>>::crc32b(self, op0, op1, op2);
13374    }
13375    pub fn crc32h<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13376    where
13377        Self: Crc32hEmitter<T0, T1, T2>,
13378    {
13379        <Self as Crc32hEmitter<T0, T1, T2>>::crc32h(self, op0, op1, op2);
13380    }
13381    pub fn crc32w<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13382    where
13383        Self: Crc32wEmitter<T0, T1, T2>,
13384    {
13385        <Self as Crc32wEmitter<T0, T1, T2>>::crc32w(self, op0, op1, op2);
13386    }
13387    pub fn crc32x<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13388    where
13389        Self: Crc32xEmitter<T0, T1, T2>,
13390    {
13391        <Self as Crc32xEmitter<T0, T1, T2>>::crc32x(self, op0, op1, op2);
13392    }
13393    pub fn crc32cb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13394    where
13395        Self: Crc32cbEmitter<T0, T1, T2>,
13396    {
13397        <Self as Crc32cbEmitter<T0, T1, T2>>::crc32cb(self, op0, op1, op2);
13398    }
13399    pub fn crc32ch<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13400    where
13401        Self: Crc32chEmitter<T0, T1, T2>,
13402    {
13403        <Self as Crc32chEmitter<T0, T1, T2>>::crc32ch(self, op0, op1, op2);
13404    }
13405    pub fn crc32cw<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13406    where
13407        Self: Crc32cwEmitter<T0, T1, T2>,
13408    {
13409        <Self as Crc32cwEmitter<T0, T1, T2>>::crc32cw(self, op0, op1, op2);
13410    }
13411    pub fn crc32cx<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13412    where
13413        Self: Crc32cxEmitter<T0, T1, T2>,
13414    {
13415        <Self as Crc32cxEmitter<T0, T1, T2>>::crc32cx(self, op0, op1, op2);
13416    }
13417    pub fn abs<T0, T1>(&mut self, op0: T0, op1: T1)
13418    where
13419        Self: AbsEmitter<T0, T1>,
13420    {
13421        <Self as AbsEmitter<T0, T1>>::abs(self, op0, op1);
13422    }
13423    pub fn cnt<T0, T1>(&mut self, op0: T0, op1: T1)
13424    where
13425        Self: CntEmitter<T0, T1>,
13426    {
13427        <Self as CntEmitter<T0, T1>>::cnt(self, op0, op1);
13428    }
13429    pub fn ctz<T0, T1>(&mut self, op0: T0, op1: T1)
13430    where
13431        Self: CtzEmitter<T0, T1>,
13432    {
13433        <Self as CtzEmitter<T0, T1>>::ctz(self, op0, op1);
13434    }
13435    pub fn smax<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13436    where
13437        Self: SmaxEmitter<T0, T1, T2>,
13438    {
13439        <Self as SmaxEmitter<T0, T1, T2>>::smax(self, op0, op1, op2);
13440    }
13441    pub fn smin<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13442    where
13443        Self: SminEmitter<T0, T1, T2>,
13444    {
13445        <Self as SminEmitter<T0, T1, T2>>::smin(self, op0, op1, op2);
13446    }
13447    pub fn umax<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13448    where
13449        Self: UmaxEmitter<T0, T1, T2>,
13450    {
13451        <Self as UmaxEmitter<T0, T1, T2>>::umax(self, op0, op1, op2);
13452    }
13453    pub fn umin<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13454    where
13455        Self: UminEmitter<T0, T1, T2>,
13456    {
13457        <Self as UminEmitter<T0, T1, T2>>::umin(self, op0, op1, op2);
13458    }
13459    pub fn dgh(&mut self)
13460    where
13461        Self: DghEmitter,
13462    {
13463        <Self as DghEmitter>::dgh(self);
13464    }
13465    pub fn cfinv(&mut self)
13466    where
13467        Self: CfinvEmitter,
13468    {
13469        <Self as CfinvEmitter>::cfinv(self);
13470    }
13471    pub fn setf8<T0>(&mut self, op0: T0)
13472    where
13473        Self: Setf8Emitter<T0>,
13474    {
13475        <Self as Setf8Emitter<T0>>::setf8(self, op0);
13476    }
13477    pub fn setf16<T0>(&mut self, op0: T0)
13478    where
13479        Self: Setf16Emitter<T0>,
13480    {
13481        <Self as Setf16Emitter<T0>>::setf16(self, op0);
13482    }
13483    pub fn axflag(&mut self)
13484    where
13485        Self: AxflagEmitter,
13486    {
13487        <Self as AxflagEmitter>::axflag(self);
13488    }
13489    pub fn xaflag(&mut self)
13490    where
13491        Self: XaflagEmitter,
13492    {
13493        <Self as XaflagEmitter>::xaflag(self);
13494    }
13495    pub fn bc_eq<T0>(&mut self, op0: T0)
13496    where
13497        Self: BcEmitter<T0>,
13498    {
13499        <Self as BcEmitter<T0>>::bc_eq(self, op0);
13500    }
13501    pub fn bc_ne<T0>(&mut self, op0: T0)
13502    where
13503        Self: BcEmitter<T0>,
13504    {
13505        <Self as BcEmitter<T0>>::bc_ne(self, op0);
13506    }
13507    pub fn bc_cs<T0>(&mut self, op0: T0)
13508    where
13509        Self: BcEmitter<T0>,
13510    {
13511        <Self as BcEmitter<T0>>::bc_cs(self, op0);
13512    }
13513    pub fn bc_hs<T0>(&mut self, op0: T0)
13514    where
13515        Self: BcEmitter<T0>,
13516    {
13517        <Self as BcEmitter<T0>>::bc_hs(self, op0);
13518    }
13519    pub fn bc_cc<T0>(&mut self, op0: T0)
13520    where
13521        Self: BcEmitter<T0>,
13522    {
13523        <Self as BcEmitter<T0>>::bc_cc(self, op0);
13524    }
13525    pub fn bc_lo<T0>(&mut self, op0: T0)
13526    where
13527        Self: BcEmitter<T0>,
13528    {
13529        <Self as BcEmitter<T0>>::bc_lo(self, op0);
13530    }
13531    pub fn bc_mi<T0>(&mut self, op0: T0)
13532    where
13533        Self: BcEmitter<T0>,
13534    {
13535        <Self as BcEmitter<T0>>::bc_mi(self, op0);
13536    }
13537    pub fn bc_pl<T0>(&mut self, op0: T0)
13538    where
13539        Self: BcEmitter<T0>,
13540    {
13541        <Self as BcEmitter<T0>>::bc_pl(self, op0);
13542    }
13543    pub fn bc_vs<T0>(&mut self, op0: T0)
13544    where
13545        Self: BcEmitter<T0>,
13546    {
13547        <Self as BcEmitter<T0>>::bc_vs(self, op0);
13548    }
13549    pub fn bc_vc<T0>(&mut self, op0: T0)
13550    where
13551        Self: BcEmitter<T0>,
13552    {
13553        <Self as BcEmitter<T0>>::bc_vc(self, op0);
13554    }
13555    pub fn bc_hi<T0>(&mut self, op0: T0)
13556    where
13557        Self: BcEmitter<T0>,
13558    {
13559        <Self as BcEmitter<T0>>::bc_hi(self, op0);
13560    }
13561    pub fn bc_ls<T0>(&mut self, op0: T0)
13562    where
13563        Self: BcEmitter<T0>,
13564    {
13565        <Self as BcEmitter<T0>>::bc_ls(self, op0);
13566    }
13567    pub fn bc_ge<T0>(&mut self, op0: T0)
13568    where
13569        Self: BcEmitter<T0>,
13570    {
13571        <Self as BcEmitter<T0>>::bc_ge(self, op0);
13572    }
13573    pub fn bc_lt<T0>(&mut self, op0: T0)
13574    where
13575        Self: BcEmitter<T0>,
13576    {
13577        <Self as BcEmitter<T0>>::bc_lt(self, op0);
13578    }
13579    pub fn bc_gt<T0>(&mut self, op0: T0)
13580    where
13581        Self: BcEmitter<T0>,
13582    {
13583        <Self as BcEmitter<T0>>::bc_gt(self, op0);
13584    }
13585    pub fn bc_le<T0>(&mut self, op0: T0)
13586    where
13587        Self: BcEmitter<T0>,
13588    {
13589        <Self as BcEmitter<T0>>::bc_le(self, op0);
13590    }
13591    pub fn bc_al<T0>(&mut self, op0: T0)
13592    where
13593        Self: BcEmitter<T0>,
13594    {
13595        <Self as BcEmitter<T0>>::bc_al(self, op0);
13596    }
13597    pub fn autda<T0, T1>(&mut self, op0: T0, op1: T1)
13598    where
13599        Self: AutdaEmitter<T0, T1>,
13600    {
13601        <Self as AutdaEmitter<T0, T1>>::autda(self, op0, op1);
13602    }
13603    pub fn autdb<T0, T1>(&mut self, op0: T0, op1: T1)
13604    where
13605        Self: AutdbEmitter<T0, T1>,
13606    {
13607        <Self as AutdbEmitter<T0, T1>>::autdb(self, op0, op1);
13608    }
13609    pub fn autdza<T0>(&mut self, op0: T0)
13610    where
13611        Self: AutdzaEmitter<T0>,
13612    {
13613        <Self as AutdzaEmitter<T0>>::autdza(self, op0);
13614    }
13615    pub fn autdzb<T0>(&mut self, op0: T0)
13616    where
13617        Self: AutdzbEmitter<T0>,
13618    {
13619        <Self as AutdzbEmitter<T0>>::autdzb(self, op0);
13620    }
13621    pub fn autia<T0, T1>(&mut self, op0: T0, op1: T1)
13622    where
13623        Self: AutiaEmitter<T0, T1>,
13624    {
13625        <Self as AutiaEmitter<T0, T1>>::autia(self, op0, op1);
13626    }
13627    pub fn autia1716(&mut self)
13628    where
13629        Self: Autia1716Emitter,
13630    {
13631        <Self as Autia1716Emitter>::autia1716(self);
13632    }
13633    pub fn autiasp(&mut self)
13634    where
13635        Self: AutiaspEmitter,
13636    {
13637        <Self as AutiaspEmitter>::autiasp(self);
13638    }
13639    pub fn autiaz(&mut self)
13640    where
13641        Self: AutiazEmitter,
13642    {
13643        <Self as AutiazEmitter>::autiaz(self);
13644    }
13645    pub fn autib<T0, T1>(&mut self, op0: T0, op1: T1)
13646    where
13647        Self: AutibEmitter<T0, T1>,
13648    {
13649        <Self as AutibEmitter<T0, T1>>::autib(self, op0, op1);
13650    }
13651    pub fn autib1716(&mut self)
13652    where
13653        Self: Autib1716Emitter,
13654    {
13655        <Self as Autib1716Emitter>::autib1716(self);
13656    }
13657    pub fn autibsp(&mut self)
13658    where
13659        Self: AutibspEmitter,
13660    {
13661        <Self as AutibspEmitter>::autibsp(self);
13662    }
13663    pub fn autibz(&mut self)
13664    where
13665        Self: AutibzEmitter,
13666    {
13667        <Self as AutibzEmitter>::autibz(self);
13668    }
13669    pub fn autiza<T0>(&mut self, op0: T0)
13670    where
13671        Self: AutizaEmitter<T0>,
13672    {
13673        <Self as AutizaEmitter<T0>>::autiza(self, op0);
13674    }
13675    pub fn autizb<T0>(&mut self, op0: T0)
13676    where
13677        Self: AutizbEmitter<T0>,
13678    {
13679        <Self as AutizbEmitter<T0>>::autizb(self, op0);
13680    }
13681    pub fn gmi<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13682    where
13683        Self: GmiEmitter<T0, T1, T2>,
13684    {
13685        <Self as GmiEmitter<T0, T1, T2>>::gmi(self, op0, op1, op2);
13686    }
13687    pub fn cmpp<T0, T1>(&mut self, op0: T0, op1: T1)
13688    where
13689        Self: CmppEmitter<T0, T1>,
13690    {
13691        <Self as CmppEmitter<T0, T1>>::cmpp(self, op0, op1);
13692    }
13693    pub fn addg<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
13694    where
13695        Self: AddgEmitter<T0, T1, T2, T3>,
13696    {
13697        <Self as AddgEmitter<T0, T1, T2, T3>>::addg(self, op0, op1, op2, op3);
13698    }
13699    pub fn ldg<T0, T1>(&mut self, op0: T0, op1: T1)
13700    where
13701        Self: LdgEmitter<T0, T1>,
13702    {
13703        <Self as LdgEmitter<T0, T1>>::ldg(self, op0, op1);
13704    }
13705    pub fn ldgm<T0, T1>(&mut self, op0: T0, op1: T1)
13706    where
13707        Self: LdgmEmitter<T0, T1>,
13708    {
13709        <Self as LdgmEmitter<T0, T1>>::ldgm(self, op0, op1);
13710    }
13711    pub fn ldraa<T0, T1>(&mut self, op0: T0, op1: T1)
13712    where
13713        Self: LdraaEmitter<T0, T1>,
13714    {
13715        <Self as LdraaEmitter<T0, T1>>::ldraa(self, op0, op1);
13716    }
13717    pub fn ldrab<T0, T1>(&mut self, op0: T0, op1: T1)
13718    where
13719        Self: LdrabEmitter<T0, T1>,
13720    {
13721        <Self as LdrabEmitter<T0, T1>>::ldrab(self, op0, op1);
13722    }
13723    pub fn pacda<T0, T1>(&mut self, op0: T0, op1: T1)
13724    where
13725        Self: PacdaEmitter<T0, T1>,
13726    {
13727        <Self as PacdaEmitter<T0, T1>>::pacda(self, op0, op1);
13728    }
13729    pub fn pacdb<T0, T1>(&mut self, op0: T0, op1: T1)
13730    where
13731        Self: PacdbEmitter<T0, T1>,
13732    {
13733        <Self as PacdbEmitter<T0, T1>>::pacdb(self, op0, op1);
13734    }
13735    pub fn pacdza<T0>(&mut self, op0: T0)
13736    where
13737        Self: PacdzaEmitter<T0>,
13738    {
13739        <Self as PacdzaEmitter<T0>>::pacdza(self, op0);
13740    }
13741    pub fn pacdzb<T0>(&mut self, op0: T0)
13742    where
13743        Self: PacdzbEmitter<T0>,
13744    {
13745        <Self as PacdzbEmitter<T0>>::pacdzb(self, op0);
13746    }
13747    pub fn pacga<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13748    where
13749        Self: PacgaEmitter<T0, T1, T2>,
13750    {
13751        <Self as PacgaEmitter<T0, T1, T2>>::pacga(self, op0, op1, op2);
13752    }
13753    pub fn subp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13754    where
13755        Self: SubpEmitter<T0, T1, T2>,
13756    {
13757        <Self as SubpEmitter<T0, T1, T2>>::subp(self, op0, op1, op2);
13758    }
13759    pub fn subps<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13760    where
13761        Self: SubpsEmitter<T0, T1, T2>,
13762    {
13763        <Self as SubpsEmitter<T0, T1, T2>>::subps(self, op0, op1, op2);
13764    }
13765    pub fn subg<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
13766    where
13767        Self: SubgEmitter<T0, T1, T2, T3>,
13768    {
13769        <Self as SubgEmitter<T0, T1, T2, T3>>::subg(self, op0, op1, op2, op3);
13770    }
13771    pub fn st2g<T0, T1>(&mut self, op0: T0, op1: T1)
13772    where
13773        Self: St2gEmitter<T0, T1>,
13774    {
13775        <Self as St2gEmitter<T0, T1>>::st2g(self, op0, op1);
13776    }
13777    pub fn stg<T0, T1>(&mut self, op0: T0, op1: T1)
13778    where
13779        Self: StgEmitter<T0, T1>,
13780    {
13781        <Self as StgEmitter<T0, T1>>::stg(self, op0, op1);
13782    }
13783    pub fn stgp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13784    where
13785        Self: StgpEmitter<T0, T1, T2>,
13786    {
13787        <Self as StgpEmitter<T0, T1, T2>>::stgp(self, op0, op1, op2);
13788    }
13789    pub fn stgm<T0, T1>(&mut self, op0: T0, op1: T1)
13790    where
13791        Self: StgmEmitter<T0, T1>,
13792    {
13793        <Self as StgmEmitter<T0, T1>>::stgm(self, op0, op1);
13794    }
13795    pub fn stzg<T0, T1>(&mut self, op0: T0, op1: T1)
13796    where
13797        Self: StzgEmitter<T0, T1>,
13798    {
13799        <Self as StzgEmitter<T0, T1>>::stzg(self, op0, op1);
13800    }
13801    pub fn stz2g<T0, T1>(&mut self, op0: T0, op1: T1)
13802    where
13803        Self: Stz2gEmitter<T0, T1>,
13804    {
13805        <Self as Stz2gEmitter<T0, T1>>::stz2g(self, op0, op1);
13806    }
13807    pub fn stzgm<T0, T1>(&mut self, op0: T0, op1: T1)
13808    where
13809        Self: StzgmEmitter<T0, T1>,
13810    {
13811        <Self as StzgmEmitter<T0, T1>>::stzgm(self, op0, op1);
13812    }
13813    pub fn xpacd<T0>(&mut self, op0: T0)
13814    where
13815        Self: XpacdEmitter<T0>,
13816    {
13817        <Self as XpacdEmitter<T0>>::xpacd(self, op0);
13818    }
13819    pub fn xpaci<T0>(&mut self, op0: T0)
13820    where
13821        Self: XpaciEmitter<T0>,
13822    {
13823        <Self as XpaciEmitter<T0>>::xpaci(self, op0);
13824    }
13825    pub fn xpaclri(&mut self)
13826    where
13827        Self: XpaclriEmitter,
13828    {
13829        <Self as XpaclriEmitter>::xpaclri(self);
13830    }
13831    pub fn hint<T0>(&mut self, op0: T0)
13832    where
13833        Self: HintEmitter<T0>,
13834    {
13835        <Self as HintEmitter<T0>>::hint(self, op0);
13836    }
13837    pub fn nop(&mut self)
13838    where
13839        Self: NopEmitter,
13840    {
13841        <Self as NopEmitter>::nop(self);
13842    }
13843    pub fn sev(&mut self)
13844    where
13845        Self: SevEmitter,
13846    {
13847        <Self as SevEmitter>::sev(self);
13848    }
13849    pub fn sevl(&mut self)
13850    where
13851        Self: SevlEmitter,
13852    {
13853        <Self as SevlEmitter>::sevl(self);
13854    }
13855    pub fn wfe(&mut self)
13856    where
13857        Self: WfeEmitter,
13858    {
13859        <Self as WfeEmitter>::wfe(self);
13860    }
13861    pub fn wfi(&mut self)
13862    where
13863        Self: WfiEmitter,
13864    {
13865        <Self as WfiEmitter>::wfi(self);
13866    }
13867    pub fn r#yield(&mut self)
13868    where
13869        Self: YieldEmitter,
13870    {
13871        <Self as YieldEmitter>::r#yield(self);
13872    }
13873    pub fn addhn<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13874    where
13875        Self: AddhnEmitter<T0, T1, T2>,
13876    {
13877        <Self as AddhnEmitter<T0, T1, T2>>::addhn(self, op0, op1, op2);
13878    }
13879    pub fn addhn2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13880    where
13881        Self: Addhn2Emitter<T0, T1, T2>,
13882    {
13883        <Self as Addhn2Emitter<T0, T1, T2>>::addhn2(self, op0, op1, op2);
13884    }
13885    pub fn addp<T0, T1>(&mut self, op0: T0, op1: T1)
13886    where
13887        Self: AddpEmitter<T0, T1>,
13888    {
13889        <Self as AddpEmitter<T0, T1>>::addp(self, op0, op1);
13890    }
13891    pub fn addp_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13892    where
13893        Self: Addp3Emitter<T0, T1, T2>,
13894    {
13895        <Self as Addp3Emitter<T0, T1, T2>>::addp_3(self, op0, op1, op2);
13896    }
13897    pub fn addv<T0, T1>(&mut self, op0: T0, op1: T1)
13898    where
13899        Self: AddvEmitter<T0, T1>,
13900    {
13901        <Self as AddvEmitter<T0, T1>>::addv(self, op0, op1);
13902    }
13903    pub fn bic_2<T0, T1>(&mut self, op0: T0, op1: T1)
13904    where
13905        Self: Bic2Emitter<T0, T1>,
13906    {
13907        <Self as Bic2Emitter<T0, T1>>::bic_2(self, op0, op1);
13908    }
13909    pub fn bif<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13910    where
13911        Self: BifEmitter<T0, T1, T2>,
13912    {
13913        <Self as BifEmitter<T0, T1, T2>>::bif(self, op0, op1, op2);
13914    }
13915    pub fn bit<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13916    where
13917        Self: BitEmitter<T0, T1, T2>,
13918    {
13919        <Self as BitEmitter<T0, T1, T2>>::bit(self, op0, op1, op2);
13920    }
13921    pub fn bsl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13922    where
13923        Self: BslEmitter<T0, T1, T2>,
13924    {
13925        <Self as BslEmitter<T0, T1, T2>>::bsl(self, op0, op1, op2);
13926    }
13927    pub fn cmeq<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13928    where
13929        Self: CmeqEmitter<T0, T1, T2>,
13930    {
13931        <Self as CmeqEmitter<T0, T1, T2>>::cmeq(self, op0, op1, op2);
13932    }
13933    pub fn cmge<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13934    where
13935        Self: CmgeEmitter<T0, T1, T2>,
13936    {
13937        <Self as CmgeEmitter<T0, T1, T2>>::cmge(self, op0, op1, op2);
13938    }
13939    pub fn cmgt<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13940    where
13941        Self: CmgtEmitter<T0, T1, T2>,
13942    {
13943        <Self as CmgtEmitter<T0, T1, T2>>::cmgt(self, op0, op1, op2);
13944    }
13945    pub fn cmhi<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13946    where
13947        Self: CmhiEmitter<T0, T1, T2>,
13948    {
13949        <Self as CmhiEmitter<T0, T1, T2>>::cmhi(self, op0, op1, op2);
13950    }
13951    pub fn cmhs<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13952    where
13953        Self: CmhsEmitter<T0, T1, T2>,
13954    {
13955        <Self as CmhsEmitter<T0, T1, T2>>::cmhs(self, op0, op1, op2);
13956    }
13957    pub fn cmle<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13958    where
13959        Self: CmleEmitter<T0, T1, T2>,
13960    {
13961        <Self as CmleEmitter<T0, T1, T2>>::cmle(self, op0, op1, op2);
13962    }
13963    pub fn cmlt<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13964    where
13965        Self: CmltEmitter<T0, T1, T2>,
13966    {
13967        <Self as CmltEmitter<T0, T1, T2>>::cmlt(self, op0, op1, op2);
13968    }
13969    pub fn cmtst<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13970    where
13971        Self: CmtstEmitter<T0, T1, T2>,
13972    {
13973        <Self as CmtstEmitter<T0, T1, T2>>::cmtst(self, op0, op1, op2);
13974    }
13975    pub fn dup<T0, T1>(&mut self, op0: T0, op1: T1)
13976    where
13977        Self: DupEmitter<T0, T1>,
13978    {
13979        <Self as DupEmitter<T0, T1>>::dup(self, op0, op1);
13980    }
13981    pub fn ext<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
13982    where
13983        Self: ExtEmitter<T0, T1, T2, T3>,
13984    {
13985        <Self as ExtEmitter<T0, T1, T2, T3>>::ext(self, op0, op1, op2, op3);
13986    }
13987    pub fn fabd<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
13988    where
13989        Self: FabdEmitter<T0, T1, T2>,
13990    {
13991        <Self as FabdEmitter<T0, T1, T2>>::fabd(self, op0, op1, op2);
13992    }
13993    pub fn fabs<T0, T1>(&mut self, op0: T0, op1: T1)
13994    where
13995        Self: FabsEmitter<T0, T1>,
13996    {
13997        <Self as FabsEmitter<T0, T1>>::fabs(self, op0, op1);
13998    }
13999    pub fn facge<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14000    where
14001        Self: FacgeEmitter<T0, T1, T2>,
14002    {
14003        <Self as FacgeEmitter<T0, T1, T2>>::facge(self, op0, op1, op2);
14004    }
14005    pub fn facgt<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14006    where
14007        Self: FacgtEmitter<T0, T1, T2>,
14008    {
14009        <Self as FacgtEmitter<T0, T1, T2>>::facgt(self, op0, op1, op2);
14010    }
14011    pub fn fadd<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14012    where
14013        Self: FaddEmitter<T0, T1, T2>,
14014    {
14015        <Self as FaddEmitter<T0, T1, T2>>::fadd(self, op0, op1, op2);
14016    }
14017    pub fn faddp<T0, T1>(&mut self, op0: T0, op1: T1)
14018    where
14019        Self: FaddpEmitter<T0, T1>,
14020    {
14021        <Self as FaddpEmitter<T0, T1>>::faddp(self, op0, op1);
14022    }
14023    pub fn faddp_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14024    where
14025        Self: Faddp3Emitter<T0, T1, T2>,
14026    {
14027        <Self as Faddp3Emitter<T0, T1, T2>>::faddp_3(self, op0, op1, op2);
14028    }
14029    pub fn fccmp<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
14030    where
14031        Self: FccmpEmitter<T0, T1, T2, T3>,
14032    {
14033        <Self as FccmpEmitter<T0, T1, T2, T3>>::fccmp(self, op0, op1, op2, op3);
14034    }
14035    pub fn fccmpe<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
14036    where
14037        Self: FccmpeEmitter<T0, T1, T2, T3>,
14038    {
14039        <Self as FccmpeEmitter<T0, T1, T2, T3>>::fccmpe(self, op0, op1, op2, op3);
14040    }
14041    pub fn fcmeq<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14042    where
14043        Self: FcmeqEmitter<T0, T1, T2>,
14044    {
14045        <Self as FcmeqEmitter<T0, T1, T2>>::fcmeq(self, op0, op1, op2);
14046    }
14047    pub fn fcmge<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14048    where
14049        Self: FcmgeEmitter<T0, T1, T2>,
14050    {
14051        <Self as FcmgeEmitter<T0, T1, T2>>::fcmge(self, op0, op1, op2);
14052    }
14053    pub fn fcmgt<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14054    where
14055        Self: FcmgtEmitter<T0, T1, T2>,
14056    {
14057        <Self as FcmgtEmitter<T0, T1, T2>>::fcmgt(self, op0, op1, op2);
14058    }
14059    pub fn fcmle<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14060    where
14061        Self: FcmleEmitter<T0, T1, T2>,
14062    {
14063        <Self as FcmleEmitter<T0, T1, T2>>::fcmle(self, op0, op1, op2);
14064    }
14065    pub fn fcmlt<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14066    where
14067        Self: FcmltEmitter<T0, T1, T2>,
14068    {
14069        <Self as FcmltEmitter<T0, T1, T2>>::fcmlt(self, op0, op1, op2);
14070    }
14071    pub fn fcmp<T0, T1>(&mut self, op0: T0, op1: T1)
14072    where
14073        Self: FcmpEmitter<T0, T1>,
14074    {
14075        <Self as FcmpEmitter<T0, T1>>::fcmp(self, op0, op1);
14076    }
14077    pub fn fcmpe<T0, T1>(&mut self, op0: T0, op1: T1)
14078    where
14079        Self: FcmpeEmitter<T0, T1>,
14080    {
14081        <Self as FcmpeEmitter<T0, T1>>::fcmpe(self, op0, op1);
14082    }
14083    pub fn fcsel<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
14084    where
14085        Self: FcselEmitter<T0, T1, T2, T3>,
14086    {
14087        <Self as FcselEmitter<T0, T1, T2, T3>>::fcsel(self, op0, op1, op2, op3);
14088    }
14089    pub fn fcvt<T0, T1>(&mut self, op0: T0, op1: T1)
14090    where
14091        Self: FcvtEmitter<T0, T1>,
14092    {
14093        <Self as FcvtEmitter<T0, T1>>::fcvt(self, op0, op1);
14094    }
14095    pub fn fcvtas<T0, T1>(&mut self, op0: T0, op1: T1)
14096    where
14097        Self: FcvtasEmitter<T0, T1>,
14098    {
14099        <Self as FcvtasEmitter<T0, T1>>::fcvtas(self, op0, op1);
14100    }
14101    pub fn fcvtau<T0, T1>(&mut self, op0: T0, op1: T1)
14102    where
14103        Self: FcvtauEmitter<T0, T1>,
14104    {
14105        <Self as FcvtauEmitter<T0, T1>>::fcvtau(self, op0, op1);
14106    }
14107    pub fn fcvtl<T0, T1>(&mut self, op0: T0, op1: T1)
14108    where
14109        Self: FcvtlEmitter<T0, T1>,
14110    {
14111        <Self as FcvtlEmitter<T0, T1>>::fcvtl(self, op0, op1);
14112    }
14113    pub fn fcvtl2<T0, T1>(&mut self, op0: T0, op1: T1)
14114    where
14115        Self: Fcvtl2Emitter<T0, T1>,
14116    {
14117        <Self as Fcvtl2Emitter<T0, T1>>::fcvtl2(self, op0, op1);
14118    }
14119    pub fn fcvtms<T0, T1>(&mut self, op0: T0, op1: T1)
14120    where
14121        Self: FcvtmsEmitter<T0, T1>,
14122    {
14123        <Self as FcvtmsEmitter<T0, T1>>::fcvtms(self, op0, op1);
14124    }
14125    pub fn fcvtmu<T0, T1>(&mut self, op0: T0, op1: T1)
14126    where
14127        Self: FcvtmuEmitter<T0, T1>,
14128    {
14129        <Self as FcvtmuEmitter<T0, T1>>::fcvtmu(self, op0, op1);
14130    }
14131    pub fn fcvtn<T0, T1>(&mut self, op0: T0, op1: T1)
14132    where
14133        Self: FcvtnEmitter<T0, T1>,
14134    {
14135        <Self as FcvtnEmitter<T0, T1>>::fcvtn(self, op0, op1);
14136    }
14137    pub fn fcvtn2<T0, T1>(&mut self, op0: T0, op1: T1)
14138    where
14139        Self: Fcvtn2Emitter<T0, T1>,
14140    {
14141        <Self as Fcvtn2Emitter<T0, T1>>::fcvtn2(self, op0, op1);
14142    }
14143    pub fn fcvtns<T0, T1>(&mut self, op0: T0, op1: T1)
14144    where
14145        Self: FcvtnsEmitter<T0, T1>,
14146    {
14147        <Self as FcvtnsEmitter<T0, T1>>::fcvtns(self, op0, op1);
14148    }
14149    pub fn fcvtnu<T0, T1>(&mut self, op0: T0, op1: T1)
14150    where
14151        Self: FcvtnuEmitter<T0, T1>,
14152    {
14153        <Self as FcvtnuEmitter<T0, T1>>::fcvtnu(self, op0, op1);
14154    }
14155    pub fn fcvtps<T0, T1>(&mut self, op0: T0, op1: T1)
14156    where
14157        Self: FcvtpsEmitter<T0, T1>,
14158    {
14159        <Self as FcvtpsEmitter<T0, T1>>::fcvtps(self, op0, op1);
14160    }
14161    pub fn fcvtpu<T0, T1>(&mut self, op0: T0, op1: T1)
14162    where
14163        Self: FcvtpuEmitter<T0, T1>,
14164    {
14165        <Self as FcvtpuEmitter<T0, T1>>::fcvtpu(self, op0, op1);
14166    }
14167    pub fn fcvtxn<T0, T1>(&mut self, op0: T0, op1: T1)
14168    where
14169        Self: FcvtxnEmitter<T0, T1>,
14170    {
14171        <Self as FcvtxnEmitter<T0, T1>>::fcvtxn(self, op0, op1);
14172    }
14173    pub fn fcvtxn2<T0, T1>(&mut self, op0: T0, op1: T1)
14174    where
14175        Self: Fcvtxn2Emitter<T0, T1>,
14176    {
14177        <Self as Fcvtxn2Emitter<T0, T1>>::fcvtxn2(self, op0, op1);
14178    }
14179    pub fn fcvtzs<T0, T1>(&mut self, op0: T0, op1: T1)
14180    where
14181        Self: FcvtzsEmitter<T0, T1>,
14182    {
14183        <Self as FcvtzsEmitter<T0, T1>>::fcvtzs(self, op0, op1);
14184    }
14185    pub fn fcvtzs_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14186    where
14187        Self: Fcvtzs3Emitter<T0, T1, T2>,
14188    {
14189        <Self as Fcvtzs3Emitter<T0, T1, T2>>::fcvtzs_3(self, op0, op1, op2);
14190    }
14191    pub fn fcvtzu<T0, T1>(&mut self, op0: T0, op1: T1)
14192    where
14193        Self: FcvtzuEmitter<T0, T1>,
14194    {
14195        <Self as FcvtzuEmitter<T0, T1>>::fcvtzu(self, op0, op1);
14196    }
14197    pub fn fcvtzu_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14198    where
14199        Self: Fcvtzu3Emitter<T0, T1, T2>,
14200    {
14201        <Self as Fcvtzu3Emitter<T0, T1, T2>>::fcvtzu_3(self, op0, op1, op2);
14202    }
14203    pub fn fdiv<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14204    where
14205        Self: FdivEmitter<T0, T1, T2>,
14206    {
14207        <Self as FdivEmitter<T0, T1, T2>>::fdiv(self, op0, op1, op2);
14208    }
14209    pub fn fmadd<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
14210    where
14211        Self: FmaddEmitter<T0, T1, T2, T3>,
14212    {
14213        <Self as FmaddEmitter<T0, T1, T2, T3>>::fmadd(self, op0, op1, op2, op3);
14214    }
14215    pub fn fmax<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14216    where
14217        Self: FmaxEmitter<T0, T1, T2>,
14218    {
14219        <Self as FmaxEmitter<T0, T1, T2>>::fmax(self, op0, op1, op2);
14220    }
14221    pub fn fmaxnm<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14222    where
14223        Self: FmaxnmEmitter<T0, T1, T2>,
14224    {
14225        <Self as FmaxnmEmitter<T0, T1, T2>>::fmaxnm(self, op0, op1, op2);
14226    }
14227    pub fn fmaxnmp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14228    where
14229        Self: FmaxnmpEmitter<T0, T1, T2>,
14230    {
14231        <Self as FmaxnmpEmitter<T0, T1, T2>>::fmaxnmp(self, op0, op1, op2);
14232    }
14233    pub fn fmaxnmp_2<T0, T1>(&mut self, op0: T0, op1: T1)
14234    where
14235        Self: Fmaxnmp2Emitter<T0, T1>,
14236    {
14237        <Self as Fmaxnmp2Emitter<T0, T1>>::fmaxnmp_2(self, op0, op1);
14238    }
14239    pub fn fmaxnmv<T0, T1>(&mut self, op0: T0, op1: T1)
14240    where
14241        Self: FmaxnmvEmitter<T0, T1>,
14242    {
14243        <Self as FmaxnmvEmitter<T0, T1>>::fmaxnmv(self, op0, op1);
14244    }
14245    pub fn fmaxp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14246    where
14247        Self: FmaxpEmitter<T0, T1, T2>,
14248    {
14249        <Self as FmaxpEmitter<T0, T1, T2>>::fmaxp(self, op0, op1, op2);
14250    }
14251    pub fn fmaxp_2<T0, T1>(&mut self, op0: T0, op1: T1)
14252    where
14253        Self: Fmaxp2Emitter<T0, T1>,
14254    {
14255        <Self as Fmaxp2Emitter<T0, T1>>::fmaxp_2(self, op0, op1);
14256    }
14257    pub fn fmaxv<T0, T1>(&mut self, op0: T0, op1: T1)
14258    where
14259        Self: FmaxvEmitter<T0, T1>,
14260    {
14261        <Self as FmaxvEmitter<T0, T1>>::fmaxv(self, op0, op1);
14262    }
14263    pub fn fmin<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14264    where
14265        Self: FminEmitter<T0, T1, T2>,
14266    {
14267        <Self as FminEmitter<T0, T1, T2>>::fmin(self, op0, op1, op2);
14268    }
14269    pub fn fminnm<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14270    where
14271        Self: FminnmEmitter<T0, T1, T2>,
14272    {
14273        <Self as FminnmEmitter<T0, T1, T2>>::fminnm(self, op0, op1, op2);
14274    }
14275    pub fn fminnmv<T0, T1>(&mut self, op0: T0, op1: T1)
14276    where
14277        Self: FminnmvEmitter<T0, T1>,
14278    {
14279        <Self as FminnmvEmitter<T0, T1>>::fminnmv(self, op0, op1);
14280    }
14281    pub fn fminnmp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14282    where
14283        Self: FminnmpEmitter<T0, T1, T2>,
14284    {
14285        <Self as FminnmpEmitter<T0, T1, T2>>::fminnmp(self, op0, op1, op2);
14286    }
14287    pub fn fminnmp_2<T0, T1>(&mut self, op0: T0, op1: T1)
14288    where
14289        Self: Fminnmp2Emitter<T0, T1>,
14290    {
14291        <Self as Fminnmp2Emitter<T0, T1>>::fminnmp_2(self, op0, op1);
14292    }
14293    pub fn fminp<T0, T1>(&mut self, op0: T0, op1: T1)
14294    where
14295        Self: FminpEmitter<T0, T1>,
14296    {
14297        <Self as FminpEmitter<T0, T1>>::fminp(self, op0, op1);
14298    }
14299    pub fn fminp_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14300    where
14301        Self: Fminp3Emitter<T0, T1, T2>,
14302    {
14303        <Self as Fminp3Emitter<T0, T1, T2>>::fminp_3(self, op0, op1, op2);
14304    }
14305    pub fn fminv<T0, T1>(&mut self, op0: T0, op1: T1)
14306    where
14307        Self: FminvEmitter<T0, T1>,
14308    {
14309        <Self as FminvEmitter<T0, T1>>::fminv(self, op0, op1);
14310    }
14311    pub fn fmla<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14312    where
14313        Self: FmlaEmitter<T0, T1, T2>,
14314    {
14315        <Self as FmlaEmitter<T0, T1, T2>>::fmla(self, op0, op1, op2);
14316    }
14317    pub fn fmls<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14318    where
14319        Self: FmlsEmitter<T0, T1, T2>,
14320    {
14321        <Self as FmlsEmitter<T0, T1, T2>>::fmls(self, op0, op1, op2);
14322    }
14323    pub fn fmov<T0, T1>(&mut self, op0: T0, op1: T1)
14324    where
14325        Self: FmovEmitter<T0, T1>,
14326    {
14327        <Self as FmovEmitter<T0, T1>>::fmov(self, op0, op1);
14328    }
14329    pub fn fmsub<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
14330    where
14331        Self: FmsubEmitter<T0, T1, T2, T3>,
14332    {
14333        <Self as FmsubEmitter<T0, T1, T2, T3>>::fmsub(self, op0, op1, op2, op3);
14334    }
14335    pub fn fmul<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14336    where
14337        Self: FmulEmitter<T0, T1, T2>,
14338    {
14339        <Self as FmulEmitter<T0, T1, T2>>::fmul(self, op0, op1, op2);
14340    }
14341    pub fn fmulx<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14342    where
14343        Self: FmulxEmitter<T0, T1, T2>,
14344    {
14345        <Self as FmulxEmitter<T0, T1, T2>>::fmulx(self, op0, op1, op2);
14346    }
14347    pub fn fneg<T0, T1>(&mut self, op0: T0, op1: T1)
14348    where
14349        Self: FnegEmitter<T0, T1>,
14350    {
14351        <Self as FnegEmitter<T0, T1>>::fneg(self, op0, op1);
14352    }
14353    pub fn fnmadd<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
14354    where
14355        Self: FnmaddEmitter<T0, T1, T2, T3>,
14356    {
14357        <Self as FnmaddEmitter<T0, T1, T2, T3>>::fnmadd(self, op0, op1, op2, op3);
14358    }
14359    pub fn fnmsub<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
14360    where
14361        Self: FnmsubEmitter<T0, T1, T2, T3>,
14362    {
14363        <Self as FnmsubEmitter<T0, T1, T2, T3>>::fnmsub(self, op0, op1, op2, op3);
14364    }
14365    pub fn fnmul<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14366    where
14367        Self: FnmulEmitter<T0, T1, T2>,
14368    {
14369        <Self as FnmulEmitter<T0, T1, T2>>::fnmul(self, op0, op1, op2);
14370    }
14371    pub fn frecpe<T0, T1>(&mut self, op0: T0, op1: T1)
14372    where
14373        Self: FrecpeEmitter<T0, T1>,
14374    {
14375        <Self as FrecpeEmitter<T0, T1>>::frecpe(self, op0, op1);
14376    }
14377    pub fn frecps<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14378    where
14379        Self: FrecpsEmitter<T0, T1, T2>,
14380    {
14381        <Self as FrecpsEmitter<T0, T1, T2>>::frecps(self, op0, op1, op2);
14382    }
14383    pub fn frecpx<T0, T1>(&mut self, op0: T0, op1: T1)
14384    where
14385        Self: FrecpxEmitter<T0, T1>,
14386    {
14387        <Self as FrecpxEmitter<T0, T1>>::frecpx(self, op0, op1);
14388    }
14389    pub fn frint32x<T0, T1>(&mut self, op0: T0, op1: T1)
14390    where
14391        Self: Frint32xEmitter<T0, T1>,
14392    {
14393        <Self as Frint32xEmitter<T0, T1>>::frint32x(self, op0, op1);
14394    }
14395    pub fn frint32z<T0, T1>(&mut self, op0: T0, op1: T1)
14396    where
14397        Self: Frint32zEmitter<T0, T1>,
14398    {
14399        <Self as Frint32zEmitter<T0, T1>>::frint32z(self, op0, op1);
14400    }
14401    pub fn frint64x<T0, T1>(&mut self, op0: T0, op1: T1)
14402    where
14403        Self: Frint64xEmitter<T0, T1>,
14404    {
14405        <Self as Frint64xEmitter<T0, T1>>::frint64x(self, op0, op1);
14406    }
14407    pub fn frint64z<T0, T1>(&mut self, op0: T0, op1: T1)
14408    where
14409        Self: Frint64zEmitter<T0, T1>,
14410    {
14411        <Self as Frint64zEmitter<T0, T1>>::frint64z(self, op0, op1);
14412    }
14413    pub fn frinta<T0, T1>(&mut self, op0: T0, op1: T1)
14414    where
14415        Self: FrintaEmitter<T0, T1>,
14416    {
14417        <Self as FrintaEmitter<T0, T1>>::frinta(self, op0, op1);
14418    }
14419    pub fn frinti<T0, T1>(&mut self, op0: T0, op1: T1)
14420    where
14421        Self: FrintiEmitter<T0, T1>,
14422    {
14423        <Self as FrintiEmitter<T0, T1>>::frinti(self, op0, op1);
14424    }
14425    pub fn frintm<T0, T1>(&mut self, op0: T0, op1: T1)
14426    where
14427        Self: FrintmEmitter<T0, T1>,
14428    {
14429        <Self as FrintmEmitter<T0, T1>>::frintm(self, op0, op1);
14430    }
14431    pub fn frintn<T0, T1>(&mut self, op0: T0, op1: T1)
14432    where
14433        Self: FrintnEmitter<T0, T1>,
14434    {
14435        <Self as FrintnEmitter<T0, T1>>::frintn(self, op0, op1);
14436    }
14437    pub fn frintp<T0, T1>(&mut self, op0: T0, op1: T1)
14438    where
14439        Self: FrintpEmitter<T0, T1>,
14440    {
14441        <Self as FrintpEmitter<T0, T1>>::frintp(self, op0, op1);
14442    }
14443    pub fn frintx<T0, T1>(&mut self, op0: T0, op1: T1)
14444    where
14445        Self: FrintxEmitter<T0, T1>,
14446    {
14447        <Self as FrintxEmitter<T0, T1>>::frintx(self, op0, op1);
14448    }
14449    pub fn frintz<T0, T1>(&mut self, op0: T0, op1: T1)
14450    where
14451        Self: FrintzEmitter<T0, T1>,
14452    {
14453        <Self as FrintzEmitter<T0, T1>>::frintz(self, op0, op1);
14454    }
14455    pub fn frsqrte<T0, T1>(&mut self, op0: T0, op1: T1)
14456    where
14457        Self: FrsqrteEmitter<T0, T1>,
14458    {
14459        <Self as FrsqrteEmitter<T0, T1>>::frsqrte(self, op0, op1);
14460    }
14461    pub fn frsqrts<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14462    where
14463        Self: FrsqrtsEmitter<T0, T1, T2>,
14464    {
14465        <Self as FrsqrtsEmitter<T0, T1, T2>>::frsqrts(self, op0, op1, op2);
14466    }
14467    pub fn fsqrt<T0, T1>(&mut self, op0: T0, op1: T1)
14468    where
14469        Self: FsqrtEmitter<T0, T1>,
14470    {
14471        <Self as FsqrtEmitter<T0, T1>>::fsqrt(self, op0, op1);
14472    }
14473    pub fn fsub<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14474    where
14475        Self: FsubEmitter<T0, T1, T2>,
14476    {
14477        <Self as FsubEmitter<T0, T1, T2>>::fsub(self, op0, op1, op2);
14478    }
14479    pub fn ins<T0, T1>(&mut self, op0: T0, op1: T1)
14480    where
14481        Self: InsEmitter<T0, T1>,
14482    {
14483        <Self as InsEmitter<T0, T1>>::ins(self, op0, op1);
14484    }
14485    pub fn ld1<T0, T1>(&mut self, op0: T0, op1: T1)
14486    where
14487        Self: Ld1Emitter<T0, T1>,
14488    {
14489        <Self as Ld1Emitter<T0, T1>>::ld1(self, op0, op1);
14490    }
14491    pub fn ld1_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14492    where
14493        Self: Ld13Emitter<T0, T1, T2>,
14494    {
14495        <Self as Ld13Emitter<T0, T1, T2>>::ld1_3(self, op0, op1, op2);
14496    }
14497    pub fn ld1_4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
14498    where
14499        Self: Ld14Emitter<T0, T1, T2, T3>,
14500    {
14501        <Self as Ld14Emitter<T0, T1, T2, T3>>::ld1_4(self, op0, op1, op2, op3);
14502    }
14503    pub fn ld1_5<T0, T1, T2, T3, T4>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4)
14504    where
14505        Self: Ld15Emitter<T0, T1, T2, T3, T4>,
14506    {
14507        <Self as Ld15Emitter<T0, T1, T2, T3, T4>>::ld1_5(self, op0, op1, op2, op3, op4);
14508    }
14509    pub fn ld1r<T0, T1>(&mut self, op0: T0, op1: T1)
14510    where
14511        Self: Ld1rEmitter<T0, T1>,
14512    {
14513        <Self as Ld1rEmitter<T0, T1>>::ld1r(self, op0, op1);
14514    }
14515    pub fn ld2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14516    where
14517        Self: Ld2Emitter<T0, T1, T2>,
14518    {
14519        <Self as Ld2Emitter<T0, T1, T2>>::ld2(self, op0, op1, op2);
14520    }
14521    pub fn ld2r<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14522    where
14523        Self: Ld2rEmitter<T0, T1, T2>,
14524    {
14525        <Self as Ld2rEmitter<T0, T1, T2>>::ld2r(self, op0, op1, op2);
14526    }
14527    pub fn ld3<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
14528    where
14529        Self: Ld3Emitter<T0, T1, T2, T3>,
14530    {
14531        <Self as Ld3Emitter<T0, T1, T2, T3>>::ld3(self, op0, op1, op2, op3);
14532    }
14533    pub fn ld3r<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
14534    where
14535        Self: Ld3rEmitter<T0, T1, T2, T3>,
14536    {
14537        <Self as Ld3rEmitter<T0, T1, T2, T3>>::ld3r(self, op0, op1, op2, op3);
14538    }
14539    pub fn ld4<T0, T1, T2, T3, T4>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4)
14540    where
14541        Self: Ld4Emitter<T0, T1, T2, T3, T4>,
14542    {
14543        <Self as Ld4Emitter<T0, T1, T2, T3, T4>>::ld4(self, op0, op1, op2, op3, op4);
14544    }
14545    pub fn ld4r<T0, T1, T2, T3, T4>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4)
14546    where
14547        Self: Ld4rEmitter<T0, T1, T2, T3, T4>,
14548    {
14549        <Self as Ld4rEmitter<T0, T1, T2, T3, T4>>::ld4r(self, op0, op1, op2, op3, op4);
14550    }
14551    pub fn mla<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14552    where
14553        Self: MlaEmitter<T0, T1, T2>,
14554    {
14555        <Self as MlaEmitter<T0, T1, T2>>::mla(self, op0, op1, op2);
14556    }
14557    pub fn mls<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14558    where
14559        Self: MlsEmitter<T0, T1, T2>,
14560    {
14561        <Self as MlsEmitter<T0, T1, T2>>::mls(self, op0, op1, op2);
14562    }
14563    pub fn movi<T0, T1>(&mut self, op0: T0, op1: T1)
14564    where
14565        Self: MoviEmitter<T0, T1>,
14566    {
14567        <Self as MoviEmitter<T0, T1>>::movi(self, op0, op1);
14568    }
14569    pub fn movi_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14570    where
14571        Self: Movi3Emitter<T0, T1, T2>,
14572    {
14573        <Self as Movi3Emitter<T0, T1, T2>>::movi_3(self, op0, op1, op2);
14574    }
14575    pub fn mvni<T0, T1>(&mut self, op0: T0, op1: T1)
14576    where
14577        Self: MvniEmitter<T0, T1>,
14578    {
14579        <Self as MvniEmitter<T0, T1>>::mvni(self, op0, op1);
14580    }
14581    pub fn mvni_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14582    where
14583        Self: Mvni3Emitter<T0, T1, T2>,
14584    {
14585        <Self as Mvni3Emitter<T0, T1, T2>>::mvni_3(self, op0, op1, op2);
14586    }
14587    pub fn not_<T0, T1>(&mut self, op0: T0, op1: T1)
14588    where
14589        Self: NotEmitter<T0, T1>,
14590    {
14591        <Self as NotEmitter<T0, T1>>::not_(self, op0, op1);
14592    }
14593    pub fn orr_2<T0, T1>(&mut self, op0: T0, op1: T1)
14594    where
14595        Self: Orr2Emitter<T0, T1>,
14596    {
14597        <Self as Orr2Emitter<T0, T1>>::orr_2(self, op0, op1);
14598    }
14599    pub fn pmul<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14600    where
14601        Self: PmulEmitter<T0, T1, T2>,
14602    {
14603        <Self as PmulEmitter<T0, T1, T2>>::pmul(self, op0, op1, op2);
14604    }
14605    pub fn pmull<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14606    where
14607        Self: PmullEmitter<T0, T1, T2>,
14608    {
14609        <Self as PmullEmitter<T0, T1, T2>>::pmull(self, op0, op1, op2);
14610    }
14611    pub fn pmull2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14612    where
14613        Self: Pmull2Emitter<T0, T1, T2>,
14614    {
14615        <Self as Pmull2Emitter<T0, T1, T2>>::pmull2(self, op0, op1, op2);
14616    }
14617    pub fn raddhn<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14618    where
14619        Self: RaddhnEmitter<T0, T1, T2>,
14620    {
14621        <Self as RaddhnEmitter<T0, T1, T2>>::raddhn(self, op0, op1, op2);
14622    }
14623    pub fn raddhn2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14624    where
14625        Self: Raddhn2Emitter<T0, T1, T2>,
14626    {
14627        <Self as Raddhn2Emitter<T0, T1, T2>>::raddhn2(self, op0, op1, op2);
14628    }
14629    pub fn rshrn<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14630    where
14631        Self: RshrnEmitter<T0, T1, T2>,
14632    {
14633        <Self as RshrnEmitter<T0, T1, T2>>::rshrn(self, op0, op1, op2);
14634    }
14635    pub fn rshrn2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14636    where
14637        Self: Rshrn2Emitter<T0, T1, T2>,
14638    {
14639        <Self as Rshrn2Emitter<T0, T1, T2>>::rshrn2(self, op0, op1, op2);
14640    }
14641    pub fn rsubhn<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14642    where
14643        Self: RsubhnEmitter<T0, T1, T2>,
14644    {
14645        <Self as RsubhnEmitter<T0, T1, T2>>::rsubhn(self, op0, op1, op2);
14646    }
14647    pub fn rsubhn2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14648    where
14649        Self: Rsubhn2Emitter<T0, T1, T2>,
14650    {
14651        <Self as Rsubhn2Emitter<T0, T1, T2>>::rsubhn2(self, op0, op1, op2);
14652    }
14653    pub fn saba<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14654    where
14655        Self: SabaEmitter<T0, T1, T2>,
14656    {
14657        <Self as SabaEmitter<T0, T1, T2>>::saba(self, op0, op1, op2);
14658    }
14659    pub fn sabal<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14660    where
14661        Self: SabalEmitter<T0, T1, T2>,
14662    {
14663        <Self as SabalEmitter<T0, T1, T2>>::sabal(self, op0, op1, op2);
14664    }
14665    pub fn sabal2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14666    where
14667        Self: Sabal2Emitter<T0, T1, T2>,
14668    {
14669        <Self as Sabal2Emitter<T0, T1, T2>>::sabal2(self, op0, op1, op2);
14670    }
14671    pub fn sabd<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14672    where
14673        Self: SabdEmitter<T0, T1, T2>,
14674    {
14675        <Self as SabdEmitter<T0, T1, T2>>::sabd(self, op0, op1, op2);
14676    }
14677    pub fn sabdl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14678    where
14679        Self: SabdlEmitter<T0, T1, T2>,
14680    {
14681        <Self as SabdlEmitter<T0, T1, T2>>::sabdl(self, op0, op1, op2);
14682    }
14683    pub fn sabdl2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14684    where
14685        Self: Sabdl2Emitter<T0, T1, T2>,
14686    {
14687        <Self as Sabdl2Emitter<T0, T1, T2>>::sabdl2(self, op0, op1, op2);
14688    }
14689    pub fn sadalp<T0, T1>(&mut self, op0: T0, op1: T1)
14690    where
14691        Self: SadalpEmitter<T0, T1>,
14692    {
14693        <Self as SadalpEmitter<T0, T1>>::sadalp(self, op0, op1);
14694    }
14695    pub fn saddl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14696    where
14697        Self: SaddlEmitter<T0, T1, T2>,
14698    {
14699        <Self as SaddlEmitter<T0, T1, T2>>::saddl(self, op0, op1, op2);
14700    }
14701    pub fn saddl2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14702    where
14703        Self: Saddl2Emitter<T0, T1, T2>,
14704    {
14705        <Self as Saddl2Emitter<T0, T1, T2>>::saddl2(self, op0, op1, op2);
14706    }
14707    pub fn saddlp<T0, T1>(&mut self, op0: T0, op1: T1)
14708    where
14709        Self: SaddlpEmitter<T0, T1>,
14710    {
14711        <Self as SaddlpEmitter<T0, T1>>::saddlp(self, op0, op1);
14712    }
14713    pub fn saddlv<T0, T1>(&mut self, op0: T0, op1: T1)
14714    where
14715        Self: SaddlvEmitter<T0, T1>,
14716    {
14717        <Self as SaddlvEmitter<T0, T1>>::saddlv(self, op0, op1);
14718    }
14719    pub fn saddw<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14720    where
14721        Self: SaddwEmitter<T0, T1, T2>,
14722    {
14723        <Self as SaddwEmitter<T0, T1, T2>>::saddw(self, op0, op1, op2);
14724    }
14725    pub fn saddw2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14726    where
14727        Self: Saddw2Emitter<T0, T1, T2>,
14728    {
14729        <Self as Saddw2Emitter<T0, T1, T2>>::saddw2(self, op0, op1, op2);
14730    }
14731    pub fn scvtf<T0, T1>(&mut self, op0: T0, op1: T1)
14732    where
14733        Self: ScvtfEmitter<T0, T1>,
14734    {
14735        <Self as ScvtfEmitter<T0, T1>>::scvtf(self, op0, op1);
14736    }
14737    pub fn scvtf_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14738    where
14739        Self: Scvtf3Emitter<T0, T1, T2>,
14740    {
14741        <Self as Scvtf3Emitter<T0, T1, T2>>::scvtf_3(self, op0, op1, op2);
14742    }
14743    pub fn shadd<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14744    where
14745        Self: ShaddEmitter<T0, T1, T2>,
14746    {
14747        <Self as ShaddEmitter<T0, T1, T2>>::shadd(self, op0, op1, op2);
14748    }
14749    pub fn shl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14750    where
14751        Self: ShlEmitter<T0, T1, T2>,
14752    {
14753        <Self as ShlEmitter<T0, T1, T2>>::shl(self, op0, op1, op2);
14754    }
14755    pub fn shll<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14756    where
14757        Self: ShllEmitter<T0, T1, T2>,
14758    {
14759        <Self as ShllEmitter<T0, T1, T2>>::shll(self, op0, op1, op2);
14760    }
14761    pub fn shll2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14762    where
14763        Self: Shll2Emitter<T0, T1, T2>,
14764    {
14765        <Self as Shll2Emitter<T0, T1, T2>>::shll2(self, op0, op1, op2);
14766    }
14767    pub fn shrn<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14768    where
14769        Self: ShrnEmitter<T0, T1, T2>,
14770    {
14771        <Self as ShrnEmitter<T0, T1, T2>>::shrn(self, op0, op1, op2);
14772    }
14773    pub fn shrn2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14774    where
14775        Self: Shrn2Emitter<T0, T1, T2>,
14776    {
14777        <Self as Shrn2Emitter<T0, T1, T2>>::shrn2(self, op0, op1, op2);
14778    }
14779    pub fn shsub<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14780    where
14781        Self: ShsubEmitter<T0, T1, T2>,
14782    {
14783        <Self as ShsubEmitter<T0, T1, T2>>::shsub(self, op0, op1, op2);
14784    }
14785    pub fn sli<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14786    where
14787        Self: SliEmitter<T0, T1, T2>,
14788    {
14789        <Self as SliEmitter<T0, T1, T2>>::sli(self, op0, op1, op2);
14790    }
14791    pub fn smaxp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14792    where
14793        Self: SmaxpEmitter<T0, T1, T2>,
14794    {
14795        <Self as SmaxpEmitter<T0, T1, T2>>::smaxp(self, op0, op1, op2);
14796    }
14797    pub fn smaxv<T0, T1>(&mut self, op0: T0, op1: T1)
14798    where
14799        Self: SmaxvEmitter<T0, T1>,
14800    {
14801        <Self as SmaxvEmitter<T0, T1>>::smaxv(self, op0, op1);
14802    }
14803    pub fn sminp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14804    where
14805        Self: SminpEmitter<T0, T1, T2>,
14806    {
14807        <Self as SminpEmitter<T0, T1, T2>>::sminp(self, op0, op1, op2);
14808    }
14809    pub fn sminv<T0, T1>(&mut self, op0: T0, op1: T1)
14810    where
14811        Self: SminvEmitter<T0, T1>,
14812    {
14813        <Self as SminvEmitter<T0, T1>>::sminv(self, op0, op1);
14814    }
14815    pub fn smlal<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14816    where
14817        Self: SmlalEmitter<T0, T1, T2>,
14818    {
14819        <Self as SmlalEmitter<T0, T1, T2>>::smlal(self, op0, op1, op2);
14820    }
14821    pub fn smlal2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14822    where
14823        Self: Smlal2Emitter<T0, T1, T2>,
14824    {
14825        <Self as Smlal2Emitter<T0, T1, T2>>::smlal2(self, op0, op1, op2);
14826    }
14827    pub fn smlsl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14828    where
14829        Self: SmlslEmitter<T0, T1, T2>,
14830    {
14831        <Self as SmlslEmitter<T0, T1, T2>>::smlsl(self, op0, op1, op2);
14832    }
14833    pub fn smlsl2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14834    where
14835        Self: Smlsl2Emitter<T0, T1, T2>,
14836    {
14837        <Self as Smlsl2Emitter<T0, T1, T2>>::smlsl2(self, op0, op1, op2);
14838    }
14839    pub fn smov<T0, T1>(&mut self, op0: T0, op1: T1)
14840    where
14841        Self: SmovEmitter<T0, T1>,
14842    {
14843        <Self as SmovEmitter<T0, T1>>::smov(self, op0, op1);
14844    }
14845    pub fn smull2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14846    where
14847        Self: Smull2Emitter<T0, T1, T2>,
14848    {
14849        <Self as Smull2Emitter<T0, T1, T2>>::smull2(self, op0, op1, op2);
14850    }
14851    pub fn sqabs<T0, T1>(&mut self, op0: T0, op1: T1)
14852    where
14853        Self: SqabsEmitter<T0, T1>,
14854    {
14855        <Self as SqabsEmitter<T0, T1>>::sqabs(self, op0, op1);
14856    }
14857    pub fn sqadd<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14858    where
14859        Self: SqaddEmitter<T0, T1, T2>,
14860    {
14861        <Self as SqaddEmitter<T0, T1, T2>>::sqadd(self, op0, op1, op2);
14862    }
14863    pub fn sqdmlal<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14864    where
14865        Self: SqdmlalEmitter<T0, T1, T2>,
14866    {
14867        <Self as SqdmlalEmitter<T0, T1, T2>>::sqdmlal(self, op0, op1, op2);
14868    }
14869    pub fn sqdmlal2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14870    where
14871        Self: Sqdmlal2Emitter<T0, T1, T2>,
14872    {
14873        <Self as Sqdmlal2Emitter<T0, T1, T2>>::sqdmlal2(self, op0, op1, op2);
14874    }
14875    pub fn sqdmlsl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14876    where
14877        Self: SqdmlslEmitter<T0, T1, T2>,
14878    {
14879        <Self as SqdmlslEmitter<T0, T1, T2>>::sqdmlsl(self, op0, op1, op2);
14880    }
14881    pub fn sqdmlsl2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14882    where
14883        Self: Sqdmlsl2Emitter<T0, T1, T2>,
14884    {
14885        <Self as Sqdmlsl2Emitter<T0, T1, T2>>::sqdmlsl2(self, op0, op1, op2);
14886    }
14887    pub fn sqdmulh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14888    where
14889        Self: SqdmulhEmitter<T0, T1, T2>,
14890    {
14891        <Self as SqdmulhEmitter<T0, T1, T2>>::sqdmulh(self, op0, op1, op2);
14892    }
14893    pub fn sqdmull<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14894    where
14895        Self: SqdmullEmitter<T0, T1, T2>,
14896    {
14897        <Self as SqdmullEmitter<T0, T1, T2>>::sqdmull(self, op0, op1, op2);
14898    }
14899    pub fn sqdmull2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14900    where
14901        Self: Sqdmull2Emitter<T0, T1, T2>,
14902    {
14903        <Self as Sqdmull2Emitter<T0, T1, T2>>::sqdmull2(self, op0, op1, op2);
14904    }
14905    pub fn sqneg<T0, T1>(&mut self, op0: T0, op1: T1)
14906    where
14907        Self: SqnegEmitter<T0, T1>,
14908    {
14909        <Self as SqnegEmitter<T0, T1>>::sqneg(self, op0, op1);
14910    }
14911    pub fn sqrdmulh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14912    where
14913        Self: SqrdmulhEmitter<T0, T1, T2>,
14914    {
14915        <Self as SqrdmulhEmitter<T0, T1, T2>>::sqrdmulh(self, op0, op1, op2);
14916    }
14917    pub fn sqrshl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14918    where
14919        Self: SqrshlEmitter<T0, T1, T2>,
14920    {
14921        <Self as SqrshlEmitter<T0, T1, T2>>::sqrshl(self, op0, op1, op2);
14922    }
14923    pub fn sqrshrn<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14924    where
14925        Self: SqrshrnEmitter<T0, T1, T2>,
14926    {
14927        <Self as SqrshrnEmitter<T0, T1, T2>>::sqrshrn(self, op0, op1, op2);
14928    }
14929    pub fn sqrshrn2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14930    where
14931        Self: Sqrshrn2Emitter<T0, T1, T2>,
14932    {
14933        <Self as Sqrshrn2Emitter<T0, T1, T2>>::sqrshrn2(self, op0, op1, op2);
14934    }
14935    pub fn sqrshrun<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14936    where
14937        Self: SqrshrunEmitter<T0, T1, T2>,
14938    {
14939        <Self as SqrshrunEmitter<T0, T1, T2>>::sqrshrun(self, op0, op1, op2);
14940    }
14941    pub fn sqrshrun2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14942    where
14943        Self: Sqrshrun2Emitter<T0, T1, T2>,
14944    {
14945        <Self as Sqrshrun2Emitter<T0, T1, T2>>::sqrshrun2(self, op0, op1, op2);
14946    }
14947    pub fn sqshl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14948    where
14949        Self: SqshlEmitter<T0, T1, T2>,
14950    {
14951        <Self as SqshlEmitter<T0, T1, T2>>::sqshl(self, op0, op1, op2);
14952    }
14953    pub fn sqshlu<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14954    where
14955        Self: SqshluEmitter<T0, T1, T2>,
14956    {
14957        <Self as SqshluEmitter<T0, T1, T2>>::sqshlu(self, op0, op1, op2);
14958    }
14959    pub fn sqshrn<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14960    where
14961        Self: SqshrnEmitter<T0, T1, T2>,
14962    {
14963        <Self as SqshrnEmitter<T0, T1, T2>>::sqshrn(self, op0, op1, op2);
14964    }
14965    pub fn sqshrn2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14966    where
14967        Self: Sqshrn2Emitter<T0, T1, T2>,
14968    {
14969        <Self as Sqshrn2Emitter<T0, T1, T2>>::sqshrn2(self, op0, op1, op2);
14970    }
14971    pub fn sqshrun<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14972    where
14973        Self: SqshrunEmitter<T0, T1, T2>,
14974    {
14975        <Self as SqshrunEmitter<T0, T1, T2>>::sqshrun(self, op0, op1, op2);
14976    }
14977    pub fn sqshrun2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14978    where
14979        Self: Sqshrun2Emitter<T0, T1, T2>,
14980    {
14981        <Self as Sqshrun2Emitter<T0, T1, T2>>::sqshrun2(self, op0, op1, op2);
14982    }
14983    pub fn sqsub<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
14984    where
14985        Self: SqsubEmitter<T0, T1, T2>,
14986    {
14987        <Self as SqsubEmitter<T0, T1, T2>>::sqsub(self, op0, op1, op2);
14988    }
14989    pub fn sqxtn<T0, T1>(&mut self, op0: T0, op1: T1)
14990    where
14991        Self: SqxtnEmitter<T0, T1>,
14992    {
14993        <Self as SqxtnEmitter<T0, T1>>::sqxtn(self, op0, op1);
14994    }
14995    pub fn sqxtn2<T0, T1>(&mut self, op0: T0, op1: T1)
14996    where
14997        Self: Sqxtn2Emitter<T0, T1>,
14998    {
14999        <Self as Sqxtn2Emitter<T0, T1>>::sqxtn2(self, op0, op1);
15000    }
15001    pub fn sqxtun<T0, T1>(&mut self, op0: T0, op1: T1)
15002    where
15003        Self: SqxtunEmitter<T0, T1>,
15004    {
15005        <Self as SqxtunEmitter<T0, T1>>::sqxtun(self, op0, op1);
15006    }
15007    pub fn sqxtun2<T0, T1>(&mut self, op0: T0, op1: T1)
15008    where
15009        Self: Sqxtun2Emitter<T0, T1>,
15010    {
15011        <Self as Sqxtun2Emitter<T0, T1>>::sqxtun2(self, op0, op1);
15012    }
15013    pub fn srhadd<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15014    where
15015        Self: SrhaddEmitter<T0, T1, T2>,
15016    {
15017        <Self as SrhaddEmitter<T0, T1, T2>>::srhadd(self, op0, op1, op2);
15018    }
15019    pub fn sri<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15020    where
15021        Self: SriEmitter<T0, T1, T2>,
15022    {
15023        <Self as SriEmitter<T0, T1, T2>>::sri(self, op0, op1, op2);
15024    }
15025    pub fn srshl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15026    where
15027        Self: SrshlEmitter<T0, T1, T2>,
15028    {
15029        <Self as SrshlEmitter<T0, T1, T2>>::srshl(self, op0, op1, op2);
15030    }
15031    pub fn srshr<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15032    where
15033        Self: SrshrEmitter<T0, T1, T2>,
15034    {
15035        <Self as SrshrEmitter<T0, T1, T2>>::srshr(self, op0, op1, op2);
15036    }
15037    pub fn srsra<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15038    where
15039        Self: SrsraEmitter<T0, T1, T2>,
15040    {
15041        <Self as SrsraEmitter<T0, T1, T2>>::srsra(self, op0, op1, op2);
15042    }
15043    pub fn sshl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15044    where
15045        Self: SshlEmitter<T0, T1, T2>,
15046    {
15047        <Self as SshlEmitter<T0, T1, T2>>::sshl(self, op0, op1, op2);
15048    }
15049    pub fn sshll<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15050    where
15051        Self: SshllEmitter<T0, T1, T2>,
15052    {
15053        <Self as SshllEmitter<T0, T1, T2>>::sshll(self, op0, op1, op2);
15054    }
15055    pub fn sshll2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15056    where
15057        Self: Sshll2Emitter<T0, T1, T2>,
15058    {
15059        <Self as Sshll2Emitter<T0, T1, T2>>::sshll2(self, op0, op1, op2);
15060    }
15061    pub fn sshr<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15062    where
15063        Self: SshrEmitter<T0, T1, T2>,
15064    {
15065        <Self as SshrEmitter<T0, T1, T2>>::sshr(self, op0, op1, op2);
15066    }
15067    pub fn ssra<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15068    where
15069        Self: SsraEmitter<T0, T1, T2>,
15070    {
15071        <Self as SsraEmitter<T0, T1, T2>>::ssra(self, op0, op1, op2);
15072    }
15073    pub fn ssubl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15074    where
15075        Self: SsublEmitter<T0, T1, T2>,
15076    {
15077        <Self as SsublEmitter<T0, T1, T2>>::ssubl(self, op0, op1, op2);
15078    }
15079    pub fn ssubl2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15080    where
15081        Self: Ssubl2Emitter<T0, T1, T2>,
15082    {
15083        <Self as Ssubl2Emitter<T0, T1, T2>>::ssubl2(self, op0, op1, op2);
15084    }
15085    pub fn ssubw<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15086    where
15087        Self: SsubwEmitter<T0, T1, T2>,
15088    {
15089        <Self as SsubwEmitter<T0, T1, T2>>::ssubw(self, op0, op1, op2);
15090    }
15091    pub fn ssubw2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15092    where
15093        Self: Ssubw2Emitter<T0, T1, T2>,
15094    {
15095        <Self as Ssubw2Emitter<T0, T1, T2>>::ssubw2(self, op0, op1, op2);
15096    }
15097    pub fn st1<T0, T1>(&mut self, op0: T0, op1: T1)
15098    where
15099        Self: St1Emitter<T0, T1>,
15100    {
15101        <Self as St1Emitter<T0, T1>>::st1(self, op0, op1);
15102    }
15103    pub fn st1_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15104    where
15105        Self: St13Emitter<T0, T1, T2>,
15106    {
15107        <Self as St13Emitter<T0, T1, T2>>::st1_3(self, op0, op1, op2);
15108    }
15109    pub fn st1_4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
15110    where
15111        Self: St14Emitter<T0, T1, T2, T3>,
15112    {
15113        <Self as St14Emitter<T0, T1, T2, T3>>::st1_4(self, op0, op1, op2, op3);
15114    }
15115    pub fn st1_5<T0, T1, T2, T3, T4>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4)
15116    where
15117        Self: St15Emitter<T0, T1, T2, T3, T4>,
15118    {
15119        <Self as St15Emitter<T0, T1, T2, T3, T4>>::st1_5(self, op0, op1, op2, op3, op4);
15120    }
15121    pub fn st2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15122    where
15123        Self: St2Emitter<T0, T1, T2>,
15124    {
15125        <Self as St2Emitter<T0, T1, T2>>::st2(self, op0, op1, op2);
15126    }
15127    pub fn st3<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
15128    where
15129        Self: St3Emitter<T0, T1, T2, T3>,
15130    {
15131        <Self as St3Emitter<T0, T1, T2, T3>>::st3(self, op0, op1, op2, op3);
15132    }
15133    pub fn st4<T0, T1, T2, T3, T4>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4)
15134    where
15135        Self: St4Emitter<T0, T1, T2, T3, T4>,
15136    {
15137        <Self as St4Emitter<T0, T1, T2, T3, T4>>::st4(self, op0, op1, op2, op3, op4);
15138    }
15139    pub fn subhn<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15140    where
15141        Self: SubhnEmitter<T0, T1, T2>,
15142    {
15143        <Self as SubhnEmitter<T0, T1, T2>>::subhn(self, op0, op1, op2);
15144    }
15145    pub fn subhn2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15146    where
15147        Self: Subhn2Emitter<T0, T1, T2>,
15148    {
15149        <Self as Subhn2Emitter<T0, T1, T2>>::subhn2(self, op0, op1, op2);
15150    }
15151    pub fn suqadd<T0, T1>(&mut self, op0: T0, op1: T1)
15152    where
15153        Self: SuqaddEmitter<T0, T1>,
15154    {
15155        <Self as SuqaddEmitter<T0, T1>>::suqadd(self, op0, op1);
15156    }
15157    pub fn sxtl<T0, T1>(&mut self, op0: T0, op1: T1)
15158    where
15159        Self: SxtlEmitter<T0, T1>,
15160    {
15161        <Self as SxtlEmitter<T0, T1>>::sxtl(self, op0, op1);
15162    }
15163    pub fn sxtl2<T0, T1>(&mut self, op0: T0, op1: T1)
15164    where
15165        Self: Sxtl2Emitter<T0, T1>,
15166    {
15167        <Self as Sxtl2Emitter<T0, T1>>::sxtl2(self, op0, op1);
15168    }
15169    pub fn tbl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15170    where
15171        Self: TblEmitter<T0, T1, T2>,
15172    {
15173        <Self as TblEmitter<T0, T1, T2>>::tbl(self, op0, op1, op2);
15174    }
15175    pub fn tbl_4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
15176    where
15177        Self: Tbl4Emitter<T0, T1, T2, T3>,
15178    {
15179        <Self as Tbl4Emitter<T0, T1, T2, T3>>::tbl_4(self, op0, op1, op2, op3);
15180    }
15181    pub fn tbl_5<T0, T1, T2, T3, T4>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4)
15182    where
15183        Self: Tbl5Emitter<T0, T1, T2, T3, T4>,
15184    {
15185        <Self as Tbl5Emitter<T0, T1, T2, T3, T4>>::tbl_5(self, op0, op1, op2, op3, op4);
15186    }
15187    pub fn tbl_6<T0, T1, T2, T3, T4, T5>(
15188        &mut self,
15189        op0: T0,
15190        op1: T1,
15191        op2: T2,
15192        op3: T3,
15193        op4: T4,
15194        op5: T5,
15195    ) where
15196        Self: Tbl6Emitter<T0, T1, T2, T3, T4, T5>,
15197    {
15198        <Self as Tbl6Emitter<T0, T1, T2, T3, T4, T5>>::tbl_6(self, op0, op1, op2, op3, op4, op5);
15199    }
15200    pub fn tbx<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15201    where
15202        Self: TbxEmitter<T0, T1, T2>,
15203    {
15204        <Self as TbxEmitter<T0, T1, T2>>::tbx(self, op0, op1, op2);
15205    }
15206    pub fn tbx_4<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
15207    where
15208        Self: Tbx4Emitter<T0, T1, T2, T3>,
15209    {
15210        <Self as Tbx4Emitter<T0, T1, T2, T3>>::tbx_4(self, op0, op1, op2, op3);
15211    }
15212    pub fn tbx_5<T0, T1, T2, T3, T4>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3, op4: T4)
15213    where
15214        Self: Tbx5Emitter<T0, T1, T2, T3, T4>,
15215    {
15216        <Self as Tbx5Emitter<T0, T1, T2, T3, T4>>::tbx_5(self, op0, op1, op2, op3, op4);
15217    }
15218    pub fn tbx_6<T0, T1, T2, T3, T4, T5>(
15219        &mut self,
15220        op0: T0,
15221        op1: T1,
15222        op2: T2,
15223        op3: T3,
15224        op4: T4,
15225        op5: T5,
15226    ) where
15227        Self: Tbx6Emitter<T0, T1, T2, T3, T4, T5>,
15228    {
15229        <Self as Tbx6Emitter<T0, T1, T2, T3, T4, T5>>::tbx_6(self, op0, op1, op2, op3, op4, op5);
15230    }
15231    pub fn trn1<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15232    where
15233        Self: Trn1Emitter<T0, T1, T2>,
15234    {
15235        <Self as Trn1Emitter<T0, T1, T2>>::trn1(self, op0, op1, op2);
15236    }
15237    pub fn trn2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15238    where
15239        Self: Trn2Emitter<T0, T1, T2>,
15240    {
15241        <Self as Trn2Emitter<T0, T1, T2>>::trn2(self, op0, op1, op2);
15242    }
15243    pub fn uaba<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15244    where
15245        Self: UabaEmitter<T0, T1, T2>,
15246    {
15247        <Self as UabaEmitter<T0, T1, T2>>::uaba(self, op0, op1, op2);
15248    }
15249    pub fn uabal<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15250    where
15251        Self: UabalEmitter<T0, T1, T2>,
15252    {
15253        <Self as UabalEmitter<T0, T1, T2>>::uabal(self, op0, op1, op2);
15254    }
15255    pub fn uabal2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15256    where
15257        Self: Uabal2Emitter<T0, T1, T2>,
15258    {
15259        <Self as Uabal2Emitter<T0, T1, T2>>::uabal2(self, op0, op1, op2);
15260    }
15261    pub fn uabd<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15262    where
15263        Self: UabdEmitter<T0, T1, T2>,
15264    {
15265        <Self as UabdEmitter<T0, T1, T2>>::uabd(self, op0, op1, op2);
15266    }
15267    pub fn uabdl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15268    where
15269        Self: UabdlEmitter<T0, T1, T2>,
15270    {
15271        <Self as UabdlEmitter<T0, T1, T2>>::uabdl(self, op0, op1, op2);
15272    }
15273    pub fn uabdl2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15274    where
15275        Self: Uabdl2Emitter<T0, T1, T2>,
15276    {
15277        <Self as Uabdl2Emitter<T0, T1, T2>>::uabdl2(self, op0, op1, op2);
15278    }
15279    pub fn uadalp<T0, T1>(&mut self, op0: T0, op1: T1)
15280    where
15281        Self: UadalpEmitter<T0, T1>,
15282    {
15283        <Self as UadalpEmitter<T0, T1>>::uadalp(self, op0, op1);
15284    }
15285    pub fn uaddl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15286    where
15287        Self: UaddlEmitter<T0, T1, T2>,
15288    {
15289        <Self as UaddlEmitter<T0, T1, T2>>::uaddl(self, op0, op1, op2);
15290    }
15291    pub fn uaddl2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15292    where
15293        Self: Uaddl2Emitter<T0, T1, T2>,
15294    {
15295        <Self as Uaddl2Emitter<T0, T1, T2>>::uaddl2(self, op0, op1, op2);
15296    }
15297    pub fn uaddlp<T0, T1>(&mut self, op0: T0, op1: T1)
15298    where
15299        Self: UaddlpEmitter<T0, T1>,
15300    {
15301        <Self as UaddlpEmitter<T0, T1>>::uaddlp(self, op0, op1);
15302    }
15303    pub fn uaddlv<T0, T1>(&mut self, op0: T0, op1: T1)
15304    where
15305        Self: UaddlvEmitter<T0, T1>,
15306    {
15307        <Self as UaddlvEmitter<T0, T1>>::uaddlv(self, op0, op1);
15308    }
15309    pub fn uaddw<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15310    where
15311        Self: UaddwEmitter<T0, T1, T2>,
15312    {
15313        <Self as UaddwEmitter<T0, T1, T2>>::uaddw(self, op0, op1, op2);
15314    }
15315    pub fn uaddw2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15316    where
15317        Self: Uaddw2Emitter<T0, T1, T2>,
15318    {
15319        <Self as Uaddw2Emitter<T0, T1, T2>>::uaddw2(self, op0, op1, op2);
15320    }
15321    pub fn ucvtf<T0, T1>(&mut self, op0: T0, op1: T1)
15322    where
15323        Self: UcvtfEmitter<T0, T1>,
15324    {
15325        <Self as UcvtfEmitter<T0, T1>>::ucvtf(self, op0, op1);
15326    }
15327    pub fn ucvtf_3<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15328    where
15329        Self: Ucvtf3Emitter<T0, T1, T2>,
15330    {
15331        <Self as Ucvtf3Emitter<T0, T1, T2>>::ucvtf_3(self, op0, op1, op2);
15332    }
15333    pub fn uhadd<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15334    where
15335        Self: UhaddEmitter<T0, T1, T2>,
15336    {
15337        <Self as UhaddEmitter<T0, T1, T2>>::uhadd(self, op0, op1, op2);
15338    }
15339    pub fn uhsub<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15340    where
15341        Self: UhsubEmitter<T0, T1, T2>,
15342    {
15343        <Self as UhsubEmitter<T0, T1, T2>>::uhsub(self, op0, op1, op2);
15344    }
15345    pub fn umaxp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15346    where
15347        Self: UmaxpEmitter<T0, T1, T2>,
15348    {
15349        <Self as UmaxpEmitter<T0, T1, T2>>::umaxp(self, op0, op1, op2);
15350    }
15351    pub fn umaxv<T0, T1>(&mut self, op0: T0, op1: T1)
15352    where
15353        Self: UmaxvEmitter<T0, T1>,
15354    {
15355        <Self as UmaxvEmitter<T0, T1>>::umaxv(self, op0, op1);
15356    }
15357    pub fn uminp<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15358    where
15359        Self: UminpEmitter<T0, T1, T2>,
15360    {
15361        <Self as UminpEmitter<T0, T1, T2>>::uminp(self, op0, op1, op2);
15362    }
15363    pub fn uminv<T0, T1>(&mut self, op0: T0, op1: T1)
15364    where
15365        Self: UminvEmitter<T0, T1>,
15366    {
15367        <Self as UminvEmitter<T0, T1>>::uminv(self, op0, op1);
15368    }
15369    pub fn umlal<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15370    where
15371        Self: UmlalEmitter<T0, T1, T2>,
15372    {
15373        <Self as UmlalEmitter<T0, T1, T2>>::umlal(self, op0, op1, op2);
15374    }
15375    pub fn umlal2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15376    where
15377        Self: Umlal2Emitter<T0, T1, T2>,
15378    {
15379        <Self as Umlal2Emitter<T0, T1, T2>>::umlal2(self, op0, op1, op2);
15380    }
15381    pub fn umlsl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15382    where
15383        Self: UmlslEmitter<T0, T1, T2>,
15384    {
15385        <Self as UmlslEmitter<T0, T1, T2>>::umlsl(self, op0, op1, op2);
15386    }
15387    pub fn umlsl2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15388    where
15389        Self: Umlsl2Emitter<T0, T1, T2>,
15390    {
15391        <Self as Umlsl2Emitter<T0, T1, T2>>::umlsl2(self, op0, op1, op2);
15392    }
15393    pub fn umov<T0, T1>(&mut self, op0: T0, op1: T1)
15394    where
15395        Self: UmovEmitter<T0, T1>,
15396    {
15397        <Self as UmovEmitter<T0, T1>>::umov(self, op0, op1);
15398    }
15399    pub fn umull2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15400    where
15401        Self: Umull2Emitter<T0, T1, T2>,
15402    {
15403        <Self as Umull2Emitter<T0, T1, T2>>::umull2(self, op0, op1, op2);
15404    }
15405    pub fn uqadd<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15406    where
15407        Self: UqaddEmitter<T0, T1, T2>,
15408    {
15409        <Self as UqaddEmitter<T0, T1, T2>>::uqadd(self, op0, op1, op2);
15410    }
15411    pub fn uqrshl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15412    where
15413        Self: UqrshlEmitter<T0, T1, T2>,
15414    {
15415        <Self as UqrshlEmitter<T0, T1, T2>>::uqrshl(self, op0, op1, op2);
15416    }
15417    pub fn uqrshrn<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15418    where
15419        Self: UqrshrnEmitter<T0, T1, T2>,
15420    {
15421        <Self as UqrshrnEmitter<T0, T1, T2>>::uqrshrn(self, op0, op1, op2);
15422    }
15423    pub fn uqrshrn2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15424    where
15425        Self: Uqrshrn2Emitter<T0, T1, T2>,
15426    {
15427        <Self as Uqrshrn2Emitter<T0, T1, T2>>::uqrshrn2(self, op0, op1, op2);
15428    }
15429    pub fn uqshl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15430    where
15431        Self: UqshlEmitter<T0, T1, T2>,
15432    {
15433        <Self as UqshlEmitter<T0, T1, T2>>::uqshl(self, op0, op1, op2);
15434    }
15435    pub fn uqshrn<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15436    where
15437        Self: UqshrnEmitter<T0, T1, T2>,
15438    {
15439        <Self as UqshrnEmitter<T0, T1, T2>>::uqshrn(self, op0, op1, op2);
15440    }
15441    pub fn uqshrn2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15442    where
15443        Self: Uqshrn2Emitter<T0, T1, T2>,
15444    {
15445        <Self as Uqshrn2Emitter<T0, T1, T2>>::uqshrn2(self, op0, op1, op2);
15446    }
15447    pub fn uqsub<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15448    where
15449        Self: UqsubEmitter<T0, T1, T2>,
15450    {
15451        <Self as UqsubEmitter<T0, T1, T2>>::uqsub(self, op0, op1, op2);
15452    }
15453    pub fn uqxtn<T0, T1>(&mut self, op0: T0, op1: T1)
15454    where
15455        Self: UqxtnEmitter<T0, T1>,
15456    {
15457        <Self as UqxtnEmitter<T0, T1>>::uqxtn(self, op0, op1);
15458    }
15459    pub fn uqxtn2<T0, T1>(&mut self, op0: T0, op1: T1)
15460    where
15461        Self: Uqxtn2Emitter<T0, T1>,
15462    {
15463        <Self as Uqxtn2Emitter<T0, T1>>::uqxtn2(self, op0, op1);
15464    }
15465    pub fn urecpe<T0, T1>(&mut self, op0: T0, op1: T1)
15466    where
15467        Self: UrecpeEmitter<T0, T1>,
15468    {
15469        <Self as UrecpeEmitter<T0, T1>>::urecpe(self, op0, op1);
15470    }
15471    pub fn urhadd<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15472    where
15473        Self: UrhaddEmitter<T0, T1, T2>,
15474    {
15475        <Self as UrhaddEmitter<T0, T1, T2>>::urhadd(self, op0, op1, op2);
15476    }
15477    pub fn urshl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15478    where
15479        Self: UrshlEmitter<T0, T1, T2>,
15480    {
15481        <Self as UrshlEmitter<T0, T1, T2>>::urshl(self, op0, op1, op2);
15482    }
15483    pub fn urshr<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15484    where
15485        Self: UrshrEmitter<T0, T1, T2>,
15486    {
15487        <Self as UrshrEmitter<T0, T1, T2>>::urshr(self, op0, op1, op2);
15488    }
15489    pub fn ursqrte<T0, T1>(&mut self, op0: T0, op1: T1)
15490    where
15491        Self: UrsqrteEmitter<T0, T1>,
15492    {
15493        <Self as UrsqrteEmitter<T0, T1>>::ursqrte(self, op0, op1);
15494    }
15495    pub fn ursra<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15496    where
15497        Self: UrsraEmitter<T0, T1, T2>,
15498    {
15499        <Self as UrsraEmitter<T0, T1, T2>>::ursra(self, op0, op1, op2);
15500    }
15501    pub fn ushl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15502    where
15503        Self: UshlEmitter<T0, T1, T2>,
15504    {
15505        <Self as UshlEmitter<T0, T1, T2>>::ushl(self, op0, op1, op2);
15506    }
15507    pub fn ushll<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15508    where
15509        Self: UshllEmitter<T0, T1, T2>,
15510    {
15511        <Self as UshllEmitter<T0, T1, T2>>::ushll(self, op0, op1, op2);
15512    }
15513    pub fn ushll2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15514    where
15515        Self: Ushll2Emitter<T0, T1, T2>,
15516    {
15517        <Self as Ushll2Emitter<T0, T1, T2>>::ushll2(self, op0, op1, op2);
15518    }
15519    pub fn ushr<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15520    where
15521        Self: UshrEmitter<T0, T1, T2>,
15522    {
15523        <Self as UshrEmitter<T0, T1, T2>>::ushr(self, op0, op1, op2);
15524    }
15525    pub fn usqadd<T0, T1>(&mut self, op0: T0, op1: T1)
15526    where
15527        Self: UsqaddEmitter<T0, T1>,
15528    {
15529        <Self as UsqaddEmitter<T0, T1>>::usqadd(self, op0, op1);
15530    }
15531    pub fn usra<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15532    where
15533        Self: UsraEmitter<T0, T1, T2>,
15534    {
15535        <Self as UsraEmitter<T0, T1, T2>>::usra(self, op0, op1, op2);
15536    }
15537    pub fn usubl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15538    where
15539        Self: UsublEmitter<T0, T1, T2>,
15540    {
15541        <Self as UsublEmitter<T0, T1, T2>>::usubl(self, op0, op1, op2);
15542    }
15543    pub fn usubl2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15544    where
15545        Self: Usubl2Emitter<T0, T1, T2>,
15546    {
15547        <Self as Usubl2Emitter<T0, T1, T2>>::usubl2(self, op0, op1, op2);
15548    }
15549    pub fn usubw<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15550    where
15551        Self: UsubwEmitter<T0, T1, T2>,
15552    {
15553        <Self as UsubwEmitter<T0, T1, T2>>::usubw(self, op0, op1, op2);
15554    }
15555    pub fn usubw2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15556    where
15557        Self: Usubw2Emitter<T0, T1, T2>,
15558    {
15559        <Self as Usubw2Emitter<T0, T1, T2>>::usubw2(self, op0, op1, op2);
15560    }
15561    pub fn uxtl<T0, T1>(&mut self, op0: T0, op1: T1)
15562    where
15563        Self: UxtlEmitter<T0, T1>,
15564    {
15565        <Self as UxtlEmitter<T0, T1>>::uxtl(self, op0, op1);
15566    }
15567    pub fn uxtl2<T0, T1>(&mut self, op0: T0, op1: T1)
15568    where
15569        Self: Uxtl2Emitter<T0, T1>,
15570    {
15571        <Self as Uxtl2Emitter<T0, T1>>::uxtl2(self, op0, op1);
15572    }
15573    pub fn uzp1<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15574    where
15575        Self: Uzp1Emitter<T0, T1, T2>,
15576    {
15577        <Self as Uzp1Emitter<T0, T1, T2>>::uzp1(self, op0, op1, op2);
15578    }
15579    pub fn uzp2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15580    where
15581        Self: Uzp2Emitter<T0, T1, T2>,
15582    {
15583        <Self as Uzp2Emitter<T0, T1, T2>>::uzp2(self, op0, op1, op2);
15584    }
15585    pub fn xtn<T0, T1>(&mut self, op0: T0, op1: T1)
15586    where
15587        Self: XtnEmitter<T0, T1>,
15588    {
15589        <Self as XtnEmitter<T0, T1>>::xtn(self, op0, op1);
15590    }
15591    pub fn xtn2<T0, T1>(&mut self, op0: T0, op1: T1)
15592    where
15593        Self: Xtn2Emitter<T0, T1>,
15594    {
15595        <Self as Xtn2Emitter<T0, T1>>::xtn2(self, op0, op1);
15596    }
15597    pub fn zip1<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15598    where
15599        Self: Zip1Emitter<T0, T1, T2>,
15600    {
15601        <Self as Zip1Emitter<T0, T1, T2>>::zip1(self, op0, op1, op2);
15602    }
15603    pub fn zip2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15604    where
15605        Self: Zip2Emitter<T0, T1, T2>,
15606    {
15607        <Self as Zip2Emitter<T0, T1, T2>>::zip2(self, op0, op1, op2);
15608    }
15609    pub fn aesd<T0, T1>(&mut self, op0: T0, op1: T1)
15610    where
15611        Self: AesdEmitter<T0, T1>,
15612    {
15613        <Self as AesdEmitter<T0, T1>>::aesd(self, op0, op1);
15614    }
15615    pub fn aese<T0, T1>(&mut self, op0: T0, op1: T1)
15616    where
15617        Self: AeseEmitter<T0, T1>,
15618    {
15619        <Self as AeseEmitter<T0, T1>>::aese(self, op0, op1);
15620    }
15621    pub fn aesimc<T0, T1>(&mut self, op0: T0, op1: T1)
15622    where
15623        Self: AesimcEmitter<T0, T1>,
15624    {
15625        <Self as AesimcEmitter<T0, T1>>::aesimc(self, op0, op1);
15626    }
15627    pub fn aesmc<T0, T1>(&mut self, op0: T0, op1: T1)
15628    where
15629        Self: AesmcEmitter<T0, T1>,
15630    {
15631        <Self as AesmcEmitter<T0, T1>>::aesmc(self, op0, op1);
15632    }
15633    pub fn sha1c<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15634    where
15635        Self: Sha1cEmitter<T0, T1, T2>,
15636    {
15637        <Self as Sha1cEmitter<T0, T1, T2>>::sha1c(self, op0, op1, op2);
15638    }
15639    pub fn sha1h<T0, T1>(&mut self, op0: T0, op1: T1)
15640    where
15641        Self: Sha1hEmitter<T0, T1>,
15642    {
15643        <Self as Sha1hEmitter<T0, T1>>::sha1h(self, op0, op1);
15644    }
15645    pub fn sha1m<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15646    where
15647        Self: Sha1mEmitter<T0, T1, T2>,
15648    {
15649        <Self as Sha1mEmitter<T0, T1, T2>>::sha1m(self, op0, op1, op2);
15650    }
15651    pub fn sha1p<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15652    where
15653        Self: Sha1pEmitter<T0, T1, T2>,
15654    {
15655        <Self as Sha1pEmitter<T0, T1, T2>>::sha1p(self, op0, op1, op2);
15656    }
15657    pub fn sha1su0<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15658    where
15659        Self: Sha1su0Emitter<T0, T1, T2>,
15660    {
15661        <Self as Sha1su0Emitter<T0, T1, T2>>::sha1su0(self, op0, op1, op2);
15662    }
15663    pub fn sha1su1<T0, T1>(&mut self, op0: T0, op1: T1)
15664    where
15665        Self: Sha1su1Emitter<T0, T1>,
15666    {
15667        <Self as Sha1su1Emitter<T0, T1>>::sha1su1(self, op0, op1);
15668    }
15669    pub fn sha256h<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15670    where
15671        Self: Sha256hEmitter<T0, T1, T2>,
15672    {
15673        <Self as Sha256hEmitter<T0, T1, T2>>::sha256h(self, op0, op1, op2);
15674    }
15675    pub fn sha256h2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15676    where
15677        Self: Sha256h2Emitter<T0, T1, T2>,
15678    {
15679        <Self as Sha256h2Emitter<T0, T1, T2>>::sha256h2(self, op0, op1, op2);
15680    }
15681    pub fn sha256su0<T0, T1>(&mut self, op0: T0, op1: T1)
15682    where
15683        Self: Sha256su0Emitter<T0, T1>,
15684    {
15685        <Self as Sha256su0Emitter<T0, T1>>::sha256su0(self, op0, op1);
15686    }
15687    pub fn sha256su1<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15688    where
15689        Self: Sha256su1Emitter<T0, T1, T2>,
15690    {
15691        <Self as Sha256su1Emitter<T0, T1, T2>>::sha256su1(self, op0, op1, op2);
15692    }
15693    pub fn sqrdmlah<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15694    where
15695        Self: SqrdmlahEmitter<T0, T1, T2>,
15696    {
15697        <Self as SqrdmlahEmitter<T0, T1, T2>>::sqrdmlah(self, op0, op1, op2);
15698    }
15699    pub fn sqrdmlsh<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15700    where
15701        Self: SqrdmlshEmitter<T0, T1, T2>,
15702    {
15703        <Self as SqrdmlshEmitter<T0, T1, T2>>::sqrdmlsh(self, op0, op1, op2);
15704    }
15705    pub fn fcadd<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
15706    where
15707        Self: FcaddEmitter<T0, T1, T2, T3>,
15708    {
15709        <Self as FcaddEmitter<T0, T1, T2, T3>>::fcadd(self, op0, op1, op2, op3);
15710    }
15711    pub fn fcmla<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
15712    where
15713        Self: FcmlaEmitter<T0, T1, T2, T3>,
15714    {
15715        <Self as FcmlaEmitter<T0, T1, T2, T3>>::fcmla(self, op0, op1, op2, op3);
15716    }
15717    pub fn fjcvtzs<T0, T1>(&mut self, op0: T0, op1: T1)
15718    where
15719        Self: FjcvtzsEmitter<T0, T1>,
15720    {
15721        <Self as FjcvtzsEmitter<T0, T1>>::fjcvtzs(self, op0, op1);
15722    }
15723    pub fn fmlal<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15724    where
15725        Self: FmlalEmitter<T0, T1, T2>,
15726    {
15727        <Self as FmlalEmitter<T0, T1, T2>>::fmlal(self, op0, op1, op2);
15728    }
15729    pub fn fmlal2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15730    where
15731        Self: Fmlal2Emitter<T0, T1, T2>,
15732    {
15733        <Self as Fmlal2Emitter<T0, T1, T2>>::fmlal2(self, op0, op1, op2);
15734    }
15735    pub fn fmlsl<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15736    where
15737        Self: FmlslEmitter<T0, T1, T2>,
15738    {
15739        <Self as FmlslEmitter<T0, T1, T2>>::fmlsl(self, op0, op1, op2);
15740    }
15741    pub fn fmlsl2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15742    where
15743        Self: Fmlsl2Emitter<T0, T1, T2>,
15744    {
15745        <Self as Fmlsl2Emitter<T0, T1, T2>>::fmlsl2(self, op0, op1, op2);
15746    }
15747    pub fn bcax<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
15748    where
15749        Self: BcaxEmitter<T0, T1, T2, T3>,
15750    {
15751        <Self as BcaxEmitter<T0, T1, T2, T3>>::bcax(self, op0, op1, op2, op3);
15752    }
15753    pub fn eor3<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
15754    where
15755        Self: Eor3Emitter<T0, T1, T2, T3>,
15756    {
15757        <Self as Eor3Emitter<T0, T1, T2, T3>>::eor3(self, op0, op1, op2, op3);
15758    }
15759    pub fn rax1<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15760    where
15761        Self: Rax1Emitter<T0, T1, T2>,
15762    {
15763        <Self as Rax1Emitter<T0, T1, T2>>::rax1(self, op0, op1, op2);
15764    }
15765    pub fn xar<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
15766    where
15767        Self: XarEmitter<T0, T1, T2, T3>,
15768    {
15769        <Self as XarEmitter<T0, T1, T2, T3>>::xar(self, op0, op1, op2, op3);
15770    }
15771    pub fn sha512h<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15772    where
15773        Self: Sha512hEmitter<T0, T1, T2>,
15774    {
15775        <Self as Sha512hEmitter<T0, T1, T2>>::sha512h(self, op0, op1, op2);
15776    }
15777    pub fn sha512h2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15778    where
15779        Self: Sha512h2Emitter<T0, T1, T2>,
15780    {
15781        <Self as Sha512h2Emitter<T0, T1, T2>>::sha512h2(self, op0, op1, op2);
15782    }
15783    pub fn sha512su0<T0, T1>(&mut self, op0: T0, op1: T1)
15784    where
15785        Self: Sha512su0Emitter<T0, T1>,
15786    {
15787        <Self as Sha512su0Emitter<T0, T1>>::sha512su0(self, op0, op1);
15788    }
15789    pub fn sha512su1<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15790    where
15791        Self: Sha512su1Emitter<T0, T1, T2>,
15792    {
15793        <Self as Sha512su1Emitter<T0, T1, T2>>::sha512su1(self, op0, op1, op2);
15794    }
15795    pub fn sm3partw1<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15796    where
15797        Self: Sm3partw1Emitter<T0, T1, T2>,
15798    {
15799        <Self as Sm3partw1Emitter<T0, T1, T2>>::sm3partw1(self, op0, op1, op2);
15800    }
15801    pub fn sm3partw2<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15802    where
15803        Self: Sm3partw2Emitter<T0, T1, T2>,
15804    {
15805        <Self as Sm3partw2Emitter<T0, T1, T2>>::sm3partw2(self, op0, op1, op2);
15806    }
15807    pub fn sm3ss1<T0, T1, T2, T3>(&mut self, op0: T0, op1: T1, op2: T2, op3: T3)
15808    where
15809        Self: Sm3ss1Emitter<T0, T1, T2, T3>,
15810    {
15811        <Self as Sm3ss1Emitter<T0, T1, T2, T3>>::sm3ss1(self, op0, op1, op2, op3);
15812    }
15813    pub fn sm3tt1a<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15814    where
15815        Self: Sm3tt1aEmitter<T0, T1, T2>,
15816    {
15817        <Self as Sm3tt1aEmitter<T0, T1, T2>>::sm3tt1a(self, op0, op1, op2);
15818    }
15819    pub fn sm3tt1b<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15820    where
15821        Self: Sm3tt1bEmitter<T0, T1, T2>,
15822    {
15823        <Self as Sm3tt1bEmitter<T0, T1, T2>>::sm3tt1b(self, op0, op1, op2);
15824    }
15825    pub fn sm3tt2a<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15826    where
15827        Self: Sm3tt2aEmitter<T0, T1, T2>,
15828    {
15829        <Self as Sm3tt2aEmitter<T0, T1, T2>>::sm3tt2a(self, op0, op1, op2);
15830    }
15831    pub fn sm3tt2b<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15832    where
15833        Self: Sm3tt2bEmitter<T0, T1, T2>,
15834    {
15835        <Self as Sm3tt2bEmitter<T0, T1, T2>>::sm3tt2b(self, op0, op1, op2);
15836    }
15837    pub fn sm4e<T0, T1>(&mut self, op0: T0, op1: T1)
15838    where
15839        Self: Sm4eEmitter<T0, T1>,
15840    {
15841        <Self as Sm4eEmitter<T0, T1>>::sm4e(self, op0, op1);
15842    }
15843    pub fn sm4ekey<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15844    where
15845        Self: Sm4ekeyEmitter<T0, T1, T2>,
15846    {
15847        <Self as Sm4ekeyEmitter<T0, T1, T2>>::sm4ekey(self, op0, op1, op2);
15848    }
15849    pub fn sdot<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15850    where
15851        Self: SdotEmitter<T0, T1, T2>,
15852    {
15853        <Self as SdotEmitter<T0, T1, T2>>::sdot(self, op0, op1, op2);
15854    }
15855    pub fn udot<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15856    where
15857        Self: UdotEmitter<T0, T1, T2>,
15858    {
15859        <Self as UdotEmitter<T0, T1, T2>>::udot(self, op0, op1, op2);
15860    }
15861    pub fn bfcvt<T0, T1>(&mut self, op0: T0, op1: T1)
15862    where
15863        Self: BfcvtEmitter<T0, T1>,
15864    {
15865        <Self as BfcvtEmitter<T0, T1>>::bfcvt(self, op0, op1);
15866    }
15867    pub fn bfcvtn<T0, T1>(&mut self, op0: T0, op1: T1)
15868    where
15869        Self: BfcvtnEmitter<T0, T1>,
15870    {
15871        <Self as BfcvtnEmitter<T0, T1>>::bfcvtn(self, op0, op1);
15872    }
15873    pub fn bfcvtn2<T0, T1>(&mut self, op0: T0, op1: T1)
15874    where
15875        Self: Bfcvtn2Emitter<T0, T1>,
15876    {
15877        <Self as Bfcvtn2Emitter<T0, T1>>::bfcvtn2(self, op0, op1);
15878    }
15879    pub fn bfmlalb<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15880    where
15881        Self: BfmlalbEmitter<T0, T1, T2>,
15882    {
15883        <Self as BfmlalbEmitter<T0, T1, T2>>::bfmlalb(self, op0, op1, op2);
15884    }
15885    pub fn bfmlalt<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15886    where
15887        Self: BfmlaltEmitter<T0, T1, T2>,
15888    {
15889        <Self as BfmlaltEmitter<T0, T1, T2>>::bfmlalt(self, op0, op1, op2);
15890    }
15891    pub fn bfmmla<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15892    where
15893        Self: BfmmlaEmitter<T0, T1, T2>,
15894    {
15895        <Self as BfmmlaEmitter<T0, T1, T2>>::bfmmla(self, op0, op1, op2);
15896    }
15897    pub fn bfdot<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15898    where
15899        Self: BfdotEmitter<T0, T1, T2>,
15900    {
15901        <Self as BfdotEmitter<T0, T1, T2>>::bfdot(self, op0, op1, op2);
15902    }
15903    pub fn smmla<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15904    where
15905        Self: SmmlaEmitter<T0, T1, T2>,
15906    {
15907        <Self as SmmlaEmitter<T0, T1, T2>>::smmla(self, op0, op1, op2);
15908    }
15909    pub fn sudot<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15910    where
15911        Self: SudotEmitter<T0, T1, T2>,
15912    {
15913        <Self as SudotEmitter<T0, T1, T2>>::sudot(self, op0, op1, op2);
15914    }
15915    pub fn ummla<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15916    where
15917        Self: UmmlaEmitter<T0, T1, T2>,
15918    {
15919        <Self as UmmlaEmitter<T0, T1, T2>>::ummla(self, op0, op1, op2);
15920    }
15921    pub fn usdot<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15922    where
15923        Self: UsdotEmitter<T0, T1, T2>,
15924    {
15925        <Self as UsdotEmitter<T0, T1, T2>>::usdot(self, op0, op1, op2);
15926    }
15927    pub fn usmmla<T0, T1, T2>(&mut self, op0: T0, op1: T1, op2: T2)
15928    where
15929        Self: UsmmlaEmitter<T0, T1, T2>,
15930    {
15931        <Self as UsmmlaEmitter<T0, T1, T2>>::usmmla(self, op0, op1, op2);
15932    }
15933}