LLVM 19.0.0git
Namespaces | Enumerations | Functions | Variables
HexagonBaseInfo.h File Reference
#include "HexagonDepITypes.h"
#include "MCTargetDesc/HexagonMCTargetDesc.h"
#include "llvm/MC/MCInstrDesc.h"

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::HexagonII
 HexagonII - This namespace holds all of the target specific flags that instruction info tracks.
 

Enumerations

enum  llvm::HexagonII::AddrMode {
  llvm::HexagonII::NoAddrMode = 0 , llvm::HexagonII::Absolute = 1 , llvm::HexagonII::AbsoluteSet = 2 , llvm::HexagonII::BaseImmOffset = 3 ,
  llvm::HexagonII::BaseLongOffset = 4 , llvm::HexagonII::BaseRegOffset = 5 , llvm::HexagonII::PostInc = 6
}
 
enum  llvm::HexagonII::MemAccessSize {
  llvm::HexagonII::NoMemAccess = 0 , llvm::HexagonII::ByteAccess , llvm::HexagonII::HalfWordAccess , llvm::HexagonII::WordAccess ,
  llvm::HexagonII::DoubleWordAccess , llvm::HexagonII::HVXVectorAccess
}
 
enum  llvm::HexagonII::HexagonTSFlagsVal {
  llvm::HexagonII::TypePos = 0 , llvm::HexagonII::TypeMask = 0x7f , llvm::HexagonII::SoloPos = 7 , llvm::HexagonII::SoloMask = 0x1 ,
  llvm::HexagonII::SoloAXPos = 8 , llvm::HexagonII::SoloAXMask = 0x1 , llvm::HexagonII::RestrictSlot1AOKPos = 9 , llvm::HexagonII::RestrictSlot1AOKMask = 0x1 ,
  llvm::HexagonII::PredicatedPos = 10 , llvm::HexagonII::PredicatedMask = 0x1 , llvm::HexagonII::PredicatedFalsePos = 11 , llvm::HexagonII::PredicatedFalseMask = 0x1 ,
  llvm::HexagonII::PredicatedNewPos = 12 , llvm::HexagonII::PredicatedNewMask = 0x1 , llvm::HexagonII::PredicateLatePos = 13 , llvm::HexagonII::PredicateLateMask = 0x1 ,
  llvm::HexagonII::NewValuePos = 14 , llvm::HexagonII::NewValueMask = 0x1 , llvm::HexagonII::hasNewValuePos = 15 , llvm::HexagonII::hasNewValueMask = 0x1 ,
  llvm::HexagonII::NewValueOpPos = 16 , llvm::HexagonII::NewValueOpMask = 0x7 , llvm::HexagonII::mayNVStorePos = 19 , llvm::HexagonII::mayNVStoreMask = 0x1 ,
  llvm::HexagonII::NVStorePos = 20 , llvm::HexagonII::NVStoreMask = 0x1 , llvm::HexagonII::mayCVLoadPos = 21 , llvm::HexagonII::mayCVLoadMask = 0x1 ,
  llvm::HexagonII::CVLoadPos = 22 , llvm::HexagonII::CVLoadMask = 0x1 , llvm::HexagonII::ExtendablePos = 23 , llvm::HexagonII::ExtendableMask = 0x1 ,
  llvm::HexagonII::ExtendedPos = 24 , llvm::HexagonII::ExtendedMask = 0x1 , llvm::HexagonII::ExtendableOpPos = 25 , llvm::HexagonII::ExtendableOpMask = 0x7 ,
  llvm::HexagonII::ExtentSignedPos = 28 , llvm::HexagonII::ExtentSignedMask = 0x1 , llvm::HexagonII::ExtentBitsPos = 29 , llvm::HexagonII::ExtentBitsMask = 0x1f ,
  llvm::HexagonII::ExtentAlignPos = 34 , llvm::HexagonII::ExtentAlignMask = 0x3 , llvm::HexagonII::CofMax1Pos = 36 , llvm::HexagonII::CofMax1Mask = 0x1 ,
  llvm::HexagonII::CofRelax1Pos = 37 , llvm::HexagonII::CofRelax1Mask = 0x1 , llvm::HexagonII::CofRelax2Pos = 38 , llvm::HexagonII::CofRelax2Mask = 0x1 ,
  llvm::HexagonII::RestrictNoSlot1StorePos = 39 , llvm::HexagonII::RestrictNoSlot1StoreMask = 0x1 , llvm::HexagonII::AddrModePos = 40 , llvm::HexagonII::AddrModeMask = 0x7 ,
  llvm::HexagonII::MemAccessSizePos = 43 , llvm::HexagonII::MemAccesSizeMask = 0xf , llvm::HexagonII::TakenPos = 47 , llvm::HexagonII::TakenMask = 0x1 ,
  llvm::HexagonII::FPPos = 48 , llvm::HexagonII::FPMask = 0x1 , llvm::HexagonII::hasNewValuePos2 = 50 , llvm::HexagonII::hasNewValueMask2 = 0x1 ,
  llvm::HexagonII::NewValueOpPos2 = 51 , llvm::HexagonII::NewValueOpMask2 = 0x7 , llvm::HexagonII::AccumulatorPos = 54 , llvm::HexagonII::AccumulatorMask = 0x1 ,
  llvm::HexagonII::PrefersSlot3Pos = 55 , llvm::HexagonII::PrefersSlot3Mask = 0x1 , llvm::HexagonII::HasHvxTmpPos = 56 , llvm::HexagonII::HasHvxTmpMask = 0x1 ,
  llvm::HexagonII::CVINewPos = 58 , llvm::HexagonII::CVINewMask = 0x1 , llvm::HexagonII::isCVIPos = 59 , llvm::HexagonII::isCVIMask = 0x1 ,
  llvm::HexagonII::isHVXALUPos = 60 , llvm::HexagonII::isHVXALUMask = 0x1 , llvm::HexagonII::isHVXALU2SRCPos = 61 , llvm::HexagonII::isHVXALU2SRCMask = 0x1 ,
  llvm::HexagonII::hasUnaryRestrictionPos = 62 , llvm::HexagonII::hasUnaryRestrictionMask = 0x1
}
 
enum  llvm::HexagonII::HexagonMOTargetFlagVal {
  llvm::HexagonII::MO_NO_FLAG , llvm::HexagonII::MO_PCREL , llvm::HexagonII::MO_GOT , llvm::HexagonII::MO_LO16 ,
  llvm::HexagonII::MO_HI16 , llvm::HexagonII::MO_GPREL , llvm::HexagonII::MO_GDGOT , llvm::HexagonII::MO_GDPLT ,
  llvm::HexagonII::MO_IE , llvm::HexagonII::MO_IEGOT , llvm::HexagonII::MO_TPREL , llvm::HexagonII::HMOTF_ConstExtended = 0x80 ,
  llvm::HexagonII::MO_Bitmasks = HMOTF_ConstExtended
}
 
enum  llvm::HexagonII::SubInstructionGroup {
  llvm::HexagonII::HSIG_None = 0 , llvm::HexagonII::HSIG_L1 , llvm::HexagonII::HSIG_L2 , llvm::HexagonII::HSIG_S1 ,
  llvm::HexagonII::HSIG_S2 , llvm::HexagonII::HSIG_A , llvm::HexagonII::HSIG_Compound
}
 
enum  llvm::HexagonII::CompoundGroup { llvm::HexagonII::HCG_None = 0 , llvm::HexagonII::HCG_A , llvm::HexagonII::HCG_B , llvm::HexagonII::HCG_C }
 
enum  llvm::HexagonII::InstParseBits {
  llvm::HexagonII::INST_PARSE_MASK = 0x0000c000 , llvm::HexagonII::INST_PARSE_PACKET_END = 0x0000c000 , llvm::HexagonII::INST_PARSE_LOOP_END = 0x00008000 , llvm::HexagonII::INST_PARSE_NOT_END = 0x00004000 ,
  llvm::HexagonII::INST_PARSE_DUPLEX = 0x00000000 , llvm::HexagonII::INST_PARSE_EXTENDER = 0x00000000
}
 
enum  llvm::HexagonII::InstIClassBits : unsigned {
  llvm::HexagonII::INST_ICLASS_MASK = 0xf0000000 , llvm::HexagonII::INST_ICLASS_EXTENDER = 0x00000000 , llvm::HexagonII::INST_ICLASS_J_1 = 0x10000000 , llvm::HexagonII::INST_ICLASS_J_2 = 0x20000000 ,
  llvm::HexagonII::INST_ICLASS_LD_ST_1 = 0x30000000 , llvm::HexagonII::INST_ICLASS_LD_ST_2 = 0x40000000 , llvm::HexagonII::INST_ICLASS_J_3 = 0x50000000 , llvm::HexagonII::INST_ICLASS_CR = 0x60000000 ,
  llvm::HexagonII::INST_ICLASS_ALU32_1 = 0x70000000 , llvm::HexagonII::INST_ICLASS_XTYPE_1 = 0x80000000 , llvm::HexagonII::INST_ICLASS_LD = 0x90000000 , llvm::HexagonII::INST_ICLASS_ST = 0xa0000000 ,
  llvm::HexagonII::INST_ICLASS_ALU32_2 = 0xb0000000 , llvm::HexagonII::INST_ICLASS_XTYPE_2 = 0xc0000000 , llvm::HexagonII::INST_ICLASS_XTYPE_3 = 0xd0000000 , llvm::HexagonII::INST_ICLASS_XTYPE_4 = 0xe0000000 ,
  llvm::HexagonII::INST_ICLASS_ALU32_3 = 0xf0000000
}
 

Functions

unsigned llvm::HexagonII::getTSFlags (const MCInstrDesc &MID, HexagonTSFlagsVal Pos, unsigned Mask)
 
bool llvm::HexagonII::isCVI (const MCInstrDesc &MID)
 
static LLVM_ATTRIBUTE_UNUSED unsigned llvm::HexagonII::getMemAccessSizeInBytes (MemAccessSize S)
 

Variables

unsigned const llvm::HexagonII::TypeCVI_FIRST = TypeCVI_4SLOT_MPY
 
unsigned const llvm::HexagonII::TypeCVI_LAST = TypeCVI_ZW