mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-30 05:24:22 +00:00
Add addrspacecast instruction.
Patch by Michele Scandale! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194760 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -3615,6 +3615,43 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// AddrSpaceCastInst Class
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
/// \brief This class represents a conversion between pointers from
|
||||
/// one address space to another.
|
||||
class AddrSpaceCastInst : public CastInst {
|
||||
protected:
|
||||
/// \brief Clone an identical AddrSpaceCastInst
|
||||
virtual AddrSpaceCastInst *clone_impl() const;
|
||||
|
||||
public:
|
||||
/// \brief Constructor with insert-before-instruction semantics
|
||||
AddrSpaceCastInst(
|
||||
Value *S, ///< The value to be casted
|
||||
Type *Ty, ///< The type to casted to
|
||||
const Twine &NameStr = "", ///< A name for the new instruction
|
||||
Instruction *InsertBefore = 0 ///< Where to insert the new instruction
|
||||
);
|
||||
|
||||
/// \brief Constructor with insert-at-end-of-block semantics
|
||||
AddrSpaceCastInst(
|
||||
Value *S, ///< The value to be casted
|
||||
Type *Ty, ///< The type to casted to
|
||||
const Twine &NameStr, ///< A name for the new instruction
|
||||
BasicBlock *InsertAtEnd ///< The block to insert the instruction into
|
||||
);
|
||||
|
||||
// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||
static inline bool classof(const Instruction *I) {
|
||||
return I->getOpcode() == AddrSpaceCast;
|
||||
}
|
||||
static inline bool classof(const Value *V) {
|
||||
return isa<Instruction>(V) && classof(cast<Instruction>(V));
|
||||
}
|
||||
};
|
||||
|
||||
} // End llvm namespace
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user