Index: llvm/lib/Target/X86/X86AsmBackend.cpp
===================================================================
--- llvm.orig/lib/Target/X86/X86AsmBackend.cpp
+++ llvm/lib/Target/X86/X86AsmBackend.cpp
@@ -211,6 +211,18 @@ public:
   }
 };
 
+class ELFX86_32AsmBackend : public ELFX86AsmBackend {
+public:
+  ELFX86_32AsmBackend(const Target &T)
+    : ELFX86AsmBackend(T) {}
+};
+
+class ELFX86_64AsmBackend : public ELFX86AsmBackend {
+public:
+  ELFX86_64AsmBackend(const Target &T)
+    : ELFX86AsmBackend(T) {}
+};
+
 class DarwinX86AsmBackend : public X86AsmBackend {
 public:
   DarwinX86AsmBackend(const Target &T)
@@ -289,7 +301,7 @@ TargetAsmBackend *llvm::createX86_32AsmB
   case Triple::Darwin:
     return new DarwinX86_32AsmBackend(T);
   default:
-    return new ELFX86AsmBackend(T);
+    return new ELFX86_32AsmBackend(T);
   }
 }
 
@@ -299,6 +311,6 @@ TargetAsmBackend *llvm::createX86_64AsmB
   case Triple::Darwin:
     return new DarwinX86_64AsmBackend(T);
   default:
-    return new ELFX86AsmBackend(T);
+    return new ELFX86_64AsmBackend(T);
   }
 }
