623c138
diff -rup binutils,orig/binutils/doc/binutils.texi binutils-2.41/binutils/doc/binutils.texi
623c138
--- binutils,orig/binutils/doc/binutils.texi	2024-02-12 10:03:46.609677213 +0000
623c138
+++ binutils-2.41/binutils/doc/binutils.texi	2024-02-12 10:03:55.976681219 +0000
623c138
@@ -2651,11 +2651,12 @@ rather than @code{li}.  All of the @opti
623c138
 @option{e300}, @option{e500}, @option{e500mc}, @option{e500mc64},
623c138
 @option{e500x2}, @option{e5500}, @option{e6500}, @option{efs},
623c138
 @option{power4}, @option{power5}, @option{power6}, @option{power7},
623c138
-@option{power8}, @option{power9}, @option{power10}, @option{ppc},
623c138
-@option{ppc32}, @option{ppc64}, @option{ppc64bridge}, @option{ppcps},
623c138
-@option{pwr}, @option{pwr2}, @option{pwr4}, @option{pwr5}, @option{pwr5x},
623c138
-@option{pwr6}, @option{pwr7}, @option{pwr8}, @option{pwr9}, @option{pwr10},
623c138
-@option{pwrx}, @option{titan}, @option{vle}, and @option{future}.
623c138
+@option{power8}, @option{power9}, @option{power10}, @option{power11},
623c138
+@option{ppc}, @option{ppc32}, @option{ppc64}, @option{ppc64bridge},
623c138
+@option{ppcps}, @option{pwr}, @option{pwr2}, @option{pwr4}, @option{pwr5},
623c138
+@option{pwr5x}, @option{pwr6}, @option{pwr7}, @option{pwr8}, @option{pwr9},
623c138
+@option{pwr10}, @option{pwr11}, @option{pwrx}, @option{titan}, @option{vle},
623c138
+and @option{future}.
623c138
 @option{32} and @option{64} modify the default or a prior CPU
623c138
 selection, disabling and enabling 64-bit insns respectively.  In
623c138
 addition, @option{altivec}, @option{any}, @option{lsp}, @option{htm},
623c138
Only in binutils-2.41/binutils/doc: binutils.texi.orig
623c138
diff -rup binutils,orig/gas/config/tc-ppc.c binutils-2.41/gas/config/tc-ppc.c
623c138
--- binutils,orig/gas/config/tc-ppc.c	2024-02-12 10:03:46.742677270 +0000
623c138
+++ binutils-2.41/gas/config/tc-ppc.c	2024-02-12 10:03:55.977681219 +0000
623c138
@@ -1392,6 +1392,8 @@ PowerPC options:\n"));
623c138
   fprintf (stream, _("\
623c138
 -mpower10, -mpwr10      generate code for Power10 architecture\n"));
623c138
   fprintf (stream, _("\
623c138
+-mpower11, -mpwr11      generate code for Power11 architecture\n"));
623c138
+  fprintf (stream, _("\
623c138
 -mlibresoc              generate code for Libre-SOC architecture\n"));
623c138
   fprintf (stream, _("\
623c138
 -mfuture                generate code for 'future' architecture\n"));
623c138
diff -rup binutils,orig/gas/doc/c-ppc.texi binutils-2.41/gas/doc/c-ppc.texi
623c138
--- binutils,orig/gas/doc/c-ppc.texi	2024-02-12 10:03:46.783677288 +0000
623c138
+++ binutils-2.41/gas/doc/c-ppc.texi	2024-02-12 10:03:55.977681219 +0000
623c138
@@ -156,6 +156,9 @@ Generate code for Power9 architecture.
623c138
 @item -mpower10, -mpwr10
623c138
 Generate code for Power10 architecture.
623c138
 
623c138
+@item -mpower11, -mpwr11
623c138
+Generate code for Power11 architecture.
623c138
+
623c138
 @item -mfuture
623c138
 Generate code for 'future' architecture.
623c138
 
623c138
diff -rup binutils,orig/opcodes/ppc-dis.c binutils-2.41/opcodes/ppc-dis.c
623c138
--- binutils,orig/opcodes/ppc-dis.c	2024-02-12 10:03:47.836677739 +0000
623c138
+++ binutils-2.41/opcodes/ppc-dis.c	2024-02-12 10:03:55.977681219 +0000
623c138
@@ -208,6 +208,11 @@ struct ppc_mopt ppc_opts[] = {
623c138
 		| PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 | PPC_OPCODE_POWER9
623c138
 		| PPC_OPCODE_POWER10 | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX),
623c138
     0 },
623c138
+  { "power11", (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64
623c138
+		| PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6
623c138
+		| PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 | PPC_OPCODE_POWER9
623c138
+		| PPC_OPCODE_POWER10 | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX),
623c138
+    0 },
623c138
   { "libresoc",(PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64
623c138
 		| PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6
623c138
 		| PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 | PPC_OPCODE_POWER9
623c138
@@ -267,6 +272,11 @@ struct ppc_mopt ppc_opts[] = {
623c138
 		| PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 | PPC_OPCODE_POWER9
623c138
 		| PPC_OPCODE_POWER10 | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX),
623c138
     0 },
623c138
+  { "pwr11",   (PPC_OPCODE_PPC | PPC_OPCODE_ISEL | PPC_OPCODE_64
623c138
+		| PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6
623c138
+		| PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 | PPC_OPCODE_POWER9
623c138
+		| PPC_OPCODE_POWER10 | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX),
623c138
+    0 },
623c138
   { "pwrx",    PPC_OPCODE_POWER | PPC_OPCODE_POWER2,
623c138
     0 },
623c138
   { "raw",     PPC_OPCODE_PPC,
623c138
@@ -396,7 +406,7 @@ powerpc_init_dialect (struct disassemble
623c138
       break;
623c138
     default:
623c138
       if (info->arch == bfd_arch_powerpc)
623c138
-	dialect = ppc_parse_cpu (dialect, &sticky, "power10") | PPC_OPCODE_ANY;
623c138
+	dialect = ppc_parse_cpu (dialect, &sticky, "power11") | PPC_OPCODE_ANY;
623c138
       else
623c138
 	dialect = ppc_parse_cpu (dialect, &sticky, "pwr");
623c138
       break;