From: Benjamin Kramer Date: Tue, 9 Aug 2011 21:34:19 +0000 (+0000) Subject: The new ARM disassembler disassembles "bx lr" as a special BX_ret instruction so... X-Git-Tag: android-x86-6.0-r1~928^2~2490 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=9bd7c2836eea4ba6484a1eabb38cd084f45fed94;p=android-x86%2Fexternal-llvm.git The new ARM disassembler disassembles "bx lr" as a special BX_ret instruction so target specific analysis isn't needed anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137151 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp index 0a4d671a4e3..8cb0ccf380d 100644 --- a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp +++ b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp @@ -165,11 +165,6 @@ namespace { class ARMMCInstrAnalysis : public MCInstrAnalysis { public: ARMMCInstrAnalysis(const MCInstrInfo *Info) : MCInstrAnalysis(Info) {} - virtual bool isBranch(const MCInst &Inst) const { - // Don't flag "bx lr" as a branch. - return MCInstrAnalysis::isBranch(Inst) && (Inst.getOpcode() != ARM::BX || - Inst.getOperand(0).getReg() != ARM::LR); - } virtual bool isUnconditionalBranch(const MCInst &Inst) const { // BCCs with the "always" predicate are unconditional branches. @@ -185,11 +180,6 @@ public: return MCInstrAnalysis::isConditionalBranch(Inst); } - virtual bool isReturn(const MCInst &Inst) const { - // Recognize "bx lr" as return. - return Inst.getOpcode() == ARM::BX && Inst.getOperand(0).getReg()==ARM::LR; - } - uint64_t evaluateBranch(const MCInst &Inst, uint64_t Addr, uint64_t Size) const { // We only handle PCRel branches for now.