Lines Matching refs:Hexagon
1 //===-- HexagonMCCodeEmitter.cpp - Hexagon Target Descriptions ------------===//
10 #include "Hexagon.h"
31 using namespace Hexagon;
98 if (Producer >= Hexagon::W0 && Producer <= Hexagon::W15)
99 if (Consumer >= Hexagon::V0 && Consumer <= Hexagon::V31)
100 return ((Consumer - Hexagon::V0) >> 1) == (Producer - Hexagon::W0);
114 static unsigned RegMap[8] = {Hexagon::R8, Hexagon::R9, Hexagon::R10,
115 Hexagon::R11, Hexagon::R12, Hexagon::R13,
116 Hexagon::R14, Hexagon::R15};
159 : static_cast<unsigned>(Hexagon::NoRegister);
163 : static_cast<unsigned>(Hexagon::NoRegister);
177 // Hexagon PRM 10.11 Construct Nt from distance
183 MCO.setReg(Offset + Hexagon::R0);
201 if (HMB.getOpcode() >= Hexagon::DuplexIClass0 &&
202 HMB.getOpcode() <= Hexagon::DuplexIClassF) {
207 case Hexagon::DuplexIClass0:
210 case Hexagon::DuplexIClass1:
213 case Hexagon::DuplexIClass2:
216 case Hexagon::DuplexIClass3:
219 case Hexagon::DuplexIClass4:
222 case Hexagon::DuplexIClass5:
225 case Hexagon::DuplexIClass6:
228 case Hexagon::DuplexIClass7:
231 case Hexagon::DuplexIClass8:
234 case Hexagon::DuplexIClass9:
237 case Hexagon::DuplexIClassA:
240 case Hexagon::DuplexIClassB:
243 case Hexagon::DuplexIClassC:
246 case Hexagon::DuplexIClassD:
249 case Hexagon::DuplexIClassE:
252 case Hexagon::DuplexIClassF:
294 Hexagon::Fixups getFixupNoBits(MCInstrInfo const &MCII, const MCInst &MI,
303 return Hexagon::fixup_Hexagon_GOTREL_32_6_X;
305 return Hexagon::fixup_Hexagon_GOT_32_6_X;
307 return Hexagon::fixup_Hexagon_TPREL_32_6_X;
309 return Hexagon::fixup_Hexagon_DTPREL_32_6_X;
311 return Hexagon::fixup_Hexagon_GD_GOT_32_6_X;
313 return Hexagon::fixup_Hexagon_LD_GOT_32_6_X;
315 return Hexagon::fixup_Hexagon_IE_32_6_X;
317 return Hexagon::fixup_Hexagon_IE_GOT_32_6_X;
321 return Hexagon::fixup_Hexagon_B32_PCREL_X;
323 return Hexagon::fixup_Hexagon_32_6_X;
328 return Hexagon::fixup_Hexagon_B13_PCREL;
331 case Hexagon::HI:
332 case Hexagon::A2_tfrih:
335 return Hexagon::fixup_Hexagon_GOT_HI16;
337 return Hexagon::fixup_Hexagon_GOTREL_HI16;
339 return Hexagon::fixup_Hexagon_GD_GOT_HI16;
341 return Hexagon::fixup_Hexagon_LD_GOT_HI16;
343 return Hexagon::fixup_Hexagon_IE_HI16;
345 return Hexagon::fixup_Hexagon_IE_GOT_HI16;
347 return Hexagon::fixup_Hexagon_TPREL_HI16;
349 return Hexagon::fixup_Hexagon_DTPREL_HI16;
351 return Hexagon::fixup_Hexagon_HI16;
356 case Hexagon::LO:
357 case Hexagon::A2_tfril:
360 return Hexagon::fixup_Hexagon_GOT_LO16;
362 return Hexagon::fixup_Hexagon_GOTREL_LO16;
364 return Hexagon::fixup_Hexagon_GD_GOT_LO16;
366 return Hexagon::fixup_Hexagon_LD_GOT_LO16;
368 return Hexagon::fixup_Hexagon_IE_LO16;
370 return Hexagon::fixup_Hexagon_IE_GOT_LO16;
372 return Hexagon::fixup_Hexagon_TPREL_LO16;
374 return Hexagon::fixup_Hexagon_DTPREL_LO16;
376 return Hexagon::fixup_Hexagon_LO16;
386 if (*ImpUses != Hexagon::GP)
457 Hexagon::Fixups FixupKind =
458 Hexagon::Fixups(Hexagon::fixup_Hexagon_TPREL_LO16);
479 FixupKind = *Extended ? Hexagon::fixup_Hexagon_DTPREL_32_6_X
480 : Hexagon::fixup_Hexagon_DTPREL_32;
483 FixupKind = *Extended ? Hexagon::fixup_Hexagon_GOT_32_6_X
484 : Hexagon::fixup_Hexagon_GOT_32;
487 FixupKind = *Extended ? Hexagon::fixup_Hexagon_GOTREL_32_6_X
488 : Hexagon::fixup_Hexagon_GOTREL_32;
491 FixupKind = *Extended ? Hexagon::fixup_Hexagon_GD_GOT_32_6_X
492 : Hexagon::fixup_Hexagon_GD_GOT_32;
495 FixupKind = *Extended ? Hexagon::fixup_Hexagon_IE_32_6_X
496 : Hexagon::fixup_Hexagon_IE_32;
499 FixupKind = *Extended ? Hexagon::fixup_Hexagon_IE_GOT_32_6_X
500 : Hexagon::fixup_Hexagon_IE_GOT_32;
503 FixupKind = *Extended ? Hexagon::fixup_Hexagon_LD_GOT_32_6_X
504 : Hexagon::fixup_Hexagon_LD_GOT_32;
507 FixupKind = Hexagon::fixup_Hexagon_32_PCREL;
511 *Extended ? Hexagon::fixup_Hexagon_32_6_X : Hexagon::fixup_Hexagon_32;
514 FixupKind = *Extended ? Hexagon::fixup_Hexagon_TPREL_32_6_X
515 : Hexagon::fixup_Hexagon_TPREL_32;
525 FixupKind = Hexagon::fixup_Hexagon_GD_PLT_B22_PCREL;
528 FixupKind = Hexagon::fixup_Hexagon_LD_PLT_B22_PCREL;
531 FixupKind = *Extended ? Hexagon::fixup_Hexagon_B22_PCREL_X
532 : Hexagon::fixup_Hexagon_B22_PCREL;
535 FixupKind = Hexagon::fixup_Hexagon_PLT_B22_PCREL;
546 FixupKind = Hexagon::fixup_Hexagon_DTPREL_16_X;
549 FixupKind = Hexagon::fixup_Hexagon_GOT_16_X;
552 FixupKind = Hexagon::fixup_Hexagon_GOTREL_16_X;
555 FixupKind = Hexagon::fixup_Hexagon_GD_GOT_16_X;
558 FixupKind = Hexagon::fixup_Hexagon_IE_16_X;
561 FixupKind = Hexagon::fixup_Hexagon_IE_GOT_16_X;
564 FixupKind = Hexagon::fixup_Hexagon_LD_GOT_16_X;
567 FixupKind = Hexagon::fixup_Hexagon_16_X;
570 FixupKind = Hexagon::fixup_Hexagon_TPREL_16_X;
579 FixupKind = Hexagon::fixup_Hexagon_23_REG;
585 FixupKind = Hexagon::fixup_Hexagon_DTPREL_16;
588 if (MCID.getOpcode() == Hexagon::HI)
589 FixupKind = Hexagon::fixup_Hexagon_GOTREL_HI16;
591 FixupKind = Hexagon::fixup_Hexagon_GOTREL_LO16;
594 FixupKind = Hexagon::fixup_Hexagon_GD_GOT_16;
597 FixupKind = Hexagon::fixup_Hexagon_GPREL16_0;
600 FixupKind = Hexagon::fixup_Hexagon_HI16;
603 FixupKind = Hexagon::fixup_Hexagon_IE_GOT_16;
606 FixupKind = Hexagon::fixup_Hexagon_LD_GOT_16;
609 FixupKind = Hexagon::fixup_Hexagon_LO16;
612 FixupKind = Hexagon::fixup_Hexagon_TPREL_16;
622 FixupKind = *Extended ? Hexagon::fixup_Hexagon_B15_PCREL_X
623 : Hexagon::fixup_Hexagon_B15_PCREL;
633 FixupKind = Hexagon::fixup_Hexagon_B13_PCREL;
645 FixupKind = Hexagon::fixup_Hexagon_GOT_16_X;
648 FixupKind = Hexagon::fixup_Hexagon_GOTREL_16_X;
651 FixupKind = Hexagon::fixup_Hexagon_12_X;
664 FixupKind = Hexagon::fixup_Hexagon_DTPREL_11_X;
667 FixupKind = Hexagon::fixup_Hexagon_GOT_11_X;
670 FixupKind = Hexagon::fixup_Hexagon_GOTREL_11_X;
673 FixupKind = Hexagon::fixup_Hexagon_GD_GOT_11_X;
676 FixupKind = Hexagon::fixup_Hexagon_IE_GOT_11_X;
679 FixupKind = Hexagon::fixup_Hexagon_LD_GOT_11_X;
682 FixupKind = Hexagon::fixup_Hexagon_11_X;
685 FixupKind = Hexagon::fixup_Hexagon_TPREL_11_X;
693 FixupKind = Hexagon::fixup_Hexagon_TPREL_11_X;
705 FixupKind = Hexagon::fixup_Hexagon_10_X;
717 FixupKind = *Extended ? Hexagon::fixup_Hexagon_B9_PCREL_X
718 : Hexagon::fixup_Hexagon_B9_PCREL;
720 FixupKind = Hexagon::fixup_Hexagon_9_X;
727 FixupKind = Hexagon::fixup_Hexagon_8_X;
735 FixupKind = *Extended ? Hexagon::fixup_Hexagon_B7_PCREL_X
736 : Hexagon::fixup_Hexagon_B7_PCREL;
738 FixupKind = Hexagon::fixup_Hexagon_7_X;
747 FixupKind = Hexagon::fixup_Hexagon_DTPREL_16_X;
752 FixupKind = Hexagon::fixup_Hexagon_GOT_11_X;
755 FixupKind = Hexagon::fixup_Hexagon_GOTREL_11_X;
758 FixupKind = Hexagon::fixup_Hexagon_6_PCREL_X;
761 FixupKind = Hexagon::fixup_Hexagon_TPREL_16_X;
764 FixupKind = Hexagon::fixup_Hexagon_6_X;
801 case Hexagon::A2_tfrrcr:
802 case Hexagon::A2_tfrcrr:
803 if(Reg == Hexagon::M0)
804 Reg = Hexagon::C6;
805 if(Reg == Hexagon::M1)
806 Reg = Hexagon::C7;