Long double patch 7 of N, unless I lost count:).  
Last x87 bits for full functionality (not
thoroughly tested, and long doubles do not work
in SSE modes at all - use -mcpu=i486 for now)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40886 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/X86/X86FloatingPoint.cpp b/lib/Target/X86/X86FloatingPoint.cpp
index 7fb8cf1..1f571f4c 100644
--- a/lib/Target/X86/X86FloatingPoint.cpp
+++ b/lib/Target/X86/X86FloatingPoint.cpp
@@ -401,10 +401,13 @@
   { X86::ILD_Fp64m80  , X86::ILD_F64m  },
   { X86::ISTT_Fp16m32 , X86::ISTT_FP16m},
   { X86::ISTT_Fp16m64 , X86::ISTT_FP16m},
+  { X86::ISTT_Fp16m80 , X86::ISTT_FP16m},
   { X86::ISTT_Fp32m32 , X86::ISTT_FP32m},
   { X86::ISTT_Fp32m64 , X86::ISTT_FP32m},
+  { X86::ISTT_Fp32m80 , X86::ISTT_FP32m},
   { X86::ISTT_Fp64m32 , X86::ISTT_FP64m},
   { X86::ISTT_Fp64m64 , X86::ISTT_FP64m},
+  { X86::ISTT_Fp64m80 , X86::ISTT_FP64m},
   { X86::IST_Fp16m32  , X86::IST_F16m  },
   { X86::IST_Fp16m64  , X86::IST_F16m  },
   { X86::IST_Fp16m80  , X86::IST_F16m  },
@@ -616,6 +619,9 @@
        MI->getOpcode() == X86::ISTT_Fp16m64 ||
        MI->getOpcode() == X86::ISTT_Fp32m64 ||
        MI->getOpcode() == X86::ISTT_Fp64m64 ||
+       MI->getOpcode() == X86::ISTT_Fp16m80 ||
+       MI->getOpcode() == X86::ISTT_Fp32m80 ||
+       MI->getOpcode() == X86::ISTT_Fp64m80 ||
        MI->getOpcode() == X86::ST_FpP80m)) {
     duplicateToTop(Reg, 7 /*temp register*/, I);
   } else {