X-Git-Url: https://git.ti.com/gitweb?p=opencl%2Fllvm.git;a=blobdiff_plain;f=lib%2FTarget%2FXCore%2FXCoreInstrInfo.td;h=b6906569aa390f4bc38b434481ef1eb72893eabc;hp=b243ee3510a90e5b8de8a414a970c82494ed1f55;hb=cc331c8f40107934b4bfa36d3646126bc0c4a412;hpb=870d997d8cd300b266e3157cddda357a80d702d5;ds=sidebyside diff --git a/lib/Target/XCore/XCoreInstrInfo.td b/lib/Target/XCore/XCoreInstrInfo.td index b243ee3510..b6906569aa 100644 --- a/lib/Target/XCore/XCoreInstrInfo.td +++ b/lib/Target/XCore/XCoreInstrInfo.td @@ -68,6 +68,10 @@ def SDT_XCoreStwsp : SDTypeProfile<0, 2, [SDTCisInt<1>]>; def XCoreStwsp : SDNode<"XCoreISD::STWSP", SDT_XCoreStwsp, [SDNPHasChain, SDNPMayStore]>; +def SDT_XCoreLdwsp : SDTypeProfile<1, 1, [SDTCisInt<1>]>; +def XCoreLdwsp : SDNode<"XCoreISD::LDWSP", SDT_XCoreLdwsp, + [SDNPHasChain, SDNPMayLoad]>; + // These are target-independent nodes, but have target-specific formats. def SDT_XCoreCallSeqStart : SDCallSeqStart<[ SDTCisVT<0, i32> ]>; def SDT_XCoreCallSeqEnd : SDCallSeqEnd<[ SDTCisVT<0, i32>, @@ -581,10 +585,12 @@ def STWSP_lru6 : _FLRU6<0b010101, (outs), (ins RRegs:$a, i32imm:$b), let mayLoad=1 in { def LDWSP_ru6 : _FRU6<0b010111, (outs RRegs:$a), (ins i32imm:$b), - "ldw $a, sp[$b]", []>; + "ldw $a, sp[$b]", + [(set RRegs:$a, (XCoreLdwsp immU6:$b))]>; def LDWSP_lru6 : _FLRU6<0b010111, (outs RRegs:$a), (ins i32imm:$b), - "ldw $a, sp[$b]", []>; + "ldw $a, sp[$b]", + [(set RRegs:$a, (XCoreLdwsp immU16:$b))]>; } let neverHasSideEffects = 1 in {