TargetInfo.cpp (280031) | TargetInfo.cpp (283526) |
---|---|
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//===----------------------------------------------------------------------===// --- 650 unchanged lines hidden (view full) --- 659 llvm::Constant * 660 getUBSanFunctionSignature(CodeGen::CodeGenModule &CGM) const override { 661 unsigned Sig = (0xeb << 0) | // jmp rel8 662 (0x06 << 8) | // .+0x08 663 ('F' << 16) | 664 ('T' << 24); 665 return llvm::ConstantInt::get(CGM.Int32Ty, Sig); 666 } | 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//===----------------------------------------------------------------------===// --- 650 unchanged lines hidden (view full) --- 659 llvm::Constant * 660 getUBSanFunctionSignature(CodeGen::CodeGenModule &CGM) const override { 661 unsigned Sig = (0xeb << 0) | // jmp rel8 662 (0x06 << 8) | // .+0x08 663 ('F' << 16) | 664 ('T' << 24); 665 return llvm::ConstantInt::get(CGM.Int32Ty, Sig); 666 } |
667 | |
668}; 669 670} 671 672/// Rewrite input constraint references after adding some output constraints. 673/// In the case where there is one output and one input and we add one output, 674/// we need to replace all operand references greater than or equal to 1: 675/// mov $0, $1 --- 3774 unchanged lines hidden (view full) --- 4450 // the backend to perform a realignment as part of the function prologue. 4451 llvm::AttrBuilder B; 4452 B.addStackAlignmentAttr(8); 4453 Fn->addAttributes(llvm::AttributeSet::FunctionIndex, 4454 llvm::AttributeSet::get(CGM.getLLVMContext(), 4455 llvm::AttributeSet::FunctionIndex, 4456 B)); 4457 } | 667}; 668 669} 670 671/// Rewrite input constraint references after adding some output constraints. 672/// In the case where there is one output and one input and we add one output, 673/// we need to replace all operand references greater than or equal to 1: 674/// mov $0, $1 --- 3774 unchanged lines hidden (view full) --- 4449 // the backend to perform a realignment as part of the function prologue. 4450 llvm::AttrBuilder B; 4451 B.addStackAlignmentAttr(8); 4452 Fn->addAttributes(llvm::AttributeSet::FunctionIndex, 4453 llvm::AttributeSet::get(CGM.getLLVMContext(), 4454 llvm::AttributeSet::FunctionIndex, 4455 B)); 4456 } |
4458 | |
4459}; 4460 4461} 4462 4463void ARMABIInfo::computeInfo(CGFunctionInfo &FI) const { 4464 // To correctly handle Homogeneous Aggregate, we need to keep track of the 4465 // VFP registers allocated so far. 4466 // C.1.vfp If the argument is a VFP CPRC and there are sufficient consecutive --- 2741 unchanged lines hidden --- | 4457}; 4458 4459} 4460 4461void ARMABIInfo::computeInfo(CGFunctionInfo &FI) const { 4462 // To correctly handle Homogeneous Aggregate, we need to keep track of the 4463 // VFP registers allocated so far. 4464 // C.1.vfp If the argument is a VFP CPRC and there are sufficient consecutive --- 2741 unchanged lines hidden --- |