Casting.h: Automatically handle isa<Base>(Derived).
[oota-llvm.git] / include / llvm / MC / MCInstrAnalysis.h
index adca7b124d7c02134183fd2edab7b0c02172aa7e..acad6336aca736bd8b547f79b1787edde59c8136 100644 (file)
@@ -23,14 +23,17 @@ protected:
   friend class Target;
   const MCInstrInfo *Info;
 
-  MCInstrAnalysis(const MCInstrInfo *Info) : Info(Info) {}
 public:
+  MCInstrAnalysis(const MCInstrInfo *Info) : Info(Info) {}
+
+  virtual ~MCInstrAnalysis() {}
+
   virtual bool isBranch(const MCInst &Inst) const {
     return Info->get(Inst.getOpcode()).isBranch();
   }
 
   virtual bool isConditionalBranch(const MCInst &Inst) const {
-    return Info->get(Inst.getOpcode()).isBranch();
+    return Info->get(Inst.getOpcode()).isConditionalBranch();
   }
 
   virtual bool isUnconditionalBranch(const MCInst &Inst) const {
@@ -41,6 +44,10 @@ public:
     return Info->get(Inst.getOpcode()).isIndirectBranch();
   }
 
+  virtual bool isCall(const MCInst &Inst) const {
+    return Info->get(Inst.getOpcode()).isCall();
+  }
+
   virtual bool isReturn(const MCInst &Inst) const {
     return Info->get(Inst.getOpcode()).isReturn();
   }