mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-01 12:24:24 +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:
@ -419,6 +419,10 @@ namespace ISD {
|
||||
/// getNode().
|
||||
BITCAST,
|
||||
|
||||
/// ADDRSPACECAST - This operator converts between pointers of different
|
||||
/// address spaces.
|
||||
ADDRSPACECAST,
|
||||
|
||||
/// CONVERT_RNDSAT - This operator is used to support various conversions
|
||||
/// between various types (float, signed, unsigned and vectors of those
|
||||
/// types) with rounding and saturation. NOTE: Avoid using this operator as
|
||||
|
@ -802,6 +802,10 @@ public:
|
||||
/// getMDNode - Return an MDNodeSDNode which holds an MDNode.
|
||||
SDValue getMDNode(const MDNode *MD);
|
||||
|
||||
/// getAddrSpaceCast - Return an AddrSpaceCastSDNode.
|
||||
SDValue getAddrSpaceCast(SDLoc dl, EVT VT, SDValue Ptr,
|
||||
unsigned SrcAS, unsigned DestAS);
|
||||
|
||||
/// getShiftAmountOperand - Return the specified value casted to
|
||||
/// the target's desired shift amount type.
|
||||
SDValue getShiftAmountOperand(EVT LHSTy, SDValue Op);
|
||||
|
@ -950,6 +950,23 @@ public:
|
||||
const SDValue &getValue() const { return Op; }
|
||||
};
|
||||
|
||||
class AddrSpaceCastSDNode : public UnarySDNode {
|
||||
private:
|
||||
unsigned SrcAddrSpace;
|
||||
unsigned DestAddrSpace;
|
||||
|
||||
public:
|
||||
AddrSpaceCastSDNode(unsigned Order, DebugLoc dl, EVT VT, SDValue X,
|
||||
unsigned SrcAS, unsigned DestAS);
|
||||
|
||||
unsigned getSrcAddressSpace() const { return SrcAddrSpace; }
|
||||
unsigned getDestAddressSpace() const { return DestAddrSpace; }
|
||||
|
||||
static bool classof(const SDNode *N) {
|
||||
return N->getOpcode() == ISD::ADDRSPACECAST;
|
||||
}
|
||||
};
|
||||
|
||||
/// Abstact virtual class for operations for memory operations
|
||||
class MemSDNode : public SDNode {
|
||||
private:
|
||||
|
Reference in New Issue
Block a user