//===- PNaCl.cpp ----------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "ABIInfoImpl.h" #include "TargetInfo.h" usingnamespaceclang; usingnamespaceclang::CodeGen; //===----------------------------------------------------------------------===// // le32/PNaCl bitcode ABI Implementation // // This is a simplified version of the x86_32 ABI. Arguments and return values // are always passed on the stack. //===----------------------------------------------------------------------===// class PNaClABIInfo : public ABIInfo { … }; class PNaClTargetCodeGenInfo : public TargetCodeGenInfo { … }; void PNaClABIInfo::computeInfo(CGFunctionInfo &FI) const { … } RValue PNaClABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, QualType Ty, AggValueSlot Slot) const { … } /// Classify argument of given type \p Ty. ABIArgInfo PNaClABIInfo::classifyArgumentType(QualType Ty) const { … } ABIArgInfo PNaClABIInfo::classifyReturnType(QualType RetTy) const { … } std::unique_ptr<TargetCodeGenInfo> CodeGen::createPNaClTargetCodeGenInfo(CodeGenModule &CGM) { … }