[llvm-commits] [llvm] r166827 - in /llvm/trunk: lib/Target/Mips/Mips16InstrInfo.td test/CodeGen/Mips/tls16.ll

Reed Kotler rkotler at mips.com
Fri Oct 26 15:57:32 PDT 2012


Author: rkotler
Date: Fri Oct 26 17:57:32 2012
New Revision: 166827

URL: http://llvm.org/viewvc/llvm-project?rev=166827&view=rev
Log:
implement mips16 tls global addr


Added:
    llvm/trunk/test/CodeGen/Mips/tls16.ll
Modified:
    llvm/trunk/lib/Target/Mips/Mips16InstrInfo.td

Modified: llvm/trunk/lib/Target/Mips/Mips16InstrInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/Mips16InstrInfo.td?rev=166827&r1=166826&r2=166827&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/Mips16InstrInfo.td (original)
+++ llvm/trunk/lib/Target/Mips/Mips16InstrInfo.td Fri Oct 26 17:57:32 2012
@@ -1437,5 +1437,13 @@
 
 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)>;

Added: llvm/trunk/test/CodeGen/Mips/tls16.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/tls16.ll?rev=166827&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/Mips/tls16.ll (added)
+++ llvm/trunk/test/CodeGen/Mips/tls16.ll Fri Oct 26 17:57:32 2012
@@ -0,0 +1,13 @@
+; RUN: llc  -march=mipsel -mcpu=mips16 -relocation-model=pic -O3 < %s | FileCheck %s -check-prefix=PIC16
+
+ at a = thread_local global i32 4, align 4
+
+define i32 @foo() nounwind readonly {
+entry:
+  %0 = load i32* @a, align 4
+; PIC16:	lw	${{[0-9]+}}, %call16(__tls_get_addr)(${{[0-9]+}})
+; PIC16:	addiu	${{[0-9]+}}, %tlsgd(a)
+  ret i32 %0
+}
+
+





More information about the llvm-commits mailing list