X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=lib%2FMC%2FMCInstrAnalysis.cpp;h=2d8336d77ac7a7281854ab1b4e5d97006958cad2;hb=7cc1de109081ffd535419bbeb509716f3b7952e8;hp=03a35c597be50f438452bcd32df49dbfa31c9b0e;hpb=41ab14b725c8f2bb3e54553d0d7d96ff184786b1;p=oota-llvm.git diff --git a/lib/MC/MCInstrAnalysis.cpp b/lib/MC/MCInstrAnalysis.cpp index 03a35c597be..2d8336d77ac 100644 --- a/lib/MC/MCInstrAnalysis.cpp +++ b/lib/MC/MCInstrAnalysis.cpp @@ -10,11 +10,13 @@ #include "llvm/MC/MCInstrAnalysis.h" using namespace llvm; -uint64_t MCInstrAnalysis::evaluateBranch(const MCInst &Inst, uint64_t Addr, - uint64_t Size) const { - if (Info->get(Inst.getOpcode()).OpInfo[0].OperandType != MCOI::OPERAND_PCREL) - return -1ULL; +bool MCInstrAnalysis::evaluateBranch(const MCInst &Inst, uint64_t Addr, + uint64_t Size, uint64_t &Target) const { + if (Inst.getNumOperands() == 0 || + Info->get(Inst.getOpcode()).OpInfo[0].OperandType != MCOI::OPERAND_PCREL) + return false; int64_t Imm = Inst.getOperand(0).getImm(); - return Addr+Size+Imm; + Target = Addr+Size+Imm; + return true; }