#include "ABIInfoImpl.h"
#include "TargetInfo.h"
#include "clang/Basic/DiagnosticFrontend.h"
usingnamespaceclang;
usingnamespaceclang::CodeGen;
static RValue complexTempStructure(CodeGenFunction &CGF, Address VAListAddr,
QualType Ty, CharUnits SlotSize,
CharUnits EltSize, const ComplexType *CTy) { … }
static bool PPC_initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
llvm::Value *Address, bool Is64Bit,
bool IsAIX) { … }
namespace {
class AIXABIInfo : public ABIInfo { … };
class AIXTargetCodeGenInfo : public TargetCodeGenInfo { … };
}
bool AIXABIInfo::isPromotableTypeForABI(QualType Ty) const { … }
ABIArgInfo AIXABIInfo::classifyReturnType(QualType RetTy) const { … }
ABIArgInfo AIXABIInfo::classifyArgumentType(QualType Ty) const { … }
CharUnits AIXABIInfo::getParamTypeAlignment(QualType Ty) const { … }
RValue AIXABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
QualType Ty, AggValueSlot Slot) const { … }
bool AIXTargetCodeGenInfo::initDwarfEHRegSizeTable(
CodeGen::CodeGenFunction &CGF, llvm::Value *Address) const { … }
void AIXTargetCodeGenInfo::setTargetAttributes(
const Decl *D, llvm::GlobalValue *GV, CodeGen::CodeGenModule &M) const { … }
namespace {
class PPC32_SVR4_ABIInfo : public DefaultABIInfo { … };
class PPC32TargetCodeGenInfo : public TargetCodeGenInfo { … };
}
CharUnits PPC32_SVR4_ABIInfo::getParamTypeAlignment(QualType Ty) const { … }
ABIArgInfo PPC32_SVR4_ABIInfo::classifyReturnType(QualType RetTy) const { … }
RValue PPC32_SVR4_ABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAList,
QualType Ty, AggValueSlot Slot) const { … }
bool PPC32TargetCodeGenInfo::isStructReturnInRegABI(
const llvm::Triple &Triple, const CodeGenOptions &Opts) { … }
bool
PPC32TargetCodeGenInfo::initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
llvm::Value *Address) const { … }
namespace {
class PPC64_SVR4_ABIInfo : public ABIInfo { … };
class PPC64_SVR4_TargetCodeGenInfo : public TargetCodeGenInfo { … };
class PPC64TargetCodeGenInfo : public TargetCodeGenInfo { … };
}
bool
PPC64_SVR4_ABIInfo::isPromotableTypeForABI(QualType Ty) const { … }
CharUnits PPC64_SVR4_ABIInfo::getParamTypeAlignment(QualType Ty) const { … }
bool PPC64_SVR4_ABIInfo::isHomogeneousAggregateBaseType(QualType Ty) const { … }
bool PPC64_SVR4_ABIInfo::isHomogeneousAggregateSmallEnough(
const Type *Base, uint64_t Members) const { … }
ABIArgInfo
PPC64_SVR4_ABIInfo::classifyArgumentType(QualType Ty) const { … }
ABIArgInfo
PPC64_SVR4_ABIInfo::classifyReturnType(QualType RetTy) const { … }
RValue PPC64_SVR4_ABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
QualType Ty, AggValueSlot Slot) const { … }
bool
PPC64_SVR4_TargetCodeGenInfo::initDwarfEHRegSizeTable(
CodeGen::CodeGenFunction &CGF,
llvm::Value *Address) const { … }
void PPC64_SVR4_TargetCodeGenInfo::emitTargetMetadata(
CodeGen::CodeGenModule &CGM,
const llvm::MapVector<GlobalDecl, StringRef> &MangledDeclNames) const { … }
bool
PPC64TargetCodeGenInfo::initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
llvm::Value *Address) const { … }
std::unique_ptr<TargetCodeGenInfo>
CodeGen::createAIXTargetCodeGenInfo(CodeGenModule &CGM, bool Is64Bit) { … }
std::unique_ptr<TargetCodeGenInfo>
CodeGen::createPPC32TargetCodeGenInfo(CodeGenModule &CGM, bool SoftFloatABI) { … }
std::unique_ptr<TargetCodeGenInfo>
CodeGen::createPPC64TargetCodeGenInfo(CodeGenModule &CGM) { … }
std::unique_ptr<TargetCodeGenInfo> CodeGen::createPPC64_SVR4_TargetCodeGenInfo(
CodeGenModule &CGM, PPC64_SVR4_ABIKind Kind, bool SoftFloatABI) { … }