LLVM  13.0.0git
Classes | Enumerations | Functions | Variables
llvm::Hexagon Namespace Reference

Classes

class  PacketIterator
 

Enumerations

enum  ArchEnum {
  ArchEnum::NoArch, ArchEnum::Generic, ArchEnum::V5, ArchEnum::V55,
  ArchEnum::V60, ArchEnum::V62, ArchEnum::V65, ArchEnum::V66,
  ArchEnum::V67, ArchEnum::V68
}
 
enum  { ps_sub_lo = 0, ps_sub_hi = 1 }
 
enum  Fixups {
  fixup_Hexagon_B22_PCREL = FirstTargetFixupKind, fixup_Hexagon_B15_PCREL, fixup_Hexagon_B7_PCREL, fixup_Hexagon_LO16,
  fixup_Hexagon_HI16, fixup_Hexagon_32, fixup_Hexagon_16, fixup_Hexagon_8,
  fixup_Hexagon_GPREL16_0, fixup_Hexagon_GPREL16_1, fixup_Hexagon_GPREL16_2, fixup_Hexagon_GPREL16_3,
  fixup_Hexagon_HL16, fixup_Hexagon_B13_PCREL, fixup_Hexagon_B9_PCREL, fixup_Hexagon_B32_PCREL_X,
  fixup_Hexagon_32_6_X, fixup_Hexagon_B22_PCREL_X, fixup_Hexagon_B15_PCREL_X, fixup_Hexagon_B13_PCREL_X,
  fixup_Hexagon_B9_PCREL_X, fixup_Hexagon_B7_PCREL_X, fixup_Hexagon_16_X, fixup_Hexagon_12_X,
  fixup_Hexagon_11_X, fixup_Hexagon_10_X, fixup_Hexagon_9_X, fixup_Hexagon_8_X,
  fixup_Hexagon_7_X, fixup_Hexagon_6_X, fixup_Hexagon_32_PCREL, fixup_Hexagon_COPY,
  fixup_Hexagon_GLOB_DAT, fixup_Hexagon_JMP_SLOT, fixup_Hexagon_RELATIVE, fixup_Hexagon_PLT_B22_PCREL,
  fixup_Hexagon_GOTREL_LO16, fixup_Hexagon_GOTREL_HI16, fixup_Hexagon_GOTREL_32, fixup_Hexagon_GOT_LO16,
  fixup_Hexagon_GOT_HI16, fixup_Hexagon_GOT_32, fixup_Hexagon_GOT_16, fixup_Hexagon_DTPMOD_32,
  fixup_Hexagon_DTPREL_LO16, fixup_Hexagon_DTPREL_HI16, fixup_Hexagon_DTPREL_32, fixup_Hexagon_DTPREL_16,
  fixup_Hexagon_GD_PLT_B22_PCREL, fixup_Hexagon_LD_PLT_B22_PCREL, fixup_Hexagon_GD_GOT_LO16, fixup_Hexagon_GD_GOT_HI16,
  fixup_Hexagon_GD_GOT_32, fixup_Hexagon_GD_GOT_16, fixup_Hexagon_LD_GOT_LO16, fixup_Hexagon_LD_GOT_HI16,
  fixup_Hexagon_LD_GOT_32, fixup_Hexagon_LD_GOT_16, fixup_Hexagon_IE_LO16, fixup_Hexagon_IE_HI16,
  fixup_Hexagon_IE_32, fixup_Hexagon_IE_16, fixup_Hexagon_IE_GOT_LO16, fixup_Hexagon_IE_GOT_HI16,
  fixup_Hexagon_IE_GOT_32, fixup_Hexagon_IE_GOT_16, fixup_Hexagon_TPREL_LO16, fixup_Hexagon_TPREL_HI16,
  fixup_Hexagon_TPREL_32, fixup_Hexagon_TPREL_16, fixup_Hexagon_6_PCREL_X, fixup_Hexagon_GOTREL_32_6_X,
  fixup_Hexagon_GOTREL_16_X, fixup_Hexagon_GOTREL_11_X, fixup_Hexagon_GOT_32_6_X, fixup_Hexagon_GOT_16_X,
  fixup_Hexagon_GOT_11_X, fixup_Hexagon_DTPREL_32_6_X, fixup_Hexagon_DTPREL_16_X, fixup_Hexagon_DTPREL_11_X,
  fixup_Hexagon_GD_GOT_32_6_X, fixup_Hexagon_GD_GOT_16_X, fixup_Hexagon_GD_GOT_11_X, fixup_Hexagon_LD_GOT_32_6_X,
  fixup_Hexagon_LD_GOT_16_X, fixup_Hexagon_LD_GOT_11_X, fixup_Hexagon_IE_32_6_X, fixup_Hexagon_IE_16_X,
  fixup_Hexagon_IE_GOT_32_6_X, fixup_Hexagon_IE_GOT_16_X, fixup_Hexagon_IE_GOT_11_X, fixup_Hexagon_TPREL_32_6_X,
  fixup_Hexagon_TPREL_16_X, fixup_Hexagon_TPREL_11_X, fixup_Hexagon_23_REG, fixup_Hexagon_27_REG,
  fixup_Hexagon_GD_PLT_B22_PCREL_X, fixup_Hexagon_GD_PLT_B32_PCREL_X, fixup_Hexagon_LD_PLT_B22_PCREL_X, fixup_Hexagon_LD_PLT_B32_PCREL_X,
  LastTargetFixupKind, NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
}
 
enum  FixupBitmaps : unsigned {
  Word8 = 0xff, Word16 = 0xffff, Word32 = 0xffffffff, Word32_LO = 0x00c03fff,
  Word32_HL = 0x0, Word32_GP = 0x0, Word32_B7 = 0x00001f18, Word32_B9 = 0x003000fe,
  Word32_B13 = 0x00202ffe, Word32_B15 = 0x00df20fe, Word32_B22 = 0x01ff3ffe, Word32_R6 = 0x000007e0,
  Word32_U6 = 0x0, Word32_U16 = 0x0, Word32_X26 = 0x0fff3fff
}
 

Functions

template<class ArchCont , typename Val >
bool ValidArch (ArchCont const &ArchList, Val HexArch)
 
template<class ArchCont , typename Val >
llvm::Optional< ArchEnumGetCpu (ArchCont const &ArchList, Val CPUString)
 
static constexpr ArrayRef< unsigned > ArchValsNum (ArchValsNumArray)
 
static constexpr ArrayRef< StringLiteralArchValsText (ArchValsTextArray)
 
static constexpr ArrayRef< StringLiteralCpuValsText (CpuValsTextArray)
 
static constexpr ArrayRef< StringLiteralCpuNickText (CpuNickTextArray)
 

Variables

static constexpr unsigned ArchValsNumArray [] = {5, 55, 60, 62, 65, 66, 67, 68}
 
static constexpr StringLiteral ArchValsTextArray [] = { "v5", "v55", "v60", "v62", "v65", "v66", "v67", "v68" }
 
static constexpr StringLiteral CpuValsTextArray [] = { "hexagonv5", "hexagonv55", "hexagonv60", "hexagonv62", "hexagonv65", "hexagonv66", "hexagonv67", "hexagonv67t", "hexagonv68" }
 
static constexpr StringLiteral CpuNickTextArray [] = { "v5", "v55", "v60", "v62", "v65", "v66", "v67", "v67t", "v68" }
 
static const std::map< std::string, ArchEnumCpuTable
 
static const std::map< std::string, unsigned > ElfFlagsByCpuStr
 
static const std::map< unsigned, std::string > ElfArchByMachFlags
 
static const std::map< unsigned, std::string > ElfCpuByMachFlags
 
const unsigned int StartPacket = 0x1
 
const unsigned int EndPacket = 0x2
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ps_sub_lo 
ps_sub_hi 

Definition at line 26 of file HexagonRegisterInfo.h.

◆ ArchEnum

Enumerator
NoArch 
Generic 
V5 
V55 
V60 
V62 
V65 
V66 
V67 
V68 

Definition at line 24 of file HexagonDepArch.h.

◆ FixupBitmaps

enum llvm::Hexagon::FixupBitmaps : unsigned
Enumerator
Word8 
Word16 
Word32 
Word32_LO 
Word32_HL 
Word32_GP 
Word32_B7 
Word32_B9 
Word32_B13 
Word32_B15 
Word32_B22 
Word32_R6 
Word32_U6 
Word32_U16 
Word32_X26 

Definition at line 122 of file HexagonFixupKinds.h.

◆ Fixups

Enumerator
fixup_Hexagon_B22_PCREL 
fixup_Hexagon_B15_PCREL 
fixup_Hexagon_B7_PCREL 
fixup_Hexagon_LO16 
fixup_Hexagon_HI16 
fixup_Hexagon_32 
fixup_Hexagon_16 
fixup_Hexagon_8 
fixup_Hexagon_GPREL16_0 
fixup_Hexagon_GPREL16_1 
fixup_Hexagon_GPREL16_2 
fixup_Hexagon_GPREL16_3 
fixup_Hexagon_HL16 
fixup_Hexagon_B13_PCREL 
fixup_Hexagon_B9_PCREL 
fixup_Hexagon_B32_PCREL_X 
fixup_Hexagon_32_6_X 
fixup_Hexagon_B22_PCREL_X 
fixup_Hexagon_B15_PCREL_X 
fixup_Hexagon_B13_PCREL_X 
fixup_Hexagon_B9_PCREL_X 
fixup_Hexagon_B7_PCREL_X 
fixup_Hexagon_16_X 
fixup_Hexagon_12_X 
fixup_Hexagon_11_X 
fixup_Hexagon_10_X 
fixup_Hexagon_9_X 
fixup_Hexagon_8_X 
fixup_Hexagon_7_X 
fixup_Hexagon_6_X 
fixup_Hexagon_32_PCREL 
fixup_Hexagon_COPY 
fixup_Hexagon_GLOB_DAT 
fixup_Hexagon_JMP_SLOT 
fixup_Hexagon_RELATIVE 
fixup_Hexagon_PLT_B22_PCREL 
fixup_Hexagon_GOTREL_LO16 
fixup_Hexagon_GOTREL_HI16 
fixup_Hexagon_GOTREL_32 
fixup_Hexagon_GOT_LO16 
fixup_Hexagon_GOT_HI16 
fixup_Hexagon_GOT_32 
fixup_Hexagon_GOT_16 
fixup_Hexagon_DTPMOD_32 
fixup_Hexagon_DTPREL_LO16 
fixup_Hexagon_DTPREL_HI16 
fixup_Hexagon_DTPREL_32 
fixup_Hexagon_DTPREL_16 
fixup_Hexagon_GD_PLT_B22_PCREL 
fixup_Hexagon_LD_PLT_B22_PCREL 
fixup_Hexagon_GD_GOT_LO16 
fixup_Hexagon_GD_GOT_HI16 
fixup_Hexagon_GD_GOT_32 
fixup_Hexagon_GD_GOT_16 
fixup_Hexagon_LD_GOT_LO16 
fixup_Hexagon_LD_GOT_HI16 
fixup_Hexagon_LD_GOT_32 
fixup_Hexagon_LD_GOT_16 
fixup_Hexagon_IE_LO16 
fixup_Hexagon_IE_HI16 
fixup_Hexagon_IE_32 
fixup_Hexagon_IE_16 
fixup_Hexagon_IE_GOT_LO16 
fixup_Hexagon_IE_GOT_HI16 
fixup_Hexagon_IE_GOT_32 
fixup_Hexagon_IE_GOT_16 
fixup_Hexagon_TPREL_LO16 
fixup_Hexagon_TPREL_HI16 
fixup_Hexagon_TPREL_32 
fixup_Hexagon_TPREL_16 
fixup_Hexagon_6_PCREL_X 
fixup_Hexagon_GOTREL_32_6_X 
fixup_Hexagon_GOTREL_16_X 
fixup_Hexagon_GOTREL_11_X 
fixup_Hexagon_GOT_32_6_X 
fixup_Hexagon_GOT_16_X 
fixup_Hexagon_GOT_11_X 
fixup_Hexagon_DTPREL_32_6_X 
fixup_Hexagon_DTPREL_16_X 
fixup_Hexagon_DTPREL_11_X 
fixup_Hexagon_GD_GOT_32_6_X 
fixup_Hexagon_GD_GOT_16_X 
fixup_Hexagon_GD_GOT_11_X 
fixup_Hexagon_LD_GOT_32_6_X 
fixup_Hexagon_LD_GOT_16_X 
fixup_Hexagon_LD_GOT_11_X 
fixup_Hexagon_IE_32_6_X 
fixup_Hexagon_IE_16_X 
fixup_Hexagon_IE_GOT_32_6_X 
fixup_Hexagon_IE_GOT_16_X 
fixup_Hexagon_IE_GOT_11_X 
fixup_Hexagon_TPREL_32_6_X 
fixup_Hexagon_TPREL_16_X 
fixup_Hexagon_TPREL_11_X 
fixup_Hexagon_23_REG 
fixup_Hexagon_27_REG 
fixup_Hexagon_GD_PLT_B22_PCREL_X 
fixup_Hexagon_GD_PLT_B32_PCREL_X 
fixup_Hexagon_LD_PLT_B22_PCREL_X 
fixup_Hexagon_LD_PLT_B32_PCREL_X 
LastTargetFixupKind 
NumTargetFixupKinds 

Definition at line 16 of file HexagonFixupKinds.h.

Function Documentation

◆ ArchValsNum()

static constexpr ArrayRef<unsigned> llvm::Hexagon::ArchValsNum ( ArchValsNumArray  )
staticconstexpr

◆ ArchValsText()

static constexpr ArrayRef<StringLiteral> llvm::Hexagon::ArchValsText ( ArchValsTextArray  )
staticconstexpr

◆ CpuNickText()

static constexpr ArrayRef<StringLiteral> llvm::Hexagon::CpuNickText ( CpuNickTextArray  )
staticconstexpr

◆ CpuValsText()

static constexpr ArrayRef<StringLiteral> llvm::Hexagon::CpuValsText ( CpuValsTextArray  )
staticconstexpr

◆ GetCpu()

template<class ArchCont , typename Val >
llvm::Optional<ArchEnum> llvm::Hexagon::GetCpu ( ArchCont const ArchList,
Val  CPUString 
)

◆ ValidArch()

template<class ArchCont , typename Val >
bool llvm::Hexagon::ValidArch ( ArchCont const ArchList,
Val  HexArch 
)

Definition at line 22 of file HexagonArch.h.

References llvm::any_of(), llvm::sys::path::begin(), and llvm::sys::path::end().

Variable Documentation

◆ ArchValsNumArray

constexpr unsigned llvm::Hexagon::ArchValsNumArray[] = {5, 55, 60, 62, 65, 66, 67, 68}
staticconstexpr

Definition at line 26 of file HexagonDepArch.h.

◆ ArchValsTextArray

constexpr StringLiteral llvm::Hexagon::ArchValsTextArray[] = { "v5", "v55", "v60", "v62", "v65", "v66", "v67", "v68" }
staticconstexpr

Definition at line 29 of file HexagonDepArch.h.

◆ CpuNickTextArray

constexpr StringLiteral llvm::Hexagon::CpuNickTextArray[] = { "v5", "v55", "v60", "v62", "v65", "v66", "v67", "v67t", "v68" }
staticconstexpr

Definition at line 35 of file HexagonDepArch.h.

◆ CpuTable

const std::map<std::string, ArchEnum> llvm::Hexagon::CpuTable
static
Initial value:
{
{"generic", Hexagon::ArchEnum::V5},
{"hexagonv5", Hexagon::ArchEnum::V5},
{"hexagonv55", Hexagon::ArchEnum::V55},
{"hexagonv60", Hexagon::ArchEnum::V60},
{"hexagonv62", Hexagon::ArchEnum::V62},
{"hexagonv65", Hexagon::ArchEnum::V65},
{"hexagonv66", Hexagon::ArchEnum::V66},
{"hexagonv67", Hexagon::ArchEnum::V67},
{"hexagonv67t", Hexagon::ArchEnum::V67},
{"hexagonv68", Hexagon::ArchEnum::V68},
}

Definition at line 38 of file HexagonDepArch.h.

Referenced by llvm::HexagonSubtarget::initializeSubtargetDependencies(), and isCPUValid().

◆ CpuValsTextArray

constexpr StringLiteral llvm::Hexagon::CpuValsTextArray[] = { "hexagonv5", "hexagonv55", "hexagonv60", "hexagonv62", "hexagonv65", "hexagonv66", "hexagonv67", "hexagonv67t", "hexagonv68" }
staticconstexpr

Definition at line 32 of file HexagonDepArch.h.

◆ ElfArchByMachFlags

const std::map<unsigned, std::string> llvm::Hexagon::ElfArchByMachFlags
static

◆ ElfCpuByMachFlags

const std::map<unsigned, std::string> llvm::Hexagon::ElfCpuByMachFlags
static
Initial value:

Definition at line 74 of file HexagonDepArch.h.

◆ ElfFlagsByCpuStr

const std::map<std::string, unsigned> llvm::Hexagon::ElfFlagsByCpuStr
static
Initial value:

Definition at line 51 of file HexagonDepArch.h.

◆ EndPacket

const unsigned int llvm::Hexagon::EndPacket = 0x2

◆ StartPacket

const unsigned int llvm::Hexagon::StartPacket = 0x1
llvm::ELF::EF_HEXAGON_MACH_V65
@ EF_HEXAGON_MACH_V65
Definition: ELF.h:604
llvm::ELF::EF_HEXAGON_MACH_V60
@ EF_HEXAGON_MACH_V60
Definition: ELF.h:602
llvm::ELF::EF_HEXAGON_MACH_V5
@ EF_HEXAGON_MACH_V5
Definition: ELF.h:600
llvm::ELF::EF_HEXAGON_MACH_V67
@ EF_HEXAGON_MACH_V67
Definition: ELF.h:606
llvm::ELF::EF_HEXAGON_MACH_V62
@ EF_HEXAGON_MACH_V62
Definition: ELF.h:603
llvm::ELF::EF_HEXAGON_MACH_V55
@ EF_HEXAGON_MACH_V55
Definition: ELF.h:601
llvm::ELF::EF_HEXAGON_MACH_V67T
@ EF_HEXAGON_MACH_V67T
Definition: ELF.h:607
llvm::ELF::EF_HEXAGON_MACH_V66
@ EF_HEXAGON_MACH_V66
Definition: ELF.h:605
llvm::ELF::EF_HEXAGON_MACH_V68
@ EF_HEXAGON_MACH_V68
Definition: ELF.h:608