  
  struct option md_longopts[] =
  {
-@@ -7743,6 +8039,8 @@
+@@ -7743,6 +8066,8 @@
    {"mold-gcc", no_argument, NULL, OPTION_MOLD_GCC},
    {"msse2avx", no_argument, NULL, OPTION_MSSE2AVX},
    {"msse-check", required_argument, NULL, OPTION_MSSE_CHECK},

 tc-ns32k.o: config/tc-ns32k.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-ns32k.o -MD -MP -MF $(DEPDIR)/tc-ns32k.Tpo -c -o tc-ns32k.o `test -f 'config/tc-ns32k.c' || echo '$(srcdir)/'`config/tc-ns32k.c
 @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/tc-ns32k.Tpo $(DEPDIR)/tc-ns32k.Po
diff -uNr binutils-2.20.orig/gas/config/tc-i386.c binutils-2.20/gas/config/tc-i386.c
--- binutils-2.20.orig/gas/config/tc-i386.c	2009-09-14 13:43:27.000000000 +0200
+++ binutils-2.20/gas/config/tc-i386.c	2009-11-23 13:58:30.000000000 +0100

 /* Interface to relax_segment.
    There are 3 major relax states for 386 jump insns because the
    different types of jumps add different sizes to frags when we're
@@ -1782,7 +1801,7 @@
    class already exists, 1 if non rep/repne added, 2 if rep/repne
    added.  */
 static int
-add_prefix (unsigned int prefix)
+add_prefix (unsigned int prefix, int dublicate_are_errors)
 {
   int ret = 1;
   unsigned int q;
@@ -1842,7 +1861,7 @@
 	++i.prefixes;
       i.prefix[q] |= prefix;
     }
-  else
+  else if (dublicate_are_errors)
     as_bad (_("same type of prefix used twice"));
 
   return ret;
@@ -2117,6 +2136,34 @@
   else
     as_fatal (_("Unknown architecture"));
