summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/SparcV8/SparcV8InstrInfo.td
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/SparcV8/SparcV8InstrInfo.td')
-rw-r--r--llvm/lib/Target/SparcV8/SparcV8InstrInfo.td6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/SparcV8/SparcV8InstrInfo.td b/llvm/lib/Target/SparcV8/SparcV8InstrInfo.td
index 6dbdeb545c2..eaa6691fee3 100644
--- a/llvm/lib/Target/SparcV8/SparcV8InstrInfo.td
+++ b/llvm/lib/Target/SparcV8/SparcV8InstrInfo.td
@@ -84,6 +84,8 @@ def V8cmpfcc : SDNode<"V8ISD::CMPFCC", SDTV8cmpfcc>;
def V8bricc : SDNode<"V8ISD::BRICC", SDTV8brcc, [SDNPHasChain]>;
def V8brfcc : SDNode<"V8ISD::BRFCC", SDTV8brcc, [SDNPHasChain]>;
+def V8hi : SDNode<"V8ISD::Hi", SDTIntUnaryOp>;
+def V8lo : SDNode<"V8ISD::Lo", SDTIntUnaryOp>;
//===----------------------------------------------------------------------===//
// Instructions
@@ -657,3 +659,7 @@ def : Pat<(i32 simm13:$val),
// Arbitrary immediates.
def : Pat<(i32 imm:$val),
(ORri (SETHIi (HI22 imm:$val)), (LO10 imm:$val))>;
+
+// Global addresses
+def : Pat<(V8hi tglobaladdr:$in), (SETHIi tglobaladdr:$in)>;
+def : Pat<(V8lo tglobaladdr:$in), (ORri G0, tglobaladdr:$in)>;
OpenPOWER on IntegriCloud