Index: lib/Target/X86/X86ISelLowering.cpp =================================================================== --- lib/Target/X86/X86ISelLowering.cpp (revision 261121) +++ lib/Target/X86/X86ISelLowering.cpp (working copy) @@ -23034,6 +23034,8 @@ case X86::TCRETURNri64: case X86::TCRETURNmi64: return BB; + case X86::TLSADDR: + llvm_unreachable("foo"); case X86::WIN_ALLOCA: return EmitLoweredWinAlloca(MI, BB); case X86::CATCHRET: Index: lib/Target/X86/X86InstrCompiler.td =================================================================== --- lib/Target/X86/X86InstrCompiler.td (revision 261121) +++ lib/Target/X86/X86InstrCompiler.td (working copy) @@ -112,6 +112,10 @@ "# dynamic stack allocation", [(X86WinAlloca)]>; +let isPseudo = 1 in + def TLSADDR : I<0, Pseudo, (outs), (ins i64mem:$sym), + "# tls things", []>; + // When using segmented stacks these are lowered into instructions which first // check if the current stacklet has enough free memory. If it does, memory is // allocated by bumping the stack pointer. Otherwise memory is allocated from