Home | History | Annotate | Download | only in Hexagon

Lines Matching refs:Hexagon

1 //===-- HexagonRegisterInfo.cpp - Hexagon Register Information ------------===//
10 // This file contains the Hexagon implementation of the TargetRegisterInfo
16 #include "Hexagon.h"
42 : HexagonGenRegisterInfo(Hexagon::R31),
51 Hexagon::R24, Hexagon::R25, Hexagon::R26, Hexagon::R27, 0
54 Hexagon::R16, Hexagon::R17, Hexagon::R18, Hexagon::R19,
55 Hexagon::R20, Hexagon::R21, Hexagon::R22, Hexagon::R23,
56 Hexagon::R24, Hexagon::R25, Hexagon::R26, Hexagon::R27, 0
78 Reserved.set(Hexagon::R29);
79 Reserved.set(Hexagon::R30);
80 Reserved.set(Hexagon::R31);
81 Reserved.set(Hexagon::D14);
82 Reserved.set(Hexagon::D15);
83 Reserved.set(Hexagon::LC0);
84 Reserved.set(Hexagon::LC1);
85 Reserved.set(Hexagon::SA0);
86 Reserved.set(Hexagon::SA1);
94 &Hexagon::IntRegsRegClass, &Hexagon::IntRegsRegClass,
95 &Hexagon::IntRegsRegClass, &Hexagon::IntRegsRegClass,
98 &Hexagon::IntRegsRegClass, &Hexagon::IntRegsRegClass,
99 &Hexagon::IntRegsRegClass, &Hexagon::IntRegsRegClass,
100 &Hexagon::IntRegsRegClass, &Hexagon::IntRegsRegClass,
101 &Hexagon::IntRegsRegClass, &Hexagon::IntRegsRegClass,
102 &Hexagon::IntRegsRegClass, &Hexagon::IntRegsRegClass,
103 &Hexagon::IntRegsRegClass, &Hexagon::IntRegsRegClass,
124 // Hexagon_TODO: Do we need to enforce this for Hexagon?
162 if ( (MI.getOpcode() == Hexagon::LDriw) ||
163 (MI.getOpcode() == Hexagon::LDrid) ||
164 (MI.getOpcode() == Hexagon::LDrih) ||
165 (MI.getOpcode() == Hexagon::LDriuh) ||
166 (MI.getOpcode() == Hexagon::LDrib) ||
167 (MI.getOpcode() == Hexagon::LDriub) ||
168 (MI.getOpcode() == Hexagon::LDriw_f) ||
169 (MI.getOpcode() == Hexagon::LDrid_f)) {
170 unsigned dstReg = (MI.getOpcode() == Hexagon::LDrid) ?
171 getSubReg(MI.getOperand(0).getReg(), Hexagon::subreg_loreg) :
175 if (!TII.isValidOffset(Hexagon::ADD_ri, Offset)) {
177 TII.get(Hexagon::CONST32_Int_Real), dstReg).addImm(Offset);
179 TII.get(Hexagon::ADD_rr),
183 TII.get(Hexagon::ADD_ri),
189 } else if ((MI.getOpcode() == Hexagon::STriw_indexed) ||
190 (MI.getOpcode() == Hexagon::STriw) ||
191 (MI.getOpcode() == Hexagon::STrid) ||
192 (MI.getOpcode() == Hexagon::STrih) ||
193 (MI.getOpcode() == Hexagon::STrib) ||
194 (MI.getOpcode() == Hexagon::STrid_f) ||
195 (MI.getOpcode() == Hexagon::STriw_f)) {
204 if (!TII.isValidOffset(Hexagon::ADD_ri, Offset)) {
206 TII.get(Hexagon::CONST32_Int_Real), resReg).addImm(Offset);
208 TII.get(Hexagon::ADD_rr),
212 TII.get(Hexagon::ADD_ri),
224 } else if (!TII.isValidOffset(Hexagon::ADD_ri, Offset)) {
226 TII.get(Hexagon::CONST32_Int_Real), resReg).addImm(Offset);
228 TII.get(Hexagon::ADD_rr),
235 TII.get(Hexagon::ADD_ri),
244 TII.get(Hexagon::CONST32_Int_Real), dstReg).addImm(Offset);
246 TII.get(Hexagon::ADD_rr),
263 return Hexagon::R31;
270 return Hexagon::R30;
273 return Hexagon::R29;
277 return Hexagon::R30;
281 return Hexagon::R29;