LLVM 22.0.0git
llvm::CSKY Namespace Reference

Classes

struct  ArchNames
struct  CpuNames
struct  ExtName
struct  FPUName

Typedefs

using Specifier = uint8_t

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 { CSKY_ARCH , CSKY_ARCH }
enum class  FPUVersion { NONE , FPV2 , FPV3 }
enum class  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
}
enum  {
  S_None , S_ADDR , S_ADDR_HI16 , S_ADDR_LO16 ,
  S_PCREL , S_GOT , S_GOT_IMM18_BY4 , S_GOTPC ,
  S_GOTOFF , S_PLT , S_PLT_IMM18_BY4 , S_TLSIE ,
  S_TLSLE , S_TLSGD , S_TLSLDO , S_TLSLDM ,
  S_TPOFF , S_Invalid
}

Functions

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

Variables

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

Typedef Documentation

◆ Specifier

Definition at line 33 of file CSKYMCAsmInfo.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
S_None 
S_ADDR 
S_ADDR_HI16 
S_ADDR_LO16 
S_PCREL 
S_GOT 
S_GOT_IMM18_BY4 
S_GOTPC 
S_GOTOFF 
S_PLT 
S_PLT_IMM18_BY4 
S_TLSIE 
S_TLSLE 
S_TLSGD 
S_TLSLDO 
S_TLSLDM 
S_TPOFF 
S_Invalid 

Definition at line 34 of file CSKYMCAsmInfo.h.

◆ 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 28 of file CSKYTargetParser.h.

◆ ArchKind

enum class llvm::CSKY::ArchKind
strong
Enumerator
CSKY_ARCH 

Definition at line 111 of file CSKYTargetParser.h.

◆ CSKYFPUKind

Enumerator
CSKY_ARCH 
CSKY_ARCH 

Definition at line 97 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

enum class llvm::CSKY::FPUVersion
strong
Enumerator
NONE 
FPV2 
FPV3 

Definition at line 104 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 84 of file CSKYTargetParser.h.

Function Documentation

◆ fillValidCPUArchList()

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

◆ getArchExtFeature()

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

Definition at line 161 of file CSKYTargetParser.cpp.

References CSKYARCHExtNames, and stripNegationPrefix().

◆ getArchExtName()

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

Definition at line 146 of file CSKYTargetParser.cpp.

References CSKYARCHExtNames.

◆ getArchName()

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

Definition at line 76 of file CSKYTargetParser.cpp.

References ARCHNames, and getName().

◆ getDefaultCPU()

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

Definition at line 81 of file CSKYTargetParser.cpp.

References parseArch().

◆ getDefaultExtensions()

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

Definition at line 137 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 171 of file CSKYTargetParser.cpp.

References AEK_INVALID, CSKYARCHExtNames, and Extensions.

◆ getFPUFeatures()

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

Definition at line 21 of file CSKYTargetParser.cpp.

References llvm_unreachable.

◆ getFPUName()

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

Definition at line 125 of file CSKYTargetParser.cpp.

References FPUNames.

◆ getFPUVersion()

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

Definition at line 131 of file CSKYTargetParser.cpp.

References FPUNames, and NONE.

◆ parseArch()

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

Definition at line 92 of file CSKYTargetParser.cpp.

References A(), and ARCHNames.

◆ parseArchExt()

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

Definition at line 110 of file CSKYTargetParser.cpp.

References A(), AEK_INVALID, and CSKYARCHExtNames.

◆ parseCPUArch()

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

Definition at line 101 of file CSKYTargetParser.cpp.

References llvm::CallingConv::C, and CPUNames.

Variable Documentation

◆ ARCHNames

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

Definition at line 174 of file CSKYTargetParser.h.

Referenced by getArchName(), and parseArch().

◆ CPUNames

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

Definition at line 143 of file CSKYTargetParser.h.

Referenced by fillValidCPUArchList(), and parseCPUArch().

◆ CSKYARCHExtNames

const CSKY::ExtName llvm::CSKY::CSKYARCHExtNames[]

◆ FPUNames

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

Definition at line 161 of file CSKYTargetParser.h.

Referenced by getFPUName(), and getFPUVersion().