Home | History | Annotate | Download | only in Hexagon

Lines Matching refs:Hexagon

9 // The Hexagon processor has no instructions that load or store predicate
20 #include "Hexagon.h"
60 return "Hexagon Expand Predicate Spill Code";
83 if (Opc == Hexagon::S2_storerb_pci_pseudo ||
84 Opc == Hexagon::S2_storerh_pci_pseudo ||
85 Opc == Hexagon::S2_storeri_pci_pseudo ||
86 Opc == Hexagon::S2_storerd_pci_pseudo ||
87 Opc == Hexagon::S2_storerf_pci_pseudo) {
89 if (Opc == Hexagon::S2_storerd_pci_pseudo)
90 Opcode = Hexagon::S2_storerd_pci;
91 else if (Opc == Hexagon::S2_storeri_pci_pseudo)
92 Opcode = Hexagon::S2_storeri_pci;
93 else if (Opc == Hexagon::S2_storerh_pci_pseudo)
94 Opcode = Hexagon::S2_storerh_pci;
95 else if (Opc == Hexagon::S2_storerf_pci_pseudo)
96 Opcode = Hexagon::S2_storerf_pci;
97 else if (Opc == Hexagon::S2_storerb_pci_pseudo)
98 Opcode = Hexagon::S2_storerb_pci;
107 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::A2_tfrrcr),
108 Hexagon::C6)->addOperand(Op3);
115 NewMI->addOperand(MachineOperand::CreateReg(Hexagon::M0,
122 } else if (Opc == Hexagon::L2_loadrd_pci_pseudo ||
123 Opc == Hexagon::L2_loadri_pci_pseudo ||
124 Opc == Hexagon::L2_loadrh_pci_pseudo ||
125 Opc == Hexagon::L2_loadruh_pci_pseudo||
126 Opc == Hexagon::L2_loadrb_pci_pseudo ||
127 Opc == Hexagon::L2_loadrub_pci_pseudo) {
129 if (Opc == Hexagon::L2_loadrd_pci_pseudo)
130 Opcode = Hexagon::L2_loadrd_pci;
131 else if (Opc == Hexagon::L2_loadri_pci_pseudo)
132 Opcode = Hexagon::L2_loadri_pci;
133 else if (Opc == Hexagon::L2_loadrh_pci_pseudo)
134 Opcode = Hexagon::L2_loadrh_pci;
135 else if (Opc == Hexagon::L2_loadruh_pci_pseudo)
136 Opcode = Hexagon::L2_loadruh_pci;
137 else if (Opc == Hexagon::L2_loadrb_pci_pseudo)
138 Opcode = Hexagon::L2_loadrb_pci;
139 else if (Opc == Hexagon::L2_loadrub_pci_pseudo)
140 Opcode = Hexagon::L2_loadrub_pci;
150 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::A2_tfrrcr),
151 Hexagon::C6)->addOperand(Op4);
159 NewMI->addOperand(MachineOperand::CreateReg(Hexagon::M0,
165 } else if (Opc == Hexagon::L2_loadrd_pbr_pseudo ||
166 Opc == Hexagon::L2_loadri_pbr_pseudo ||
167 Opc == Hexagon::L2_loadrh_pbr_pseudo ||
168 Opc == Hexagon::L2_loadruh_pbr_pseudo||
169 Opc == Hexagon::L2_loadrb_pbr_pseudo ||
170 Opc == Hexagon::L2_loadrub_pbr_pseudo) {
172 if (Opc == Hexagon::L2_loadrd_pbr_pseudo)
173 Opcode = Hexagon::L2_loadrd_pbr;
174 else if (Opc == Hexagon::L2_loadri_pbr_pseudo)
175 Opcode = Hexagon::L2_loadri_pbr;
176 else if (Opc == Hexagon::L2_loadrh_pbr_pseudo)
177 Opcode = Hexagon::L2_loadrh_pbr;
178 else if (Opc == Hexagon::L2_loadruh_pbr_pseudo)
179 Opcode = Hexagon::L2_loadruh_pbr;
180 else if (Opc == Hexagon::L2_loadrb_pbr_pseudo)
181 Opcode = Hexagon::L2_loadrb_pbr;
182 else if (Opc == Hexagon::L2_loadrub_pbr_pseudo)
183 Opcode = Hexagon::L2_loadrub_pbr;
191 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::A2_tfrrcr),
192 Hexagon::C6)->addOperand(Op4);
199 NewMI->addOperand(MachineOperand::CreateReg(Hexagon::M0,
205 } else if (Opc == Hexagon::S2_storerd_pbr_pseudo ||
206 Opc == Hexagon::S2_storeri_pbr_pseudo ||
207 Opc == Hexagon::S2_storerh_pbr_pseudo ||
208 Opc == Hexagon::S2_storerb_pbr_pseudo ||
209 Opc == Hexagon::S2_storerf_pbr_pseudo) {
211 if (Opc == Hexagon::S2_storerd_pbr_pseudo)
212 Opcode = Hexagon::S2_storerd_pbr;
213 else if (Opc == Hexagon::S2_storeri_pbr_pseudo)
214 Opcode = Hexagon::S2_storeri_pbr;
215 else if (Opc == Hexagon::S2_storerh_pbr_pseudo)
216 Opcode = Hexagon::S2_storerh_pbr;
217 else if (Opc == Hexagon::S2_storerf_pbr_pseudo)
218 Opcode = Hexagon::S2_storerf_pbr;
219 else if (Opc == Hexagon::S2_storerb_pbr_pseudo)
220 Opcode = Hexagon::S2_storerb_pbr;
228 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::A2_tfrrcr),
229 Hexagon::C6)->addOperand(Op3);
235 NewMI->addOperand(MachineOperand::CreateReg(Hexagon::M0,
242 } else if (Opc == Hexagon::STriw_pred) {
250 assert(Hexagon::PredRegsRegClass.contains(SrcReg) &&
252 if (!TII->isValidOffset(Hexagon::S2_storeri_io, Offset)) {
253 if (!TII->isValidOffset(Hexagon::A2_addi, Offset)) {
255 TII->get(Hexagon::CONST32_Int_Real),
257 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::A2_add),
260 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::C2_tfrpr),
263 TII->get(Hexagon::S2_storeri_io))
267 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::A2_addi),
269 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::C2_tfrpr),
272 TII->get(Hexagon::S2_storeri_io))
278 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::C2_tfrpr),
281 TII->get(Hexagon::S2_storeri_io)).
286 } else if (Opc == Hexagon::LDriw_pred) {
289 assert(Hexagon::PredRegsRegClass.contains(DstReg) &&
296 if (!TII->isValidOffset(Hexagon::L2_loadri_io, Offset)) {
297 if (!TII->isValidOffset(Hexagon::A2_addi, Offset)) {
299 TII->get(Hexagon::CONST32_Int_Real),
301 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::A2_add),
305 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::L2_loadri_io),
309 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::C2_tfrrp),
312 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::A2_addi),
314 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::L2_loadri_io),
318 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::C2_tfrrp),
322 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::L2_loadri_io),
324 BuildMI(*MBB, MII, MI->getDebugLoc(), TII->get(Hexagon::C2_tfrrp),
343 const char *Name = "Hexagon Expand Predicate Spill Code";
344 PassInfo *PI = new PassInfo(Name, "hexagon-spill-pred",