mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-24 12:50:42 +00:00
Refactor duplicated code. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272904 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
bb6bdeccf1
commit
cb6c7a5185
@ -1798,9 +1798,14 @@ ARMTargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI,
|
|||||||
|
|
||||||
const TargetMachine &TM = getTargetMachine();
|
const TargetMachine &TM = getTargetMachine();
|
||||||
Reloc::Model RM = TM.getRelocationModel();
|
Reloc::Model RM = TM.getRelocationModel();
|
||||||
|
const Triple &TargetTriple = TM.getTargetTriple();
|
||||||
|
const Module *Mod = MF.getFunction()->getParent();
|
||||||
const GlobalValue *GV = nullptr;
|
const GlobalValue *GV = nullptr;
|
||||||
if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
|
if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
|
||||||
GV = G->getGlobal();
|
GV = G->getGlobal();
|
||||||
|
bool isStub =
|
||||||
|
!shouldAssumeDSOLocal(RM, TargetTriple, *Mod, GV) &&
|
||||||
|
Subtarget->isTargetMachO();
|
||||||
|
|
||||||
bool isARMFunc = false;
|
bool isARMFunc = false;
|
||||||
bool isLocalARMFunc = false;
|
bool isLocalARMFunc = false;
|
||||||
@ -1846,10 +1851,6 @@ ARMTargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI,
|
|||||||
} else if (isa<GlobalAddressSDNode>(Callee)) {
|
} else if (isa<GlobalAddressSDNode>(Callee)) {
|
||||||
isDirect = true;
|
isDirect = true;
|
||||||
bool isDef = GV->isStrongDefinitionForLinker();
|
bool isDef = GV->isStrongDefinitionForLinker();
|
||||||
const Triple &TargetTriple = TM.getTargetTriple();
|
|
||||||
bool isStub =
|
|
||||||
!shouldAssumeDSOLocal(RM, TargetTriple, *GV->getParent(), GV) &&
|
|
||||||
Subtarget->isTargetMachO();
|
|
||||||
|
|
||||||
isARMFunc = !Subtarget->isThumb() || (isStub && !Subtarget->isMClass());
|
isARMFunc = !Subtarget->isThumb() || (isStub && !Subtarget->isMClass());
|
||||||
// ARM call to a local ARM function is predicable.
|
// ARM call to a local ARM function is predicable.
|
||||||
@ -1887,8 +1888,6 @@ ARMTargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI,
|
|||||||
}
|
}
|
||||||
} else if (ExternalSymbolSDNode *S = dyn_cast<ExternalSymbolSDNode>(Callee)) {
|
} else if (ExternalSymbolSDNode *S = dyn_cast<ExternalSymbolSDNode>(Callee)) {
|
||||||
isDirect = true;
|
isDirect = true;
|
||||||
bool isStub = Subtarget->isTargetMachO() &&
|
|
||||||
getTargetMachine().getRelocationModel() != Reloc::Static;
|
|
||||||
isARMFunc = !Subtarget->isThumb() || (isStub && !Subtarget->isMClass());
|
isARMFunc = !Subtarget->isThumb() || (isStub && !Subtarget->isMClass());
|
||||||
// tBX takes a register source operand.
|
// tBX takes a register source operand.
|
||||||
const char *Sym = S->getSymbol();
|
const char *Sym = S->getSymbol();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user