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/// 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 }
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 ---
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/// 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 }
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 ---