Deleted Added
sdiff udiff text old ( 261991 ) new ( 262613 )
full compact
1//===---- TargetInfo.cpp - Encapsulate target details -----------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//

--- 5335 unchanged lines hidden (view full) ---

5344 // Integer types smaller than a register are extended.
5345 if (Size < 64 && Ty->isIntegerType())
5346 return ABIArgInfo::getExtend();
5347
5348 // Other non-aggregates go in registers.
5349 if (!isAggregateTypeForABI(Ty))
5350 return ABIArgInfo::getDirect();
5351
5352 // This is a small aggregate type that should be passed in registers.
5353 // Build a coercion type from the LLVM struct type.
5354 llvm::StructType *StrTy = dyn_cast<llvm::StructType>(CGT.ConvertType(Ty));
5355 if (!StrTy)
5356 return ABIArgInfo::getDirect();
5357
5358 CoerceBuilder CB(getVMContext(), getDataLayout());
5359 CB.addStruct(0, StrTy);

--- 65 unchanged lines hidden (view full) ---

5425 it->info = classifyType(it->type, 16 * 8);
5426}
5427
5428namespace {
5429class SparcV9TargetCodeGenInfo : public TargetCodeGenInfo {
5430public:
5431 SparcV9TargetCodeGenInfo(CodeGenTypes &CGT)
5432 : TargetCodeGenInfo(new SparcV9ABIInfo(CGT)) {}
5433};
5434} // end anonymous namespace
5435
5436
5437//===----------------------------------------------------------------------===//
5438// Xcore ABI Implementation
5439//===----------------------------------------------------------------------===//
5440namespace {
5441class XCoreABIInfo : public DefaultABIInfo {
5442public:
5443 XCoreABIInfo(CodeGen::CodeGenTypes &CGT) : DefaultABIInfo(CGT) {}
5444 virtual llvm::Value *EmitVAArg(llvm::Value *VAListAddr, QualType Ty,

--- 175 unchanged lines hidden ---