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),
50 Hexagon::R24, Hexagon::R25, Hexagon::R26, Hexagon::R27, 0
53 Hexagon::R16, Hexagon::R17, Hexagon::R18, Hexagon::R19,
54 Hexagon::R20, Hexagon::R21, Hexagon::R22, Hexagon::R23,
55 Hexagon::R24, Hexagon::R25, Hexagon::R26, Hexagon::R27, 0
77 Reserved.set(Hexagon::R29);
78 Reserved.set(Hexagon::R30);
79 Reserved.set(Hexagon::R31);
80 Reserved.set(Hexagon::D14);
81 Reserved.set(Hexagon::D15);
82 Reserved.set(Hexagon::LC0);
83 Reserved.set(Hexagon::LC1);
84 Reserved.set(Hexagon::SA0);
85 Reserved.set(Hexagon::SA1);
93 &Hexagon::IntRegsRegClass, &Hexagon::IntRegsRegClass,
94 &Hexagon::IntRegsRegClass, &Hexagon::IntRegsRegClass,
97 &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,
123 // Hexagon_TODO: Do we need to enforce this for Hexagon?
163 if ( (MI.getOpcode() == Hexagon::LDriw) ||
164 (MI.getOpcode() == Hexagon::LDrid) ||
165 (MI.getOpcode() == Hexagon::LDrih) ||
166 (MI.getOpcode() == Hexagon::LDriuh) ||
167 (MI.getOpcode() == Hexagon::LDrib) ||
168 (MI.getOpcode() == Hexagon::LDriub) ||
169 (MI.getOpcode() == Hexagon::LDriw_f) ||
170 (MI.getOpcode() == Hexagon::LDrid_f)) {
171 unsigned dstReg = (MI.getOpcode() == Hexagon::LDrid) ?
172 getSubReg(MI.getOperand(0).getReg(), Hexagon::subreg_loreg) :
176 if (!TII.isValidOffset(Hexagon::ADD_ri, Offset)) {
178 TII.get(Hexagon::CONST32_Int_Real), dstReg).addImm(Offset);
180 TII.get(Hexagon::ADD_rr),
184 TII.get(Hexagon::ADD_ri),
190 } else if ((MI.getOpcode() == Hexagon::STriw_indexed) ||
191 (MI.getOpcode() == Hexagon::STriw) ||
192 (MI.getOpcode() == Hexagon::STrid) ||
193 (MI.getOpcode() == Hexagon::STrih) ||
194 (MI.getOpcode() == Hexagon::STrib) ||
195 (MI.getOpcode() == Hexagon::STrid_f) ||
196 (MI.getOpcode() == Hexagon::STriw_f)) {
205 if (!TII.isValidOffset(Hexagon::ADD_ri, Offset)) {
207 TII.get(Hexagon::CONST32_Int_Real), resReg).addImm(Offset);
209 TII.get(Hexagon::ADD_rr),
213 TII.get(Hexagon::ADD_ri),
237 } else if (!TII.isValidOffset(Hexagon::ADD_ri, Offset)) {
239 TII.get(Hexagon::CONST32_Int_Real), ResReg).addImm(Offset);
241 TII.get(Hexagon::ADD_rr), ResReg).addReg(FrameReg).
248 TII.get(Hexagon::ADD_ri), ResReg).addReg(FrameReg).
258 TII.get(Hexagon::CONST32_Int_Real), dstReg).addImm(Offset);
260 TII.get(Hexagon::ADD_rr),
277 return Hexagon::R31;
284 return Hexagon::R30;
287 return Hexagon::R29;
291 return Hexagon::R30;
295 return Hexagon::R29;