1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Pseudo-instruction MC lowering Source Fragment *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9bool AArch64AsmPrinter::
10emitPseudoExpansionLowering(MCStreamer &OutStreamer,
11 const MachineInstr *MI) {
12 switch (MI->getOpcode()) {
13 default: return false;
14 case AArch64::BLRNoIP: {
15 MCInst TmpInst;
16 MCOperand MCOp;
17 TmpInst.setOpcode(AArch64::BLR);
18 // Operand: Rn
19 lowerOperand(MO: MI->getOperand(i: 0), MCOp);
20 TmpInst.addOperand(Op: MCOp);
21 EmitToStreamer(S&: OutStreamer, Inst: TmpInst);
22 break;
23 }
24 case AArch64::BLR_X16: {
25 MCInst TmpInst;
26 MCOperand MCOp;
27 TmpInst.setOpcode(AArch64::BLR);
28 // Operand: Rn
29 TmpInst.addOperand(Op: MCOperand::createReg(Reg: AArch64::X16));
30 EmitToStreamer(S&: OutStreamer, Inst: TmpInst);
31 break;
32 }
33 case AArch64::MRS_FPCR: {
34 MCInst TmpInst;
35 MCOperand MCOp;
36 TmpInst.setOpcode(AArch64::MRS);
37 // Operand: Rt
38 lowerOperand(MO: MI->getOperand(i: 0), MCOp);
39 TmpInst.addOperand(Op: MCOp);
40 // Operand: systemreg
41 TmpInst.addOperand(Op: MCOperand::createImm(Val: 55840));
42 EmitToStreamer(S&: OutStreamer, Inst: TmpInst);
43 break;
44 }
45 case AArch64::MRS_FPSR: {
46 MCInst TmpInst;
47 MCOperand MCOp;
48 TmpInst.setOpcode(AArch64::MRS);
49 // Operand: Rt
50 lowerOperand(MO: MI->getOperand(i: 0), MCOp);
51 TmpInst.addOperand(Op: MCOp);
52 // Operand: systemreg
53 TmpInst.addOperand(Op: MCOperand::createImm(Val: 55841));
54 EmitToStreamer(S&: OutStreamer, Inst: TmpInst);
55 break;
56 }
57 case AArch64::MSR_FPCR: {
58 MCInst TmpInst;
59 MCOperand MCOp;
60 TmpInst.setOpcode(AArch64::MSR);
61 // Operand: systemreg
62 TmpInst.addOperand(Op: MCOperand::createImm(Val: 55840));
63 // Operand: Rt
64 lowerOperand(MO: MI->getOperand(i: 0), MCOp);
65 TmpInst.addOperand(Op: MCOp);
66 EmitToStreamer(S&: OutStreamer, Inst: TmpInst);
67 break;
68 }
69 case AArch64::MSR_FPSR: {
70 MCInst TmpInst;
71 MCOperand MCOp;
72 TmpInst.setOpcode(AArch64::MSR);
73 // Operand: systemreg
74 TmpInst.addOperand(Op: MCOperand::createImm(Val: 55841));
75 // Operand: Rt
76 lowerOperand(MO: MI->getOperand(i: 0), MCOp);
77 TmpInst.addOperand(Op: MCOp);
78 EmitToStreamer(S&: OutStreamer, Inst: TmpInst);
79 break;
80 }
81 case AArch64::PTEST_PP_ANY: {
82 MCInst TmpInst;
83 MCOperand MCOp;
84 TmpInst.setOpcode(AArch64::PTEST_PP);
85 // Operand: Pg
86 lowerOperand(MO: MI->getOperand(i: 0), MCOp);
87 TmpInst.addOperand(Op: MCOp);
88 // Operand: Pn
89 lowerOperand(MO: MI->getOperand(i: 1), MCOp);
90 TmpInst.addOperand(Op: MCOp);
91 EmitToStreamer(S&: OutStreamer, Inst: TmpInst);
92 break;
93 }
94 }
95 return true;
96}
97
98