summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorReed Kotler <rkotler@mips.com>2012-10-26 22:57:32 +0000
committerReed Kotler <rkotler@mips.com>2012-10-26 22:57:32 +0000
commitb650f6bbe7d4f4d8467d9a3af3e3859f739f0b48 (patch)
tree1317de7eecf1211571dc9859b43489939b893ef8 /llvm/lib
parentc38395a0f747e37efa14123ea865b1576e15ab35 (diff)
downloadbcm5719-llvm-b650f6bbe7d4f4d8467d9a3af3e3859f739f0b48.tar.gz
bcm5719-llvm-b650f6bbe7d4f4d8467d9a3af3e3859f739f0b48.zip
implement mips16 tls global addr
llvm-svn: 166827
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/Mips/Mips16InstrInfo.td8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/Mips16InstrInfo.td b/llvm/lib/Target/Mips/Mips16InstrInfo.td
index feffddc02ee..89a33382503 100644
--- a/llvm/lib/Target/Mips/Mips16InstrInfo.td
+++ b/llvm/lib/Target/Mips/Mips16InstrInfo.td
@@ -1437,5 +1437,13 @@ def: SetCC_R16<setult, SltuCCRxRy16>;
def: SetCC_I16<setult, immSExt16, SltiuCCRxImmX16>;
+// wrapper_pic
+class Wrapper16Pat<SDNode node, Instruction ADDiuOp, RegisterClass RC>:
+ Mips16Pat<(MipsWrapper RC:$gp, node:$in),
+ (ADDiuOp RC:$gp, node:$in)>;
+
+
+def : Wrapper16Pat<tglobaltlsaddr, AddiuRxRxImmX16, CPU16Regs>;
+
def: Mips16Pat<(add CPU16Regs:$hi, (MipsLo tglobaladdr:$lo)),
(AddiuRxRxImmX16 CPU16Regs:$hi, tglobaladdr:$lo)>;
OpenPOWER on IntegriCloud