$OpenBSD: patch-lib_Target_X86_InstPrinter_X86IntelInstPrinter_cpp,v 1.1 2019/02/20 00:24:11 jca Exp $

Merge LLVM commits r340844, r353818 and r353819 from the 8.0 branch
to fix a regression in floating point operations.

Index: lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp
--- lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp.orig
+++ lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp
@@ -160,3 +160,14 @@ void X86IntelInstPrinter::printU8Imm(const MCInst *MI,
 
   O << formatImm(MI->getOperand(Op).getImm() & 0xff);
 }
+
+void X86IntelInstPrinter::printSTiRegOperand(const MCInst *MI, unsigned OpNo,
+                                            raw_ostream &OS) {
+  const MCOperand &Op = MI->getOperand(OpNo);
+  unsigned Reg = Op.getReg();
+  // Override the default printing to print st(0) instead st.
+  if (Reg == X86::ST0)
+    OS << "st(0)";
+  else
+    printRegName(OS, Reg);
+}
