@@ -74,37 +74,6 @@ static unsigned getReg(const MCDisassembler *D, unsigned RC, unsigned RegNo) {
7474 return *(RegInfo->getRegClass (RC).begin () + RegNo);
7575}
7676
77- static DecodeStatus Decode3RInstruction (MCInst &Inst, unsigned Insn,
78- uint64_t Address,
79- const MCDisassembler *Decoder);
80-
81- static DecodeStatus Decode3RImmInstruction (MCInst &Inst, unsigned Insn,
82- uint64_t Address,
83- const MCDisassembler *Decoder);
84- static DecodeStatus Decode2RUSInstruction (MCInst &Inst, unsigned Insn,
85- uint64_t Address,
86- const MCDisassembler *Decoder);
87-
88- static DecodeStatus Decode2RUSBitpInstruction (MCInst &Inst, unsigned Insn,
89- uint64_t Address,
90- const MCDisassembler *Decoder);
91-
92- static DecodeStatus DecodeL3RInstruction (MCInst &Inst, unsigned Insn,
93- uint64_t Address,
94- const MCDisassembler *Decoder);
95-
96- static DecodeStatus DecodeL3RSrcDstInstruction (MCInst &Inst, unsigned Insn,
97- uint64_t Address,
98- const MCDisassembler *Decoder);
99-
100- static DecodeStatus DecodeL2RUSInstruction (MCInst &Inst, unsigned Insn,
101- uint64_t Address,
102- const MCDisassembler *Decoder);
103-
104- static DecodeStatus DecodeL2RUSBitpInstruction (MCInst &Inst, unsigned Insn,
105- uint64_t Address,
106- const MCDisassembler *Decoder);
107-
10877static DecodeStatus DecodeGRRegsRegisterClass (MCInst &Inst, unsigned RegNo,
10978 uint64_t Address,
11079 const MCDisassembler *Decoder) {
@@ -178,6 +147,116 @@ Decode3OpInstruction(unsigned Insn, unsigned &Op1, unsigned &Op2,
178147 return MCDisassembler::Success;
179148}
180149
150+ static DecodeStatus Decode3RInstruction (MCInst &Inst, unsigned Insn,
151+ uint64_t Address,
152+ const MCDisassembler *Decoder) {
153+ unsigned Op1, Op2, Op3;
154+ DecodeStatus S = Decode3OpInstruction (Insn, Op1, Op2, Op3);
155+ if (S == MCDisassembler::Success) {
156+ DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
157+ DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
158+ DecodeGRRegsRegisterClass (Inst, Op3, Address, Decoder);
159+ }
160+ return S;
161+ }
162+
163+ static DecodeStatus Decode3RImmInstruction (MCInst &Inst, unsigned Insn,
164+ uint64_t Address,
165+ const MCDisassembler *Decoder) {
166+ unsigned Op1, Op2, Op3;
167+ DecodeStatus S = Decode3OpInstruction (Insn, Op1, Op2, Op3);
168+ if (S == MCDisassembler::Success) {
169+ Inst.addOperand (MCOperand::createImm (Op1));
170+ DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
171+ DecodeGRRegsRegisterClass (Inst, Op3, Address, Decoder);
172+ }
173+ return S;
174+ }
175+
176+ static DecodeStatus Decode2RUSInstruction (MCInst &Inst, unsigned Insn,
177+ uint64_t Address,
178+ const MCDisassembler *Decoder) {
179+ unsigned Op1, Op2, Op3;
180+ DecodeStatus S = Decode3OpInstruction (Insn, Op1, Op2, Op3);
181+ if (S == MCDisassembler::Success) {
182+ DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
183+ DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
184+ Inst.addOperand (MCOperand::createImm (Op3));
185+ }
186+ return S;
187+ }
188+
189+ static DecodeStatus Decode2RUSBitpInstruction (MCInst &Inst, unsigned Insn,
190+ uint64_t Address,
191+ const MCDisassembler *Decoder) {
192+ unsigned Op1, Op2, Op3;
193+ DecodeStatus S = Decode3OpInstruction (Insn, Op1, Op2, Op3);
194+ if (S == MCDisassembler::Success) {
195+ DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
196+ DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
197+ DecodeBitpOperand (Inst, Op3, Address, Decoder);
198+ }
199+ return S;
200+ }
201+
202+ static DecodeStatus DecodeL3RInstruction (MCInst &Inst, unsigned Insn,
203+ uint64_t Address,
204+ const MCDisassembler *Decoder) {
205+ unsigned Op1, Op2, Op3;
206+ DecodeStatus S =
207+ Decode3OpInstruction (fieldFromInstruction (Insn, 0 , 16 ), Op1, Op2, Op3);
208+ if (S == MCDisassembler::Success) {
209+ DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
210+ DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
211+ DecodeGRRegsRegisterClass (Inst, Op3, Address, Decoder);
212+ }
213+ return S;
214+ }
215+
216+ static DecodeStatus DecodeL3RSrcDstInstruction (MCInst &Inst, unsigned Insn,
217+ uint64_t Address,
218+ const MCDisassembler *Decoder) {
219+ unsigned Op1, Op2, Op3;
220+ DecodeStatus S =
221+ Decode3OpInstruction (fieldFromInstruction (Insn, 0 , 16 ), Op1, Op2, Op3);
222+ if (S == MCDisassembler::Success) {
223+ DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
224+ DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
225+ DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
226+ DecodeGRRegsRegisterClass (Inst, Op3, Address, Decoder);
227+ }
228+ return S;
229+ }
230+
231+ static DecodeStatus DecodeL2RUSInstruction (MCInst &Inst, unsigned Insn,
232+ uint64_t Address,
233+ const MCDisassembler *Decoder) {
234+ unsigned Op1, Op2, Op3;
235+ DecodeStatus S =
236+ Decode3OpInstruction (fieldFromInstruction (Insn, 0 , 16 ), Op1, Op2, Op3);
237+ if (S == MCDisassembler::Success) {
238+ DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
239+ DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
240+ Inst.addOperand (MCOperand::createImm (Op3));
241+ }
242+ return S;
243+ }
244+
245+ static DecodeStatus DecodeL2RUSBitpInstruction (MCInst &Inst, unsigned Insn,
246+ uint64_t Address,
247+ const MCDisassembler *Decoder) {
248+ unsigned Op1, Op2, Op3;
249+ DecodeStatus S =
250+ Decode3OpInstruction (fieldFromInstruction (Insn, 0 , 16 ), Op1, Op2, Op3);
251+ if (S == MCDisassembler::Success) {
252+ DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
253+ DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
254+ DecodeBitpOperand (Inst, Op3, Address, Decoder);
255+ }
256+ return S;
257+ }
258+
259+
181260static DecodeStatus Decode2OpInstructionFail (MCInst &Inst, unsigned Insn,
182261 uint64_t Address,
183262 const MCDisassembler *Decoder) {
@@ -440,115 +519,6 @@ static DecodeStatus DecodeLR2RInstruction(MCInst &Inst, unsigned Insn,
440519 return S;
441520}
442521
443- static DecodeStatus Decode3RInstruction (MCInst &Inst, unsigned Insn,
444- uint64_t Address,
445- const MCDisassembler *Decoder) {
446- unsigned Op1, Op2, Op3;
447- DecodeStatus S = Decode3OpInstruction (Insn, Op1, Op2, Op3);
448- if (S == MCDisassembler::Success) {
449- DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
450- DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
451- DecodeGRRegsRegisterClass (Inst, Op3, Address, Decoder);
452- }
453- return S;
454- }
455-
456- static DecodeStatus Decode3RImmInstruction (MCInst &Inst, unsigned Insn,
457- uint64_t Address,
458- const MCDisassembler *Decoder) {
459- unsigned Op1, Op2, Op3;
460- DecodeStatus S = Decode3OpInstruction (Insn, Op1, Op2, Op3);
461- if (S == MCDisassembler::Success) {
462- Inst.addOperand (MCOperand::createImm (Op1));
463- DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
464- DecodeGRRegsRegisterClass (Inst, Op3, Address, Decoder);
465- }
466- return S;
467- }
468-
469- static DecodeStatus Decode2RUSInstruction (MCInst &Inst, unsigned Insn,
470- uint64_t Address,
471- const MCDisassembler *Decoder) {
472- unsigned Op1, Op2, Op3;
473- DecodeStatus S = Decode3OpInstruction (Insn, Op1, Op2, Op3);
474- if (S == MCDisassembler::Success) {
475- DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
476- DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
477- Inst.addOperand (MCOperand::createImm (Op3));
478- }
479- return S;
480- }
481-
482- static DecodeStatus Decode2RUSBitpInstruction (MCInst &Inst, unsigned Insn,
483- uint64_t Address,
484- const MCDisassembler *Decoder) {
485- unsigned Op1, Op2, Op3;
486- DecodeStatus S = Decode3OpInstruction (Insn, Op1, Op2, Op3);
487- if (S == MCDisassembler::Success) {
488- DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
489- DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
490- DecodeBitpOperand (Inst, Op3, Address, Decoder);
491- }
492- return S;
493- }
494-
495- static DecodeStatus DecodeL3RInstruction (MCInst &Inst, unsigned Insn,
496- uint64_t Address,
497- const MCDisassembler *Decoder) {
498- unsigned Op1, Op2, Op3;
499- DecodeStatus S =
500- Decode3OpInstruction (fieldFromInstruction (Insn, 0 , 16 ), Op1, Op2, Op3);
501- if (S == MCDisassembler::Success) {
502- DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
503- DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
504- DecodeGRRegsRegisterClass (Inst, Op3, Address, Decoder);
505- }
506- return S;
507- }
508-
509- static DecodeStatus DecodeL3RSrcDstInstruction (MCInst &Inst, unsigned Insn,
510- uint64_t Address,
511- const MCDisassembler *Decoder) {
512- unsigned Op1, Op2, Op3;
513- DecodeStatus S =
514- Decode3OpInstruction (fieldFromInstruction (Insn, 0 , 16 ), Op1, Op2, Op3);
515- if (S == MCDisassembler::Success) {
516- DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
517- DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
518- DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
519- DecodeGRRegsRegisterClass (Inst, Op3, Address, Decoder);
520- }
521- return S;
522- }
523-
524- static DecodeStatus DecodeL2RUSInstruction (MCInst &Inst, unsigned Insn,
525- uint64_t Address,
526- const MCDisassembler *Decoder) {
527- unsigned Op1, Op2, Op3;
528- DecodeStatus S =
529- Decode3OpInstruction (fieldFromInstruction (Insn, 0 , 16 ), Op1, Op2, Op3);
530- if (S == MCDisassembler::Success) {
531- DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
532- DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
533- Inst.addOperand (MCOperand::createImm (Op3));
534- }
535- return S;
536- }
537-
538- static DecodeStatus DecodeL2RUSBitpInstruction (MCInst &Inst, unsigned Insn,
539- uint64_t Address,
540- const MCDisassembler *Decoder) {
541- unsigned Op1, Op2, Op3;
542- DecodeStatus S =
543- Decode3OpInstruction (fieldFromInstruction (Insn, 0 , 16 ), Op1, Op2, Op3);
544- if (S == MCDisassembler::Success) {
545- DecodeGRRegsRegisterClass (Inst, Op1, Address, Decoder);
546- DecodeGRRegsRegisterClass (Inst, Op2, Address, Decoder);
547- DecodeBitpOperand (Inst, Op3, Address, Decoder);
548- }
549- return S;
550- }
551-
552522static DecodeStatus DecodeL6RInstruction (MCInst &Inst, unsigned Insn,
553523 uint64_t Address,
554524 const MCDisassembler *Decoder) {
0 commit comments