mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-06 06:33:24 +00:00
Add the unwind instruction class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8405 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9b7f42dd6a
commit
47f3a942be
@ -61,7 +61,6 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
//===---------------------------------------------------------------------------
|
||||
// BranchInst - Conditional or Unconditional Branch instruction.
|
||||
//
|
||||
@ -270,4 +269,36 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
//===---------------------------------------------------------------------------
|
||||
/// UnwindInst - Immediately exit the current function, unwinding the stack
|
||||
/// until an invoke instruction is found.
|
||||
///
|
||||
struct UnwindInst : public TerminatorInst {
|
||||
UnwindInst(Instruction *InsertBefore = 0)
|
||||
: TerminatorInst(Instruction::Unwind, InsertBefore) {
|
||||
}
|
||||
|
||||
virtual Instruction *clone() const { return new UnwindInst(); }
|
||||
|
||||
virtual const BasicBlock *getSuccessor(unsigned idx) const {
|
||||
assert(0 && "UnwindInst has no successors!");
|
||||
abort();
|
||||
return 0;
|
||||
}
|
||||
virtual void setSuccessor(unsigned idx, BasicBlock *NewSucc) {
|
||||
assert(0 && "UnwindInst has no successors!");
|
||||
}
|
||||
virtual unsigned getNumSuccessors() const { return 0; }
|
||||
|
||||
// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||
static inline bool classof(const UnwindInst *) { return true; }
|
||||
static inline bool classof(const Instruction *I) {
|
||||
return I->getOpcode() == Instruction::Unwind;
|
||||
}
|
||||
static inline bool classof(const Value *V) {
|
||||
return isa<Instruction>(V) && classof(cast<Instruction>(V));
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user