LLVM: include/llvm/BinaryFormat/GOFF.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18#ifndef LLVM_BINARYFORMAT_GOFF_H

19#define LLVM_BINARYFORMAT_GOFF_H

20

22

23namespace llvm {

24

26

27

32

33

34

35

36

37

38

40

41

43

52

60

67

74

83

90

96

101

108

114

121

126

133

141

143

159

166

167

172

173

174

175

178

184 return (OldValue & ~Mask) | Value;

185 }

186

187public:

191

192 template

194 Val = bits(BitIndex, Length, static_cast<uint8_t>(NewValue), Val);

195 }

196

197 template

199 return static_cast<T>((Val >> (8 - BitIndex - Length)) &

200 ((1 << Length) - 1));

201 }

202

203 constexpr operator uint8_t() const { return Val; }

204};

205

206

207

208

211

212#define GOFF_SYMBOL_FLAG(NAME, TYPE, BITINDEX, LENGTH) \

213 void set##NAME(TYPE Val) { SymFlags.set(BITINDEX, LENGTH, Val); } \

214 TYPE get##NAME() const { return SymFlags.get(BITINDEX, LENGTH); }

215

221

222#undef GOFF_SYMBOL_FLAG

223

225};

226

227

228

229

232

233#define GOFF_BEHAVIORAL_ATTRIBUTE(NAME, TYPE, ATTRIDX, BITINDEX, LENGTH) \

234 void set##NAME(TYPE Val) { Attr[ATTRIDX].set(BITINDEX, LENGTH, Val); } \

235 TYPE get##NAME() const { return Attr[ATTRIDX].get(BITINDEX, LENGTH); }

236

241 4)

254

255#undef GOFF_BEHAVIORAL_ATTRIBUTE

256};

257}

258

259}

260

261#endif

#define GOFF_BEHAVIORAL_ATTRIBUTE(NAME, TYPE, ATTRIDX, BITINDEX, LENGTH)

Definition GOFF.h:233

#define GOFF_SYMBOL_FLAG(NAME, TYPE, BITINDEX, LENGTH)

Definition GOFF.h:212

constexpr Flags(uint8_t BitIndex, uint8_t Length, uint8_t Value)

Definition GOFF.h:189

constexpr Flags()=default

constexpr T get(uint8_t BitIndex, uint8_t Length) const

Definition GOFF.h:198

constexpr void set(uint8_t BitIndex, uint8_t Length, T NewValue)

Definition GOFF.h:193

LLVM Value Representation.

ESDLoadingBehavior

Definition GOFF.h:127

@ ESD_LB_Deferred

Definition GOFF.h:129

@ ESD_LB_NoLoad

Definition GOFF.h:130

@ ESD_LB_Initial

Definition GOFF.h:128

@ ESD_LB_Reserved

Definition GOFF.h:131

RecordType

Definition GOFF.h:44

@ RT_RLD

Definition GOFF.h:47

@ RT_TXT

Definition GOFF.h:46

@ RT_ESD

Definition GOFF.h:45

@ RT_LEN

Definition GOFF.h:48

@ RT_HDR

Definition GOFF.h:50

@ RT_END

Definition GOFF.h:49

ESDBindingAlgorithm

Definition GOFF.h:97

@ ESD_BA_Concatenate

Definition GOFF.h:98

@ ESD_BA_Merge

Definition GOFF.h:99

ESDDuplicateSymbolSeverity

Definition GOFF.h:115

@ ESD_DSS_NoWarning

Definition GOFF.h:116

@ ESD_DSS_Warning

Definition GOFF.h:117

@ ESD_DSS_Error

Definition GOFF.h:118

@ ESD_DSS_Reserved

Definition GOFF.h:119

constexpr uint8_t RecordPrefixLength

Definition GOFF.h:29

constexpr uint8_t PayloadLength

Definition GOFF.h:30

ESDTextStyle

Definition GOFF.h:91

@ ESD_TS_Unstructured

Definition GOFF.h:94

@ ESD_TS_Structured

Definition GOFF.h:93

@ ESD_TS_ByteOriented

Definition GOFF.h:92

ESDExecutable

Definition GOFF.h:109

@ ESD_EXE_Unspecified

Definition GOFF.h:110

@ ESD_EXE_CODE

Definition GOFF.h:112

@ ESD_EXE_DATA

Definition GOFF.h:111

constexpr uint8_t RecordContentLength

Definition GOFF.h:31

ESDReserveQwords

Definition GOFF.h:68

@ ESD_RQ_3

Definition GOFF.h:72

@ ESD_RQ_1

Definition GOFF.h:70

@ ESD_RQ_0

Definition GOFF.h:69

@ ESD_RQ_2

Definition GOFF.h:71

constexpr uint16_t MaxDataLength

Maximum data length before starting a new card for RLD and TXT data.

Definition GOFF.h:39

ENDEntryPointRequest

Definition GOFF.h:160

@ END_EPR_EsdidOffset

Definition GOFF.h:162

@ END_EPR_ExternalName

Definition GOFF.h:163

@ END_EPR_Reserved

Definition GOFF.h:164

@ END_EPR_None

Definition GOFF.h:161

ESDAlignment

Definition GOFF.h:144

@ ESD_ALIGN_Doubleword

Definition GOFF.h:148

@ ESD_ALIGN_512byte

Definition GOFF.h:154

@ ESD_ALIGN_1024byte

Definition GOFF.h:155

@ ESD_ALIGN_Quadword

Definition GOFF.h:149

@ ESD_ALIGN_2Kpage

Definition GOFF.h:156

@ ESD_ALIGN_256byte

Definition GOFF.h:153

@ ESD_ALIGN_32byte

Definition GOFF.h:150

@ ESD_ALIGN_128byte

Definition GOFF.h:152

@ ESD_ALIGN_64byte

Definition GOFF.h:151

@ ESD_ALIGN_Byte

Definition GOFF.h:145

@ ESD_ALIGN_Fullword

Definition GOFF.h:147

@ ESD_ALIGN_4Kpage

Definition GOFF.h:157

@ ESD_ALIGN_Halfword

Definition GOFF.h:146

ESDAmode

Definition GOFF.h:75

@ ESD_AMODE_MIN

Definition GOFF.h:81

@ ESD_AMODE_None

Definition GOFF.h:76

@ ESD_AMODE_31

Definition GOFF.h:78

@ ESD_AMODE_24

Definition GOFF.h:77

@ ESD_AMODE_ANY

Definition GOFF.h:79

@ ESD_AMODE_64

Definition GOFF.h:80

ESDBindingScope

Definition GOFF.h:134

@ ESD_BSC_Library

Definition GOFF.h:138

@ ESD_BSC_Module

Definition GOFF.h:137

@ ESD_BSC_Unspecified

Definition GOFF.h:135

@ ESD_BSC_ImportExport

Definition GOFF.h:139

@ ESD_BSC_Section

Definition GOFF.h:136

constexpr uint8_t PTVPrefix

Prefix byte on every record. This indicates GOFF format.

Definition GOFF.h:42

ESDLinkageType

Definition GOFF.h:142

@ ESD_LT_OS

Definition GOFF.h:142

@ ESD_LT_XPLink

Definition GOFF.h:142

constexpr uint8_t RecordLength

Length of the parts of a physical GOFF record.

Definition GOFF.h:28

SubsectionKind

Definition GOFF.h:168

@ SK_PPA1

Definition GOFF.h:169

@ SK_PPA2

Definition GOFF.h:170

ESDNameSpaceId

Definition GOFF.h:61

@ ESD_NS_Parts

Definition GOFF.h:65

@ ESD_NS_ProgramManagementBinder

Definition GOFF.h:62

@ ESD_NS_NormalName

Definition GOFF.h:63

@ ESD_NS_PseudoRegister

Definition GOFF.h:64

ESDSymbolType

Definition GOFF.h:53

@ ESD_ST_PartReference

Definition GOFF.h:57

@ ESD_ST_ElementDefinition

Definition GOFF.h:55

@ ESD_ST_LabelDefinition

Definition GOFF.h:56

@ ESD_ST_SectionDefinition

Definition GOFF.h:54

@ ESD_ST_ExternalReference

Definition GOFF.h:58

ESDTaskingBehavior

Definition GOFF.h:102

@ ESD_TA_Reus

Definition GOFF.h:105

@ ESD_TA_Unspecified

Definition GOFF.h:103

@ ESD_TA_NonReus

Definition GOFF.h:104

@ ESD_TA_Rent

Definition GOFF.h:106

ESDBindingStrength

Definition GOFF.h:122

@ ESD_BST_Strong

Definition GOFF.h:123

@ ESD_BST_Weak

Definition GOFF.h:124

ESDRmode

Definition GOFF.h:84

@ ESD_RMODE_31

Definition GOFF.h:87

@ ESD_RMODE_None

Definition GOFF.h:85

@ ESD_RMODE_64

Definition GOFF.h:88

@ ESD_RMODE_24

Definition GOFF.h:86

This is an optimization pass for GlobalISel generic memory operations.

GOFF_BEHAVIORAL_ATTRIBUTE(BindingAlgorithm, GOFF::ESDBindingAlgorithm, 2, 4, 4) GOFF_BEHAVIORAL_ATTRIBUTE(DuplicateSymbolSeverity

Flags Attr[10]

Definition GOFF.h:231

Flags SymFlags

Definition GOFF.h:210