mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
[DFSAN][MIPS][LLVM] Defining ShadowPtrMask variable for MIPS64
Patch by Kumar Sukhani! corresponding compiler-rt patch: http://reviews.llvm.org/D6437 clang patch: http://reviews.llvm.org/D6147 Differential Revision: http://reviews.llvm.org/D6459 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223516 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5db47f1376
commit
93712874d8
@ -49,6 +49,7 @@
|
||||
#include "llvm/ADT/DenseSet.h"
|
||||
#include "llvm/ADT/DepthFirstIterator.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
#include "llvm/ADT/Triple.h"
|
||||
#include "llvm/Analysis/ValueTracking.h"
|
||||
#include "llvm/IR/Dominators.h"
|
||||
#include "llvm/IR/DebugInfo.h"
|
||||
@ -414,6 +415,11 @@ FunctionType *DataFlowSanitizer::getCustomFunctionType(FunctionType *T) {
|
||||
}
|
||||
|
||||
bool DataFlowSanitizer::doInitialization(Module &M) {
|
||||
llvm::Triple TargetTriple(M.getTargetTriple());
|
||||
bool IsX86_64 = TargetTriple.getArch() == llvm::Triple::x86_64;
|
||||
bool IsMIPS64 = TargetTriple.getArch() == llvm::Triple::mips64 ||
|
||||
TargetTriple.getArch() == llvm::Triple::mips64el;
|
||||
|
||||
DataLayoutPass *DLP = getAnalysisIfAvailable<DataLayoutPass>();
|
||||
if (!DLP)
|
||||
report_fatal_error("data layout missing");
|
||||
@ -425,8 +431,13 @@ bool DataFlowSanitizer::doInitialization(Module &M) {
|
||||
ShadowPtrTy = PointerType::getUnqual(ShadowTy);
|
||||
IntptrTy = DL->getIntPtrType(*Ctx);
|
||||
ZeroShadow = ConstantInt::getSigned(ShadowTy, 0);
|
||||
ShadowPtrMask = ConstantInt::getSigned(IntptrTy, ~0x700000000000LL);
|
||||
ShadowPtrMul = ConstantInt::getSigned(IntptrTy, ShadowWidth / 8);
|
||||
if (IsX86_64)
|
||||
ShadowPtrMask = ConstantInt::getSigned(IntptrTy, ~0x700000000000LL);
|
||||
else if (IsMIPS64)
|
||||
ShadowPtrMask = ConstantInt::getSigned(IntptrTy, ~0xF000000000LL);
|
||||
else
|
||||
report_fatal_error("unsupported triple");
|
||||
|
||||
Type *DFSanUnionArgs[2] = { ShadowTy, ShadowTy };
|
||||
DFSanUnionFnTy =
|
||||
|
Loading…
Reference in New Issue
Block a user