LLVM  16.0.0git
Classes | Enumerations | Functions | Variables
llvm::CSKY Namespace Reference

Classes

struct  ArchNames
 
struct  CpuNames
 
struct  ExtName
 
struct  FPUName
 

Enumerations

enum  ArchExtKind : uint64_t {
  AEK_INVALID = 0, AEK_NONE = 1, AEK_FPUV2SF = 1 << 1, AEK_FPUV2DF = 1 << 2,
  AEK_FDIVDU = 1 << 3, AEK_FPUV3HI = 1 << 4, AEK_FPUV3HF = 1 << 5, AEK_FPUV3SF = 1 << 6,
  AEK_FPUV3DF = 1 << 7, AEK_FLOATE1 = 1 << 8, AEK_FLOAT1E2 = 1 << 9, AEK_FLOAT1E3 = 1 << 10,
  AEK_FLOAT3E4 = 1 << 11, AEK_FLOAT7E60 = 1 << 12, AEK_HWDIV = 1 << 13, AEK_STLD = 1 << 14,
  AEK_PUSHPOP = 1 << 15, AEK_EDSP = 1 << 16, AEK_DSP1E2 = 1 << 17, AEK_DSPE60 = 1 << 18,
  AEK_DSPV2 = 1 << 19, AEK_DSPSILAN = 1 << 20, AEK_ELRW = 1 << 21, AEK_TRUST = 1 << 22,
  AEK_JAVA = 1 << 23, AEK_CACHE = 1 << 24, AEK_NVIC = 1 << 25, AEK_DOLOOP = 1 << 26,
  AEK_HIGHREG = 1 << 27, AEK_SMART = 1 << 28, AEK_VDSP2E3 = 1 << 29, AEK_VDSP2E60F = 1 << 30,
  AEK_VDSPV2 = 1ULL << 31, AEK_HARDTP = 1ULL << 32, AEK_SOFTTP = 1ULL << 33, AEK_ISTACK = 1ULL << 34,
  AEK_CONSTPOOL = 1ULL << 35, AEK_STACKSIZE = 1ULL << 36, AEK_CCRT = 1ULL << 37, AEK_VDSPV1 = 1ULL << 38,
  AEK_E1 = 1ULL << 39, AEK_E2 = 1ULL << 40, AEK_2E3 = 1ULL << 41, AEK_MP = 1ULL << 42,
  AEK_3E3R1 = 1ULL << 43, AEK_3E3R2 = 1ULL << 44, AEK_3E3R3 = 1ULL << 45, AEK_3E7 = 1ULL << 46,
  AEK_MP1E2 = 1ULL << 47, AEK_7E10 = 1ULL << 48, AEK_10E60 = 1ULL << 49
}
 
enum  MultiArchExtKind : uint64_t {
  MAEK_E1 = CSKY::AEK_E1 | CSKY::AEK_ELRW, MAEK_E2 = CSKY::AEK_E2 | CSKY::MAEK_E1, MAEK_2E3 = CSKY::AEK_2E3 | CSKY::MAEK_E2, MAEK_MP = CSKY::AEK_MP | CSKY::MAEK_2E3,
  MAEK_3E3R1 = CSKY::AEK_3E3R1, MAEK_3E3R2 = CSKY::AEK_3E3R1 | CSKY::AEK_3E3R2 | CSKY::AEK_DOLOOP, MAEK_3E7 = CSKY::AEK_3E7 | CSKY::MAEK_2E3, MAEK_MP1E2 = CSKY::AEK_MP1E2 | CSKY::MAEK_3E7,
  MAEK_7E10 = CSKY::AEK_7E10 | CSKY::MAEK_3E7, MAEK_10E60 = CSKY::AEK_10E60 | CSKY::MAEK_7E10
}
 
enum  CSKYFPUKind { FK_LAST }
 
enum  FPUVersion { FPUVersion::NONE, FPUVersion::FPV2, FPUVersion::FPV3 }
 
enum  ArchKind { ArchKind::CSKY_ARCH }
 
enum  Fixups {
  fixup_csky_addr32 = FirstTargetFixupKind, fixup_csky_addr_hi16, fixup_csky_addr_lo16, fixup_csky_pcrel_imm16_scale2,
  fixup_csky_pcrel_uimm16_scale4, fixup_csky_pcrel_imm26_scale2, fixup_csky_pcrel_imm18_scale2, fixup_csky_gotpc,
  fixup_csky_gotoff, fixup_csky_got32, fixup_csky_got_imm18_scale4, fixup_csky_plt32,
  fixup_csky_plt_imm18_scale4, fixup_csky_pcrel_imm10_scale2, fixup_csky_pcrel_uimm7_scale4, fixup_csky_pcrel_uimm8_scale4,
  fixup_csky_doffset_imm18, fixup_csky_doffset_imm18_scale2, fixup_csky_doffset_imm18_scale4, fixup_csky_invalid,
  NumTargetFixupKinds = fixup_csky_invalid - FirstTargetFixupKind
}
 

Functions

StringRef getArchName (ArchKind AK)
 
StringRef getDefaultCPU (StringRef Arch)
 
StringRef getArchExtName (uint64_t ArchExtKind)
 
StringRef getArchExtFeature (StringRef ArchExt)
 
uint64_t getDefaultExtensions (StringRef CPU)
 
bool getExtensionFeatures (uint64_t Extensions, std::vector< StringRef > &Features)
 
StringRef getFPUName (unsigned FPUKind)
 
FPUVersion getFPUVersion (unsigned FPUKind)
 
bool getFPUFeatures (CSKYFPUKind Kind, std::vector< StringRef > &Features)
 
ArchKind parseArch (StringRef Arch)
 
ArchKind parseCPUArch (StringRef CPU)
 
uint64_t parseArchExt (StringRef ArchExt)
 
void fillValidCPUArchList (SmallVectorImpl< StringRef > &Values)
 

Variables

const CSKY::ExtName CSKYARCHExtNames []
 
const CpuNames< CSKY::ArchKindCPUNames []
 
static const FPUName FPUNames []
 
const ArchNames< CSKY::ArchKindARCHNames []
 

Enumeration Type Documentation

◆ ArchExtKind

Enumerator
AEK_INVALID 
AEK_NONE 
AEK_FPUV2SF 
AEK_FPUV2DF 
AEK_FDIVDU 
AEK_FPUV3HI 
AEK_FPUV3HF 
AEK_FPUV3SF 
AEK_FPUV3DF 
AEK_FLOATE1 
AEK_FLOAT1E2 
AEK_FLOAT1E3 
AEK_FLOAT3E4 
AEK_FLOAT7E60 
AEK_HWDIV 
AEK_STLD 
AEK_PUSHPOP 
AEK_EDSP 
AEK_DSP1E2 
AEK_DSPE60 
AEK_DSPV2 
AEK_DSPSILAN 
AEK_ELRW 
AEK_TRUST 
AEK_JAVA 
AEK_CACHE 
AEK_NVIC 
AEK_DOLOOP 
AEK_HIGHREG 
AEK_SMART 
AEK_VDSP2E3 
AEK_VDSP2E60F 
AEK_VDSPV2 
AEK_HARDTP 
AEK_SOFTTP 
AEK_ISTACK 
AEK_CONSTPOOL 
AEK_STACKSIZE 
AEK_CCRT 
AEK_VDSPV1 
AEK_E1 
AEK_E2 
AEK_2E3 
AEK_MP 
AEK_3E3R1 
AEK_3E3R2 
AEK_3E3R3 
AEK_3E7 
AEK_MP1E2 
AEK_7E10 
AEK_10E60 

Definition at line 27 of file CSKYTargetParser.h.

◆ ArchKind

enum llvm::CSKY::ArchKind
strong
Enumerator
CSKY_ARCH 

Definition at line 110 of file CSKYTargetParser.h.

◆ CSKYFPUKind

Enumerator
FK_LAST 

Definition at line 96 of file CSKYTargetParser.h.

◆ Fixups

Enumerator
fixup_csky_addr32 
fixup_csky_addr_hi16 
fixup_csky_addr_lo16 
fixup_csky_pcrel_imm16_scale2 
fixup_csky_pcrel_uimm16_scale4 
fixup_csky_pcrel_imm26_scale2 
fixup_csky_pcrel_imm18_scale2 
fixup_csky_gotpc 
fixup_csky_gotoff 
fixup_csky_got32 
fixup_csky_got_imm18_scale4 
fixup_csky_plt32 
fixup_csky_plt_imm18_scale4 
fixup_csky_pcrel_imm10_scale2 
fixup_csky_pcrel_uimm7_scale4 
fixup_csky_pcrel_uimm8_scale4 
fixup_csky_doffset_imm18 
fixup_csky_doffset_imm18_scale2 
fixup_csky_doffset_imm18_scale4 
fixup_csky_invalid 
NumTargetFixupKinds 

Definition at line 16 of file CSKYFixupKinds.h.

◆ FPUVersion

Enumerator
NONE 
FPV2 
FPV3 

Definition at line 103 of file CSKYTargetParser.h.

◆ MultiArchExtKind

Enumerator
MAEK_E1 
MAEK_E2 
MAEK_2E3 
MAEK_MP 
MAEK_3E3R1 
MAEK_3E3R2 
MAEK_3E7 
MAEK_MP1E2 
MAEK_7E10 
MAEK_10E60 

Definition at line 83 of file CSKYTargetParser.h.

Function Documentation

◆ fillValidCPUArchList()

void llvm::CSKY::fillValidCPUArchList ( SmallVectorImpl< StringRef > &  Values)

Definition at line 117 of file CSKYTargetParser.cpp.

References llvm::ARM::CPUNames.

◆ getArchExtFeature()

StringRef llvm::CSKY::getArchExtFeature ( StringRef  ArchExt)

Definition at line 160 of file CSKYTargetParser.cpp.

References CSKYARCHExtNames, and stripNegationPrefix().

◆ getArchExtName()

StringRef llvm::CSKY::getArchExtName ( uint64_t  ArchExtKind)

Definition at line 145 of file CSKYTargetParser.cpp.

References CSKYARCHExtNames.

◆ getArchName()

StringRef llvm::CSKY::getArchName ( ArchKind  AK)

Definition at line 75 of file CSKYTargetParser.cpp.

References llvm::ARM::ARCHNames, and getName().

◆ getDefaultCPU()

StringRef llvm::CSKY::getDefaultCPU ( StringRef  Arch)

Definition at line 80 of file CSKYTargetParser.cpp.

References parseArch().

◆ getDefaultExtensions()

uint64_t llvm::CSKY::getDefaultExtensions ( StringRef  CPU)

Definition at line 136 of file CSKYTargetParser.cpp.

References AEK_INVALID, and llvm::StringSwitch< T, R >::Default().

◆ getExtensionFeatures()

bool llvm::CSKY::getExtensionFeatures ( uint64_t  Extensions,
std::vector< StringRef > &  Features 
)

Definition at line 170 of file CSKYTargetParser.cpp.

References AEK_INVALID, and CSKYARCHExtNames.

◆ getFPUFeatures()

bool llvm::CSKY::getFPUFeatures ( CSKYFPUKind  Kind,
std::vector< StringRef > &  Features 
)

◆ getFPUName()

StringRef llvm::CSKY::getFPUName ( unsigned  FPUKind)

◆ getFPUVersion()

CSKY::FPUVersion llvm::CSKY::getFPUVersion ( unsigned  FPUKind)

◆ parseArch()

CSKY::ArchKind llvm::CSKY::parseArch ( StringRef  Arch)

Definition at line 91 of file CSKYTargetParser.cpp.

References llvm::ARM::ARCHNames.

◆ parseArchExt()

uint64_t llvm::CSKY::parseArchExt ( StringRef  ArchExt)

Definition at line 109 of file CSKYTargetParser.cpp.

References llvm::AArch64::AEK_INVALID, and CSKYARCHExtNames.

◆ parseCPUArch()

CSKY::ArchKind llvm::CSKY::parseCPUArch ( StringRef  CPU)

Definition at line 100 of file CSKYTargetParser.cpp.

References llvm::ARM::CPUNames.

Variable Documentation

◆ ARCHNames

const ArchNames<CSKY::ArchKind> llvm::CSKY::ARCHNames[]
Initial value:
= {
#define CSKY_ARCH(NAME, ID, ARCH_BASE_EXT)
}

Definition at line 173 of file CSKYTargetParser.h.

◆ CPUNames

const CpuNames<CSKY::ArchKind> llvm::CSKY::CPUNames[]
Initial value:
= {
#define CSKY_CPU_NAME(NAME, ARCH_ID, DEFAULT_EXT)
}

Definition at line 142 of file CSKYTargetParser.h.

◆ CSKYARCHExtNames

const CSKY::ExtName llvm::CSKY::CSKYARCHExtNames[]
Initial value:
= {
#define CSKY_ARCH_EXT_NAME(NAME, ID, FEATURE, NEGFEATURE)
}

Definition at line 127 of file CSKYTargetParser.h.

Referenced by getArchExtFeature(), getArchExtName(), getExtensionFeatures(), and parseArchExt().

◆ FPUNames

const FPUName llvm::CSKY::FPUNames[]
static
Initial value:
= {
#define CSKY_FPU(NAME, KIND, VERSION)
}

Definition at line 160 of file CSKYTargetParser.h.