mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-09 13:33:17 +00:00
Define Mips specific unaligned load/store nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157863 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f66b7b1ff6
commit
b6f1dc2f09
@ -81,6 +81,14 @@ const char *MipsTargetLowering::getTargetNodeName(unsigned Opcode) const {
|
||||
case MipsISD::Sync: return "MipsISD::Sync";
|
||||
case MipsISD::Ext: return "MipsISD::Ext";
|
||||
case MipsISD::Ins: return "MipsISD::Ins";
|
||||
case MipsISD::LWL: return "MipsISD::LWL";
|
||||
case MipsISD::LWR: return "MipsISD::LWR";
|
||||
case MipsISD::SWL: return "MipsISD::SWL";
|
||||
case MipsISD::SWR: return "MipsISD::SWR";
|
||||
case MipsISD::LDL: return "MipsISD::LDL";
|
||||
case MipsISD::LDR: return "MipsISD::LDR";
|
||||
case MipsISD::SDL: return "MipsISD::SDL";
|
||||
case MipsISD::SDR: return "MipsISD::SDR";
|
||||
default: return NULL;
|
||||
}
|
||||
}
|
||||
|
@ -79,7 +79,17 @@ namespace llvm {
|
||||
Sync,
|
||||
|
||||
Ext,
|
||||
Ins
|
||||
Ins,
|
||||
|
||||
// Load/Store Left/Right nodes.
|
||||
LWL = ISD::FIRST_TARGET_MEMORY_OPCODE,
|
||||
LWR,
|
||||
SWL,
|
||||
SWR,
|
||||
LDL,
|
||||
LDR,
|
||||
SDL,
|
||||
SDR
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -44,6 +44,10 @@ def SDT_Ins : SDTypeProfile<1, 4, [SDTCisInt<0>, SDTCisSameAs<0, 1>,
|
||||
SDTCisVT<2, i32>, SDTCisSameAs<2, 3>,
|
||||
SDTCisSameAs<0, 4>]>;
|
||||
|
||||
def SDTMipsLoadLR : SDTypeProfile<1, 2,
|
||||
[SDTCisInt<0>, SDTCisPtrTy<1>,
|
||||
SDTCisSameAs<0, 2>]>;
|
||||
|
||||
// Call
|
||||
def MipsJmpLink : SDNode<"MipsISD::JmpLink",SDT_MipsJmpLink,
|
||||
[SDNPHasChain, SDNPOutGlue, SDNPOptInGlue,
|
||||
@ -113,6 +117,23 @@ def MipsSync : SDNode<"MipsISD::Sync", SDT_Sync, [SDNPHasChain]>;
|
||||
def MipsExt : SDNode<"MipsISD::Ext", SDT_Ext>;
|
||||
def MipsIns : SDNode<"MipsISD::Ins", SDT_Ins>;
|
||||
|
||||
def MipsLWL : SDNode<"MipsISD::LWL", SDTMipsLoadLR,
|
||||
[SDNPHasChain, SDNPMayLoad, SDNPMemOperand]>;
|
||||
def MipsLWR : SDNode<"MipsISD::LWR", SDTMipsLoadLR,
|
||||
[SDNPHasChain, SDNPMayLoad, SDNPMemOperand]>;
|
||||
def MipsSWL : SDNode<"MipsISD::SWL", SDTStore,
|
||||
[SDNPHasChain, SDNPMayStore, SDNPMemOperand]>;
|
||||
def MipsSWR : SDNode<"MipsISD::SWR", SDTStore,
|
||||
[SDNPHasChain, SDNPMayStore, SDNPMemOperand]>;
|
||||
def MipsLDL : SDNode<"MipsISD::LDL", SDTMipsLoadLR,
|
||||
[SDNPHasChain, SDNPMayLoad, SDNPMemOperand]>;
|
||||
def MipsLDR : SDNode<"MipsISD::LDR", SDTMipsLoadLR,
|
||||
[SDNPHasChain, SDNPMayLoad, SDNPMemOperand]>;
|
||||
def MipsSDL : SDNode<"MipsISD::SDL", SDTStore,
|
||||
[SDNPHasChain, SDNPMayStore, SDNPMemOperand]>;
|
||||
def MipsSDR : SDNode<"MipsISD::SDR", SDTStore,
|
||||
[SDNPHasChain, SDNPMayStore, SDNPMemOperand]>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Mips Instruction Predicate Definitions.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
Loading…
x
Reference in New Issue
Block a user