#include "ABIInfoImpl.h"
#include "TargetInfo.h"
#include "clang/Basic/Builtins.h"
#include "llvm/IR/IntrinsicsS390.h"
usingnamespaceclang;
usingnamespaceclang::CodeGen;
namespace {
class SystemZABIInfo : public ABIInfo { … };
class SystemZTargetCodeGenInfo : public TargetCodeGenInfo { … };
}
bool SystemZABIInfo::isPromotableIntegerTypeForABI(QualType Ty) const { … }
bool SystemZABIInfo::isCompoundType(QualType Ty) const { … }
bool SystemZABIInfo::isVectorArgumentType(QualType Ty) const { … }
bool SystemZABIInfo::isFPArgumentType(QualType Ty) const { … }
QualType SystemZABIInfo::GetSingleElementType(QualType Ty) const { … }
RValue SystemZABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
QualType Ty, AggValueSlot Slot) const { … }
ABIArgInfo SystemZABIInfo::classifyReturnType(QualType RetTy) const { … }
ABIArgInfo SystemZABIInfo::classifyArgumentType(QualType Ty) const { … }
void SystemZABIInfo::computeInfo(CGFunctionInfo &FI) const { … }
bool SystemZTargetCodeGenInfo::isVectorTypeBased(const Type *Ty,
bool IsParam) const { … }
std::unique_ptr<TargetCodeGenInfo>
CodeGen::createSystemZTargetCodeGenInfo(CodeGenModule &CGM, bool HasVector,
bool SoftFloatABI) { … }