CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
Toolchain update.
authorVictor Martinez <pitillo@ono.com>
Thu, 3 Mar 2011 09:25:49 +0000 (09:25 +0000)
committerVictor Martinez <pitillo@ono.com>
Thu, 3 Mar 2011 09:25:49 +0000 (09:25 +0000)
Makefile
vars.mk
work/binutils-2.19.1-branch_update-5.patch [deleted file]

index aea2b535d8c2770ccc859c7da4008205eb68fd1d..19f51c9140b233e5670b34bdbd875274960376af 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -6,11 +6,11 @@ include vars.mk
 
 .PHONY: all clean distclean
 
-all: linux-headers libgmp libmpfr binutils gcc-static glibc gcc-final test
+all: linux-headers libgmp libmpfr libmpc binutils gcc-static glibc gcc-final test
 
-clean: linux-headers-clean libgmp-clean libmpfr-clean binutils-clean gcc-static-clean glibc-clean gcc-final-clean test-clean
+clean: linux-headers-clean libgmp-clean libmpfr-clean libmpc-clean binutils-clean gcc-static-clean glibc-clean gcc-final-clean test-clean
 
-distclean: clean linux-headers-distclean libgmp-distclean libmpfr-distclean binutils-distclean gcc-static-distclean glibc-distclean gcc-final-distclean test-distclean
+distclean: clean linux-headers-distclean libgmp-distclean libmpfr-distclean libmpc-distclean binutils-distclean gcc-static-distclean glibc-distclean gcc-final-distclean test-distclean
 
 
 # LINUX HEADERS
@@ -96,14 +96,42 @@ libmpfr-distclean: libmpfr-clean
        rm -vrf $(WORK)/mpfr-$(LIBMPFR_VERSION).tar.bz2
 
 
+# LIBMPC
+$(WORK)/mpc-$(LIBMPC_VERSION).tar.gz:
+       wget -P $(WORK) -c http://www.multiprecision.org/mpc/download/mpc-$(LIBMPC_VERSION).tar.gz
+
+$(WORK)/mpc-$(LIBMPC_VERSION): $(WORK)/mpc-$(LIBMPC_VERSION).tar.gz
+       tar -C $(WORK) -xvzf $(WORK)/mpc-$(LIBMPC_VERSION).tar.gz
+       touch $(WORK)/mpc-$(LIBMPC_VERSION)
+
+$(WORK)/build-libmpc: $(WORK)/mpc-$(LIBMPC_VERSION)
+       mkdir -p $(WORK)/build-libmpc
+       touch $(WORK)/build-libmpc
+
+$(CROSSTOOLS)/lib/libmpc.so: $(WORK)/build-libmpc
+       cd $(WORK)/build-libmpc && \
+               unset CFLAGS && unset CXXFLAGS && \
+               LDFLAGS="-Wl,-rpath,$(CROSSTOOLS)/lib" && \
+               $(WORK)/mpc-$(LIBMPC_VERSION)/configure --prefix=$(CROSSTOOLS) \
+               --enable-shared --with-gmp=$(CROSSTOOLS) --with-mpfr=$(CROSSTOOLS) && \
+               make && make install || exit 1
+       touch $(CROSSTOOLS)/lib/libmpc.so
+
+libmpc: $(CROSSTOOLS)/lib/libmpc.so
+
+libmpc-clean:
+       rm -vrf $(WORK)/build-libmpc $(WORK)/mpc-$(LIBMPC_VERSION)
+
+libmpc-distclean: libmpc-clean
+       rm -vrf $(WORK)/mpc-$(LIBMPC_VERSION).tar.bz2
+
+
 # BINUTILS
 $(WORK)/binutils-$(BINUTILS_VERSION).tar.bz2:
        wget -P $(WORK) -c ftp://ftp.gnu.org/gnu/binutils/binutils-$(BINUTILS_VERSION).tar.bz2
 
-$(WORK)/binutils-$(BINUTILS_VERSION): $(WORK)/binutils-$(BINUTILS_VERSION).tar.bz2 $(WORK)/binutils-$(BINUTILS_VERSION)-branch_update-5.patch
+$(WORK)/binutils-$(BINUTILS_VERSION): $(WORK)/binutils-$(BINUTILS_VERSION).tar.bz2
        tar -C $(WORK) -xvjf $(WORK)/binutils-$(BINUTILS_VERSION).tar.bz2
-       cd $(WORK)/binutils-$(BINUTILS_VERSION) && \
-               patch -p1 -i $(WORK)/binutils-$(BINUTILS_VERSION)-branch_update-5.patch
        sed -i '/^SUBDIRS/s/doc//' $(WORK)/binutils-$(BINUTILS_VERSION)/*/Makefile.in
        touch $(WORK)/binutils-$(BINUTILS_VERSION)
 
@@ -153,7 +181,7 @@ $(CROSSTOOLS)/lib/gcc: $(WORK)/build-gcc-static $(WORK)/gcc-$(GCC_VERSION)
                --without-headers --enable-__cxa_atexit --enable-symvers=gnu --disable-decimal-float \
                --nfp --without-fp --with-softfloat-support=internal \
                --disable-libgomp --disable-libmudflap --disable-libssp \
-               --with-mpfr=$(CROSSTOOLS) --with-gmp=$(CROSSTOOLS) \
+               --with-mpfr=$(CROSSTOOLS) --with-gmp=$(CROSSTOOLS) --with-mpc=${CROSSTOOLS} \
                --disable-shared --disable-threads --enable-languages=c && \
                make && make install || exit 1
        touch $(CROSSTOOLS)/lib/gcc
@@ -172,13 +200,14 @@ $(WORK)/glibc-$(GLIBC_VERSION).tar.bz2:
        wget -P $(WORK) -c ftp://ftp.gnu.org/gnu/glibc/glibc-$(GLIBC_VERSION).tar.bz2
 
 $(WORK)/glibc-ports-$(GLIBC_VERSION).tar.bz2:
-       wget -P $(WORK) -c ftp://ftp.gnu.org/gnu/glibc/glibc-ports-$(GLIBC_VERSION).tar.bz2
-$(WORK)/glibc-$(GLIBC_VERSION): $(WORK)/glibc-$(GLIBC_VERSION).tar.bz2 $(WORK)/glibc-ports-$(GLIBC_VERSION).tar.bz2
+       wget -P $(WORK) -c ftp://ftp.gnu.org/gnu/glibc/glibc-ports-$(GLIBC_PORTS_VERSION).tar.bz2
 
+$(WORK)/glibc-$(GLIBC_VERSION): $(WORK)/glibc-$(GLIBC_VERSION).tar.bz2 $(WORK)/glibc-ports-$(GLIBC_PORTS_VERSION).tar.bz2 $(WORK)/glibc-$(GLIBC_VERSION)-pot.patch
        tar -C $(WORK) -xvjf $(WORK)/glibc-$(GLIBC_VERSION).tar.bz2
        cd $(WORK)/glibc-$(GLIBC_VERSION) && \
-               tar xvjf $(WORK)/glibc-ports-$(GLIBC_VERSION).tar.bz2 && \
-               mv glibc-ports-$(GLIBC_VERSION) ports && \
+               tar xvjf $(WORK)/glibc-ports-$(GLIBC_PORTS_VERSION).tar.bz2 && \
+               patch -p0 -i $(WORK)/glibc-$(GLIBC_VERSION)-pot.patch && \
+               mv glibc-ports-$(GLIBC_PORTS_VERSION) ports && \
                sed -e 's/-lgcc_eh//g' -i Makeconfig
        touch $(WORK)/glibc-$(GLIBC_VERSION)
 
@@ -228,7 +257,7 @@ $(CLFS)/lib/gcc: $(WORK)/build-gcc-final $(WORK)/gcc-$(GCC_VERSION)
                --with-fp=no --with-headers=$(CLFS)/usr/include \
                --disable-multilib --with-sysroot=$(CLFS) --disable-nls \
                --enable-languages=c,c++ --enable-__cxa_atexit \
-               --with-mpfr=$(CROSSTOOLS) --with-gmp=$(CROSSTOOLS) \
+               --with-mpfr=$(CROSSTOOLS) --with-gmp=$(CROSSTOOLS) --with-mpc=$(CROSSTOOLS) \
                --enable-c99 --enable-long-long --enable-threads=posix && \
                make AS_FOR_TARGET="$(TARGET)-as" LD_FOR_TARGET="$(TARGET)-ld" && \
                make install || exit 1
diff --git a/vars.mk b/vars.mk
index acd81384ee79b2526a58f89c95e0c30c7d2cb743..691efd47fb6ccbd7a14de7f73263e013275cd912 100644 (file)
--- a/vars.mk
+++ b/vars.mk
@@ -11,10 +11,12 @@ CROSSTOOLS = $(PWD)/crosstools
 WORK = $(PWD)/work
 
 KERNEL_HEADERS_VERSION = 2.6.30.1
-LIBGMP_VERSION = 4.3.1
-LIBMPFR_VERSION = 2.4.2
-BINUTILS_VERSION = 2.19.1
-GCC_VERSION = 4.4.2
-GLIBC_VERSION = 2.10.1
+LIBGMP_VERSION = 5.0.1
+LIBMPFR_VERSION = 3.0.0
+LIBMPC_VERSION = 0.8.2
+BINUTILS_VERSION = 2.20.1
+GCC_VERSION = 4.5.2
+GLIBC_VERSION = 2.12.1
+GLIBC_PORTS_VERSION = 2.12.1
 
 # End of file
diff --git a/work/binutils-2.19.1-branch_update-5.patch b/work/binutils-2.19.1-branch_update-5.patch
deleted file mode 100644 (file)
index 36882aa..0000000
+++ /dev/null
@@ -1,12468 +0,0 @@
-Submitted By: Jim Gifford (jim at cross-lfs dot org)
-Date: 07-07-2009
-Initial Package Version: 2.19.1
-Origin: Upstream
-Upstream Status: Applied
-Description: This is a branch update for binutils-2.19.1, and should be
-             rechecked periodically.
-
-This patch was created on 20090707
-
-diff -Naur binutils-2.19.1.orig/bfd/ChangeLog binutils-2.19.1/bfd/ChangeLog
---- binutils-2.19.1.orig/bfd/ChangeLog 2009-02-02 02:44:39.000000000 -0800
-+++ binutils-2.19.1/bfd/ChangeLog      2009-03-02 05:55:19.000000000 -0800
-@@ -1,3 +1,108 @@
-+2009-03-02  Alan Modra  <amodra@bigpond.net.au>
-+
-+      2009-02-15  Alan Modra  <amodra@bigpond.net.au>
-+      * elf64-ppc.c (struct _ppc64_elf_section_data): Delete t_symndx,
-+      add toc.symndx and toc.add.
-+      (ppc64_elf_check_relocs): Don't set htab->tls_get_addr here.
-+      Set up toc.add.
-+      (get_tls_mask): Add toc_addend param, set from toc.add.  Adjust all
-+      callers.
-+      (ppc64_elf_tls_setup): Set htab->tls_get_addr and tls_get_addr_fd.
-+      (branch_reloc_hash_match): New function, extracted from..
-+      (ppc64_elf_tls_optimize): ..here.
-+      (ppc64_elf_relocate_section): Properly set addends when optimizing
-+      tls sequences.  Avoid unnecessary reading and writing of insns.
-+      Only redo reloc when symbol changed.  Bypass symbol checks when
-+      using tlsld_got.
-+      * elf32-ppc.c (ppc_elf_tls_setup): Correct comment.
-+      (branch_reloc_hash_match): New function, extracted from..
-+      (ppc_elf_tls_optimize): ..here.
-+      (ppc_elf_relocate_section): Avoid unnecessary reading of insns.
-+      Don't clear addend on zapped __tls_get_addr reloc.
-+
-+      2009-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
-+      * elf-eh-frame.c (REQUIRE_CLEARED_RELOCS) Remove.
-+      (_bfd_elf_parse_eh_frame): Do not check relocations for removed FDEs.
-+
-+      2009-01-26  Nathan Sidwell  <nathan@codesourcery.com>
-+      * elf32-ppc.c (ppc_elf_relax_section): Add space for relocs
-+      describing the trampolines.
-+      (ppc_elf_relocate_section): Update relocs to describe the
-+      trampolines.
-+
-+      2009-01-22  Alan Modra  <amodra@bigpond.net.au>
-+      PR 6832
-+      * dwarf2.c (find_line): Don't update stash->sec_info_ptr until
-+      after comp_unit_find_line call.
-+
-+      2009-01-14  Alan Modra  <amodra@bigpond.net.au>
-+      PR 9735
-+      * syms.c (_bfd_stab_section_find_nearest_line): Don't free
-+      saved filename, use bfd_alloc rather than bfd_malloc for it.
-+
-+      2009-01-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
-+      * elflink.c (_bfd_elf_section_already_linked): Handle g++-3.4
-+      relocations in `.gnu.linkonce.r.*' referencing its `.gnu.linkonce.t.*'.
-+
-+      2008-12-11  Alan Modra  <amodra@bigpond.net.au>
-+      PR 7041
-+      * elf64-ppc.c (func_desc_adjust): Correct logic making fake function
-+      descriptors.  Similarly correct making function descriptors dynamic.
-+
-+      2008-11-14  Nathan Sidwell  <nathan@codesourcery.com>
-+      * elf.c (assign_file_positions_for_load_sections): Use header_size
-+      to avoid moving the load address of file headers.
-+      (assign_file_positions_for_load_sections): Set header_size for
-+      segments containing the file header.
-+
-+      2008-11-13  Hans-Peter Nilsson  <hp@axis.com>
-+      PR ld/7028
-+      * elf.c (assign_file_positions_for_load_sections): Allocate phrds
-+      with bfd_zalloc2 instead of bfd_alloc2.  For the amount, use
-+      the possibly-preset header-size, not the computed one.
-+
-+      2008-11-13  Alan Modra  <amodra@bigpond.net.au>
-+      PR 7023
-+      * elf.c (bfd_section_from_shdr <SHT_SYMTAB>): Fail on invalid sh_info.
-+
-+      2008-11-11  Alan Modra  <amodra@bigpond.net.au>
-+      PR 7012
-+      * dwarf2.c (find_line): Don't keep stale pointers into realloc'd
-+      memory.  Return on errors.  Fix memory leak.
-+      (_bfd_dwarf2_cleanup_debug_info): Free dwarf_str_buffer.
-+
-+      2008-10-10  Nathan Froyd  <froydnj@codesourcery.com>
-+      * elf32-ppc.c (ppc_elf_merge_obj_attributes): Merge
-+      Tag_GNU_Power_ABI_Struct_Return.
-+
-+      2008-10-03  Alan Modra  <amodra@bigpond.net.au>
-+      * elf.c (bfd_elf_set_group_contents): Assign sh_info for ld -r when
-+      the signature symbol is global.
-+      * elflink.c (elf_link_input_bfd): Ensure group signature symbol
-+      is output when ld -r.  Set group sh_info when local.
-+      * linker.c (default_indirect_link_order): Handle group sections
-+      specially.
-+
-+      2008-09-28  Alan Modra  <amodra@bigpond.net.au>
-+      * elf.c (_bfd_elf_init_private_section_data): Tweak union copy.
-+      (bfd_section_from_shdr): Don't change SHT_GROUP section name.
-+      * elflink.c (section_signature): New function.
-+      (_bfd_elf_section_already_linked): Use it.
-+
-+2009-02-15  Bjoern Haase  <bjoern.m.haase@web.de>
-+
-+      PR 9841
-+      * elf32-avr.c: Handle case where no local symbos exist correctly.
-+
-+2009-02-04  Eric B. Weddington  <eric.weddington@atmel.com>
-+
-+      * elf32-avr.c (avr_final_link_relocate): Allow avr25 to wraparound.
-+
-+2009-02-03  Tristan Gingold  <gingold@adacore.com>
-+
-+      * Makefile.am (RELEASE): Unset.
-+      * Makefile.in: Regenerated.
-+
- 2009-02-02  Tristan Gingold  <gingold@adacore.com>
-       * configure.in: Bump version to 2.19.1
-diff -Naur binutils-2.19.1.orig/bfd/dwarf2.c binutils-2.19.1/bfd/dwarf2.c
---- binutils-2.19.1.orig/bfd/dwarf2.c  2008-10-02 01:07:16.000000000 -0700
-+++ binutils-2.19.1/bfd/dwarf2.c       2009-03-02 05:50:55.000000000 -0800
-@@ -1,6 +1,6 @@
- /* DWARF 2 support.
-    Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
--   2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-+   2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-    Adapted from gdb/dwarf2read.c by Gavin Koch of Cygnus Solutions
-    (gavin@cygnus.com).
-@@ -2989,8 +2989,6 @@
-                             symbols, 0,
-                             &stash->info_ptr_memory, &total_size))
-           goto done;
--        stash->info_ptr = stash->info_ptr_memory;
--        stash->info_ptr_end = stash->info_ptr + total_size;
-       }
-       else
-       {
-@@ -3008,63 +3006,64 @@
-             if (stash->info_ptr_memory == NULL)
-               goto done;
--            stash->info_ptr = stash->info_ptr_memory;
--            stash->info_ptr_end = stash->info_ptr;
--
-+            total_size = 0;
-             for (msec = find_debug_info (debug_bfd, NULL);
-                  msec;
-                  msec = find_debug_info (debug_bfd, msec))
-               {
-                 bfd_size_type size;
--                bfd_size_type start;
-                 size = msec->size;
-                 if (size == 0)
-                   continue;
--                start = stash->info_ptr_end - stash->info_ptr;
--
--                if ((bfd_simple_get_relocated_section_contents
--                     (debug_bfd, msec, stash->info_ptr + start, symbols))
--                    == NULL)
--                  continue;
-+                if (!(bfd_simple_get_relocated_section_contents
-+                      (debug_bfd, msec, stash->info_ptr_memory + total_size,
-+                       symbols)))
-+                  goto done;
--                stash->info_ptr_end = stash->info_ptr + start + size;
-+                total_size += size;
-               }
--
--            BFD_ASSERT (stash->info_ptr_end == stash->info_ptr + total_size);
-           }
-         else
-           {
-             /* Case 3: multiple sections, some or all compressed.  */
--            stash->info_ptr_memory = bfd_malloc (1);
--            stash->info_ptr = stash->info_ptr_memory;
--            stash->info_ptr_end = stash->info_ptr;
-+            stash->info_ptr_memory = NULL;
-+            total_size = 0;
-             for (msec = find_debug_info (debug_bfd, NULL);
-                  msec;
-                  msec = find_debug_info (debug_bfd, msec))
-               {
-                 bfd_size_type size = msec->size;
--                bfd_byte* buffer
--                    = (bfd_simple_get_relocated_section_contents
--                       (debug_bfd, msec, NULL, symbols));
--                if (! buffer)
-+                bfd_byte* buffer;
-+
-+                if (size == 0)
-                   continue;
-+
-+                buffer = (bfd_simple_get_relocated_section_contents
-+                          (debug_bfd, msec, NULL, symbols));
-+                if (! buffer)
-+                  goto done;
-+
-                 if (strcmp (msec->name, DWARF2_COMPRESSED_DEBUG_INFO) == 0)
-                   {
-                     if (! bfd_uncompress_section_contents (&buffer, &size))
--                      continue;
-+                      {
-+                        free (buffer);
-+                        goto done;
-+                      }
-                   }
--                stash->info_ptr = bfd_realloc (stash->info_ptr,
--                                               stash->info_ptr_end
--                                               - stash->info_ptr + size);
--                memcpy (stash->info_ptr_end, buffer, size);
-+                stash->info_ptr_memory = bfd_realloc (stash->info_ptr_memory,
-+                                                      total_size + size);
-+                memcpy (stash->info_ptr_memory + total_size, buffer, size);
-                 free (buffer);
--                stash->info_ptr_end += size;
-+                total_size += size;
-               }
-           }
-       }
-+      stash->info_ptr = stash->info_ptr_memory;
-+      stash->info_ptr_end = stash->info_ptr + total_size;
-       stash->sec = find_debug_info (debug_bfd, NULL);
-       stash->sec_info_ptr = stash->info_ptr;
-       stash->syms = symbols;
-@@ -3187,13 +3186,6 @@
-           break;
-         stash->info_ptr += length;
--        if ((bfd_vma) (stash->info_ptr - stash->sec_info_ptr)
--            == stash->sec->size)
--          {
--            stash->sec = find_debug_info (stash->bfd, stash->sec);
--            stash->sec_info_ptr = stash->info_ptr;
--          }
--
-         if (stash->all_comp_units)
-           stash->all_comp_units->prev_unit = each;
-         else
-@@ -3223,6 +3215,14 @@
-                                                    functionname_ptr,
-                                                    linenumber_ptr,
-                                                    stash));
-+
-+        if ((bfd_vma) (stash->info_ptr - stash->sec_info_ptr)
-+            == stash->sec->size)
-+          {
-+            stash->sec = find_debug_info (stash->bfd, stash->sec);
-+            stash->sec_info_ptr = stash->info_ptr;
-+          }
-+
-         if (found)
-           goto done;
-       }
-@@ -3364,8 +3364,14 @@
-       }
-     }
--  free (stash->dwarf_abbrev_buffer);
--  free (stash->dwarf_line_buffer);
--  free (stash->dwarf_ranges_buffer);
--  free (stash->info_ptr_memory);
-+  if (stash->dwarf_abbrev_buffer)
-+    free (stash->dwarf_abbrev_buffer);
-+  if (stash->dwarf_line_buffer)
-+    free (stash->dwarf_line_buffer);
-+  if (stash->dwarf_str_buffer)
-+    free (stash->dwarf_str_buffer);
-+  if (stash->dwarf_ranges_buffer)
-+    free (stash->dwarf_ranges_buffer);
-+  if (stash->info_ptr_memory)
-+    free (stash->info_ptr_memory);
- }
-diff -Naur binutils-2.19.1.orig/bfd/elf32-avr.c binutils-2.19.1/bfd/elf32-avr.c
---- binutils-2.19.1.orig/bfd/elf32-avr.c       2008-12-23 05:54:49.000000000 -0800
-+++ binutils-2.19.1/bfd/elf32-avr.c    2009-02-19 09:53:10.000000000 -0800
-@@ -854,10 +854,11 @@
-       {
-           /* Relative distance is too large.  */
--        /* Always apply WRAPAROUND for avr2 and avr4.  */
-+        /* Always apply WRAPAROUND for avr2, avr25, and avr4.  */
-         switch (bfd_get_mach (input_bfd))
-           {
-           case bfd_mach_avr2:
-+          case bfd_mach_avr25:
-           case bfd_mach_avr4:
-             break;
-@@ -1553,7 +1554,8 @@
-   /* Adjust the local symbols defined in this section.  */
-   isym = (Elf_Internal_Sym *) symtab_hdr->contents;
-   isymend = isym + symtab_hdr->sh_info;
--  for (; isym < isymend; isym++)
-+  /* Fix PR 9841, there may be no local symbols.  */ 
-+  for (; isym != NULL && isym < isymend; isym++)
-     {
-       if (isym->st_shndx == sec_shndx
-           && isym->st_value > addr
-diff -Naur binutils-2.19.1.orig/bfd/elf32-ppc.c binutils-2.19.1/bfd/elf32-ppc.c
---- binutils-2.19.1.orig/bfd/elf32-ppc.c       2008-12-23 05:54:49.000000000 -0800
-+++ binutils-2.19.1/bfd/elf32-ppc.c    2009-03-02 05:55:19.000000000 -0800
-@@ -1,6 +1,6 @@
- /* PowerPC-specific support for 32-bit ELF
-    Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
--   2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-+   2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-    Written by Ian Lance Taylor, Cygnus Support.
-    This file is part of BFD, the Binary File Descriptor library.
-@@ -3964,6 +3964,33 @@
-          ibfd, obfd, in_abi, out_abi);
-     }
-+  /* Check for conflicting Tag_GNU_Power_ABI_Struct_Return attributes
-+     and merge non-conflicting ones.  */
-+  in_attr = &in_attrs[Tag_GNU_Power_ABI_Struct_Return];
-+  out_attr = &out_attrs[Tag_GNU_Power_ABI_Struct_Return];
-+  if (in_attr->i != out_attr->i)
-+    {
-+      out_attr->type = 1;
-+      if (out_attr->i == 0)
-+       out_attr->i = in_attr->i;
-+      else if (in_attr->i == 0)
-+       ;
-+      else if (out_attr->i == 1 && in_attr->i == 2)
-+       _bfd_error_handler
-+         (_("Warning: %B uses r3/r4 for small structure returns, %B uses memory"), obfd, ibfd);
-+      else if (out_attr->i == 2 && in_attr->i == 1)
-+       _bfd_error_handler
-+         (_("Warning: %B uses r3/r4 for small structure returns, %B uses memory"), ibfd, obfd);
-+      else if (in_attr->i > 2)
-+       _bfd_error_handler
-+         (_("Warning: %B uses unknown small structure return convention %d"), ibfd,
-+          in_attr->i);
-+      else
-+       _bfd_error_handler
-+         (_("Warning: %B uses unknown small structure return convention %d"), obfd,
-+          out_attr->i);
-+    }
-+
-   /* Merge Tag_compatibility attributes and any common GNU ones.  */
-   _bfd_elf_merge_object_attributes (ibfd, obfd);
-@@ -4298,7 +4325,8 @@
-   return TRUE;
- }
\f
--/* Set htab->tls_get_addr and call the generic ELF tls_setup function.  */
-+/* Set plt output section type, htab->tls_get_addr, and call the
-+   generic ELF tls_setup function.  */
- asection *
- ppc_elf_tls_setup (bfd *obfd, struct bfd_link_info *info)
-@@ -4319,6 +4347,43 @@
-   return _bfd_elf_tls_setup (obfd, info);
- }
-+/* Return TRUE iff REL is a branch reloc with a global symbol matching
-+   HASH.  */
-+
-+static bfd_boolean
-+branch_reloc_hash_match (const bfd *ibfd,
-+                       const Elf_Internal_Rela *rel,
-+                       const struct elf_link_hash_entry *hash)
-+{
-+  Elf_Internal_Shdr *symtab_hdr = &elf_symtab_hdr (ibfd);
-+  enum elf_ppc_reloc_type r_type = ELF32_R_TYPE (rel->r_info);
-+  unsigned int r_symndx = ELF32_R_SYM (rel->r_info);
-+
-+  if (r_symndx >= symtab_hdr->sh_info
-+      && (r_type == R_PPC_PLTREL24
-+        || r_type == R_PPC_LOCAL24PC
-+        || r_type == R_PPC_REL14
-+        || r_type == R_PPC_REL14_BRTAKEN
-+        || r_type == R_PPC_REL14_BRNTAKEN
-+        || r_type == R_PPC_REL24
-+        || r_type == R_PPC_ADDR24
-+        || r_type == R_PPC_ADDR14
-+        || r_type == R_PPC_ADDR14_BRTAKEN
-+        || r_type == R_PPC_ADDR14_BRNTAKEN))
-+    {
-+      struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (ibfd);
-+      struct elf_link_hash_entry *h;
-+
-+      h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-+      while (h->root.type == bfd_link_hash_indirect
-+           || h->root.type == bfd_link_hash_warning)
-+      h = (struct elf_link_hash_entry *) h->root.u.i.link;
-+      if (h == hash)
-+      return TRUE;
-+    }
-+  return FALSE;
-+}
-+
- /* Run through all the TLS relocs looking for optimization
-    opportunities.  */
-@@ -4446,35 +4511,10 @@
-                     if (!expecting_tls_get_addr)
-                       continue;
--                    if (rel + 1 < relend)
--                      {
--                        enum elf_ppc_reloc_type r_type2;
--                        unsigned long r_symndx2;
--                        struct elf_link_hash_entry *h2;
--
--                        /* The next instruction should be a call to
--                           __tls_get_addr.  Peek at the reloc to be sure.  */
--                        r_type2 = ELF32_R_TYPE (rel[1].r_info);
--                        r_symndx2 = ELF32_R_SYM (rel[1].r_info);
--                        if (r_symndx2 >= symtab_hdr->sh_info
--                            && (r_type2 == R_PPC_REL14
--                                || r_type2 == R_PPC_REL14_BRTAKEN
--                                || r_type2 == R_PPC_REL14_BRNTAKEN
--                                || r_type2 == R_PPC_REL24
--                                || r_type2 == R_PPC_PLTREL24))
--                          {
--                            struct elf_link_hash_entry **sym_hashes;
--
--                            sym_hashes = elf_sym_hashes (ibfd);
--                            h2 = sym_hashes[r_symndx2 - symtab_hdr->sh_info];
--                            while (h2->root.type == bfd_link_hash_indirect
--                                   || h2->root.type == bfd_link_hash_warning)
--                              h2 = ((struct elf_link_hash_entry *)
--                                    h2->root.u.i.link);
--                            if (h2 == htab->tls_get_addr)
--                              continue;
--                          }
--                      }
-+                    if (rel + 1 < relend
-+                        && branch_reloc_hash_match (ibfd, rel + 1,
-+                                                    htab->tls_get_addr))
-+                      continue;
-                     /* Uh oh, we didn't find the expected call.  We
-                        could just mark this symbol to exclude it
-@@ -5573,7 +5613,7 @@
-   Elf_Internal_Rela *internal_relocs = NULL;
-   Elf_Internal_Rela *irel, *irelend;
-   struct one_fixup *fixups = NULL;
--  bfd_boolean changed;
-+  unsigned changes = 0;
-   struct ppc_elf_link_hash_table *htab;
-   bfd_size_type trampoff;
-   asection *got2;
-@@ -5820,6 +5860,7 @@
-         fixups = f;
-         trampoff += size;
-+        changes++;
-       }
-       else
-       {
-@@ -5870,7 +5911,6 @@
-     }
-   /* Write out the trampolines.  */
--  changed = fixups != NULL;
-   if (fixups != NULL)
-     {
-       const int *stub;
-@@ -5936,7 +5976,7 @@
-   if (contents != NULL
-       && elf_section_data (isec)->this_hdr.contents != contents)
-     {
--      if (!changed && !link_info->keep_memory)
-+      if (!changes && !link_info->keep_memory)
-       free (contents);
-       else
-       {
-@@ -5945,15 +5985,35 @@
-       }
-     }
--  if (elf_section_data (isec)->relocs != internal_relocs)
-+  if (changes != 0)
-     {
--      if (!changed)
-+      /* Append sufficient NOP relocs so we can write out relocation
-+       information for the trampolines.  */
-+      Elf_Internal_Rela *new_relocs = bfd_malloc ((changes + isec->reloc_count)
-+                                                * sizeof (*new_relocs));
-+      unsigned ix;
-+      
-+      if (!new_relocs)
-+      goto error_return;
-+      memcpy (new_relocs, internal_relocs,
-+            isec->reloc_count * sizeof (*new_relocs));
-+      for (ix = changes; ix--;)
-+      {
-+        irel = new_relocs + ix + isec->reloc_count;
-+
-+        irel->r_info = ELF32_R_INFO (0, R_PPC_NONE);
-+      }
-+      if (internal_relocs != elf_section_data (isec)->relocs)
-       free (internal_relocs);
--      else
--      elf_section_data (isec)->relocs = internal_relocs;
-+      elf_section_data (isec)->relocs = new_relocs;
-+      isec->reloc_count += changes;
-+      elf_section_data (isec)->rel_hdr.sh_size
-+      += changes * elf_section_data (isec)->rel_hdr.sh_entsize;
-     }
-+  else if (elf_section_data (isec)->relocs != internal_relocs)
-+    free (internal_relocs);
--  *again = changed;
-+  *again = changes != 0;
-   return TRUE;
-  error_return:
-@@ -6321,22 +6381,21 @@
-       case R_PPC_GOT_TLSLD16_LO:
-         if (tls_mask != 0 && (tls_mask & TLS_LD) == 0)
-           {
--            bfd_vma insn1, insn2;
-+            unsigned int insn1, insn2;
-             bfd_vma offset;
-           tls_ldgd_opt:
-             offset = rel[1].r_offset;
--            insn1 = bfd_get_32 (output_bfd,
--                                contents + rel->r_offset - d_offset);
-             if ((tls_mask & tls_gd) != 0)
-               {
-                 /* IE */
-+                insn1 = bfd_get_32 (output_bfd,
-+                                    contents + rel->r_offset - d_offset);
-                 insn1 &= (1 << 26) - 1;
-                 insn1 |= 32 << 26;    /* lwz */
-                 insn2 = 0x7c631214;   /* add 3,3,2 */
-                 rel[1].r_info
-                   = ELF32_R_INFO (ELF32_R_SYM (rel[1].r_info), R_PPC_NONE);
--                rel[1].r_addend = 0;
-                 r_type = (((r_type - (R_PPC_GOT_TLSGD16 & 3)) & 3)
-                           + R_PPC_GOT_TPREL16);
-                 rel->r_info = ELF32_R_INFO (r_symndx, r_type);
-@@ -6959,6 +7018,17 @@
-           bfd_put_32 (output_bfd, t0, contents + rel->r_offset);
-           bfd_put_32 (output_bfd, t1, contents + rel->r_offset + 4);
-+
-+          /* Rewrite the reloc and convert one of the trailing nop
-+             relocs to describe this relocation.  */
-+          BFD_ASSERT (ELF32_R_TYPE (relend[-1].r_info) == R_PPC_NONE);
-+          /* The relocs are at the bottom 2 bytes */
-+          rel[0].r_offset += 2;
-+          memmove (rel + 1, rel, (relend - rel - 1) * sizeof (*rel));
-+          rel[0].r_info = ELF32_R_INFO (r_symndx, R_PPC_ADDR16_HA);
-+          rel[1].r_offset += 4;
-+          rel[1].r_info = ELF32_R_INFO (r_symndx, R_PPC_ADDR16_LO);
-+          rel++;
-         }
-         continue;
-diff -Naur binutils-2.19.1.orig/bfd/elf64-ppc.c binutils-2.19.1/bfd/elf64-ppc.c
---- binutils-2.19.1.orig/bfd/elf64-ppc.c       2008-10-09 05:18:24.000000000 -0700
-+++ binutils-2.19.1/bfd/elf64-ppc.c    2009-03-02 05:55:19.000000000 -0800
-@@ -1,6 +1,6 @@
- /* PowerPC64-specific support for 64-bit ELF.
--   Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
--   Free Software Foundation, Inc.
-+   Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-+   2009 Free Software Foundation, Inc.
-    Written by Linus Nordberg, Swox AB <info@swox.com>,
-    based on elf32-ppc.c by Ian Lance Taylor.
-    Largely rewritten by Alan Modra <amodra@bigpond.net.au>
-@@ -2608,9 +2608,15 @@
-       long *adjust;
-     } opd;
--    /* An array for toc sections, indexed by offset/8.
--       Specifies the relocation symbol index used at a given toc offset.  */
--    unsigned *t_symndx;
-+    /* An array for toc sections, indexed by offset/8.  */
-+    struct _toc_sec_data
-+    {
-+      /* Specifies the relocation symbol index used at a given toc offset.  */
-+      unsigned *symndx;
-+
-+      /* And the relocation addend.  */
-+      bfd_vma *add;
-+    } toc;
-   } u;
-   enum _ppc64_sec_type sec_type:2;
-@@ -4578,6 +4584,7 @@
-   const Elf_Internal_Rela *rel_end;
-   asection *sreloc;
-   asection **opd_sym_map;
-+  struct elf_link_hash_entry *tga, *dottga;
-   if (info->relocatable)
-     return TRUE;
-@@ -4594,6 +4601,10 @@
-   BFD_ASSERT (is_ppc64_elf (abfd));
-   htab = ppc_hash_table (info);
-+  tga = elf_link_hash_lookup (&htab->elf, "__tls_get_addr",
-+                            FALSE, FALSE, TRUE);
-+  dottga = elf_link_hash_lookup (&htab->elf, ".__tls_get_addr",
-+                               FALSE, FALSE, TRUE);
-   symtab_hdr = &elf_symtab_hdr (abfd);
-   sym_hashes = elf_sym_hashes (abfd);
-@@ -4829,25 +4840,8 @@
-             if (!update_plt_info (abfd, (struct ppc_link_hash_entry *) h,
-                                   rel->r_addend))
-               return FALSE;
--            if (h == &htab->tls_get_addr->elf
--                || h == &htab->tls_get_addr_fd->elf)
-+            if (h == tga || h == dottga)
-               sec->has_tls_reloc = 1;
--            else if (htab->tls_get_addr == NULL
--                     && CONST_STRNEQ (h->root.root.string, ".__tls_get_addr")
--                     && (h->root.root.string[15] == 0
--                         || h->root.root.string[15] == '@'))
--              {
--                htab->tls_get_addr = (struct ppc_link_hash_entry *) h;
--                sec->has_tls_reloc = 1;
--              }
--            else if (htab->tls_get_addr_fd == NULL
--                     && CONST_STRNEQ (h->root.root.string, "__tls_get_addr")
--                     && (h->root.root.string[14] == 0
--                         || h->root.root.string[14] == '@'))
--              {
--                htab->tls_get_addr_fd = (struct ppc_link_hash_entry *) h;
--                sec->has_tls_reloc = 1;
--              }
-           }
-         break;
-@@ -4891,23 +4885,30 @@
-         ppc64_sec = ppc64_elf_section_data (sec);
-         if (ppc64_sec->sec_type != sec_toc)
-           {
-+            bfd_size_type amt;
-+
-             /* One extra to simplify get_tls_mask.  */
--            bfd_size_type amt = sec->size * sizeof (unsigned) / 8 + 1;
--            ppc64_sec->u.t_symndx = bfd_zalloc (abfd, amt);
--            if (ppc64_sec->u.t_symndx == NULL)
-+            amt = sec->size * sizeof (unsigned) / 8 + sizeof (unsigned);
-+            ppc64_sec->u.toc.symndx = bfd_zalloc (abfd, amt);
-+            if (ppc64_sec->u.toc.symndx == NULL)
-+              return FALSE;
-+            amt = sec->size * sizeof (bfd_vma) / 8;
-+            ppc64_sec->u.toc.add = bfd_zalloc (abfd, amt);
-+            if (ppc64_sec->u.toc.add == NULL)
-               return FALSE;
-             BFD_ASSERT (ppc64_sec->sec_type == sec_normal);
-             ppc64_sec->sec_type = sec_toc;
-           }
-         BFD_ASSERT (rel->r_offset % 8 == 0);
--        ppc64_sec->u.t_symndx[rel->r_offset / 8] = r_symndx;
-+        ppc64_sec->u.toc.symndx[rel->r_offset / 8] = r_symndx;
-+        ppc64_sec->u.toc.add[rel->r_offset / 8] = rel->r_addend;
-         /* Mark the second slot of a GD or LD entry.
-            -1 to indicate GD and -2 to indicate LD.  */
-         if (tls_type == (TLS_EXPLICIT | TLS_TLS | TLS_GD))
--          ppc64_sec->u.t_symndx[rel->r_offset / 8 + 1] = -1;
-+          ppc64_sec->u.toc.symndx[rel->r_offset / 8 + 1] = -1;
-         else if (tls_type == (TLS_EXPLICIT | TLS_TLS | TLS_LD))
--          ppc64_sec->u.t_symndx[rel->r_offset / 8 + 1] = -2;
-+          ppc64_sec->u.toc.symndx[rel->r_offset / 8 + 1] = -2;
-         goto dodyn;
-       case R_PPC64_TPREL16:
-@@ -5847,7 +5848,7 @@
-       fdh = (struct ppc_link_hash_entry *) fdh->elf.root.u.i.link;
-   if (fdh == NULL
--      && info->shared
-+      && !info->executable
-       && (fh->elf.root.type == bfd_link_hash_undefined
-         || fh->elf.root.type == bfd_link_hash_undefweak))
-     {
-@@ -5880,7 +5881,7 @@
-   if (fdh != NULL
-       && !fdh->elf.forced_local
--      && (info->shared
-+      && (!info->executable
-         || fdh->elf.def_dynamic
-         || fdh->elf.ref_dynamic
-         || (fdh->elf.root.type == bfd_link_hash_undefweak
-@@ -6258,9 +6259,12 @@
-    type suitable for optimization, and 1 otherwise.  */
- static int
--get_tls_mask (char **tls_maskp, unsigned long *toc_symndx,
-+get_tls_mask (char **tls_maskp,
-+            unsigned long *toc_symndx,
-+            bfd_vma *toc_addend,
-             Elf_Internal_Sym **locsymsp,
--            const Elf_Internal_Rela *rel, bfd *ibfd)
-+            const Elf_Internal_Rela *rel,
-+            bfd *ibfd)
- {
-   unsigned long r_symndx;
-   int next_r;
-@@ -6288,12 +6292,14 @@
-     off = sym->st_value;
-   off += rel->r_addend;
-   BFD_ASSERT (off % 8 == 0);
--  r_symndx = ppc64_elf_section_data (sec)->u.t_symndx[off / 8];
--  next_r = ppc64_elf_section_data (sec)->u.t_symndx[off / 8 + 1];
--  if (!get_sym_h (&h, &sym, &sec, tls_maskp, locsymsp, r_symndx, ibfd))
--    return 0;
-+  r_symndx = ppc64_elf_section_data (sec)->u.toc.symndx[off / 8];
-+  next_r = ppc64_elf_section_data (sec)->u.toc.symndx[off / 8 + 1];
-   if (toc_symndx != NULL)
-     *toc_symndx = r_symndx;
-+  if (toc_addend != NULL)
-+    *toc_addend = ppc64_elf_section_data (sec)->u.toc.add[off / 8];
-+  if (!get_sym_h (&h, &sym, &sec, tls_maskp, locsymsp, r_symndx, ibfd))
-+    return 0;
-   if ((h == NULL
-        || ((h->root.type == bfd_link_hash_defined
-           || h->root.type == bfd_link_hash_defweak)
-@@ -6898,36 +6904,49 @@
-   struct ppc_link_hash_table *htab;
-   htab = ppc_hash_table (info);
--  if (htab->tls_get_addr != NULL)
--    {
--      struct ppc_link_hash_entry *h = htab->tls_get_addr;
--
--      while (h->elf.root.type == bfd_link_hash_indirect
--           || h->elf.root.type == bfd_link_hash_warning)
--      h = (struct ppc_link_hash_entry *) h->elf.root.u.i.link;
-+  htab->tls_get_addr = ((struct ppc_link_hash_entry *)
-+                      elf_link_hash_lookup (&htab->elf, ".__tls_get_addr",
-+                                            FALSE, FALSE, TRUE));
-+  htab->tls_get_addr_fd = ((struct ppc_link_hash_entry *)
-+                         elf_link_hash_lookup (&htab->elf, "__tls_get_addr",
-+                                               FALSE, FALSE, TRUE));
-+  return _bfd_elf_tls_setup (obfd, info);
-+}
--      htab->tls_get_addr = h;
-+/* Return TRUE iff REL is a branch reloc with a global symbol matching
-+   HASH1 or HASH2.  */
--      if (htab->tls_get_addr_fd == NULL
--        && h->oh != NULL
--        && h->oh->is_func_descriptor
--        && (h->oh->elf.root.type == bfd_link_hash_defined
--            || h->oh->elf.root.type == bfd_link_hash_defweak))
--      htab->tls_get_addr_fd = h->oh;
--    }
-+static bfd_boolean
-+branch_reloc_hash_match (const bfd *ibfd,
-+                       const Elf_Internal_Rela *rel,
-+                       const struct ppc_link_hash_entry *hash1,
-+                       const struct ppc_link_hash_entry *hash2)
-+{
-+  Elf_Internal_Shdr *symtab_hdr = &elf_symtab_hdr (ibfd);
-+  enum elf_ppc64_reloc_type r_type = ELF64_R_TYPE (rel->r_info);
-+  unsigned int r_symndx = ELF64_R_SYM (rel->r_info);
--  if (htab->tls_get_addr_fd != NULL)
-+  if (r_symndx >= symtab_hdr->sh_info
-+      && (r_type == R_PPC64_REL24
-+        || r_type == R_PPC64_REL14
-+        || r_type == R_PPC64_REL14_BRTAKEN
-+        || r_type == R_PPC64_REL14_BRNTAKEN
-+        || r_type == R_PPC64_ADDR24
-+        || r_type == R_PPC64_ADDR14
-+        || r_type == R_PPC64_ADDR14_BRTAKEN
-+        || r_type == R_PPC64_ADDR14_BRNTAKEN))
-     {
--      struct ppc_link_hash_entry *h = htab->tls_get_addr_fd;
--
--      while (h->elf.root.type == bfd_link_hash_indirect
--           || h->elf.root.type == bfd_link_hash_warning)
--      h = (struct ppc_link_hash_entry *) h->elf.root.u.i.link;
-+      struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (ibfd);
-+      struct elf_link_hash_entry *h;
--      htab->tls_get_addr_fd = h;
-+      h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-+      while (h->root.type == bfd_link_hash_indirect
-+           || h->root.type == bfd_link_hash_warning)
-+      h = (struct elf_link_hash_entry *) h->root.u.i.link;
-+      if (h == &hash1->elf || h == &hash2->elf)
-+      return TRUE;
-     }
--
--  return _bfd_elf_tls_setup (obfd, info);
-+  return FALSE;
- }
- /* Run through all the TLS relocs looking for optimization
-@@ -7173,55 +7192,26 @@
-                     if (!expecting_tls_get_addr)
-                       continue;
--                    if (rel + 1 < relend)
-+                    if (rel + 1 < relend
-+                        && branch_reloc_hash_match (ibfd, rel + 1,
-+                                                    htab->tls_get_addr,
-+                                                    htab->tls_get_addr_fd))
-                       {
--                        Elf_Internal_Shdr *symtab_hdr;
--                        enum elf_ppc64_reloc_type r_type2;
--                        unsigned long r_symndx2;
--                        struct elf_link_hash_entry *h2;
--
--                        symtab_hdr = &elf_symtab_hdr (ibfd);
--
--                        /* The next instruction should be a call to
--                           __tls_get_addr.  Peek at the reloc to be sure.  */
--                        r_type2 = ELF64_R_TYPE (rel[1].r_info);
--                        r_symndx2 = ELF64_R_SYM (rel[1].r_info);
--                        if (r_symndx2 >= symtab_hdr->sh_info
--                            && (r_type2 == R_PPC64_REL14
--                                || r_type2 == R_PPC64_REL14_BRTAKEN
--                                || r_type2 == R_PPC64_REL14_BRNTAKEN
--                                || r_type2 == R_PPC64_REL24))
-+                        if (expecting_tls_get_addr == 2)
-                           {
--                            struct elf_link_hash_entry **sym_hashes;
--
--                            sym_hashes = elf_sym_hashes (ibfd);
--
--                            h2 = sym_hashes[r_symndx2 - symtab_hdr->sh_info];
--                            while (h2->root.type == bfd_link_hash_indirect
--                                   || h2->root.type == bfd_link_hash_warning)
--                              h2 = ((struct elf_link_hash_entry *)
--                                    h2->root.u.i.link);
--                            if (h2 != NULL
--                                && (h2 == &htab->tls_get_addr->elf
--                                    || h2 == &htab->tls_get_addr_fd->elf))
--                              {
--                                if (expecting_tls_get_addr == 2)
--                                  {
--                                    /* Check for toc tls entries.  */
--                                    char *toc_tls;
--                                    int retval;
--
--                                    retval = get_tls_mask (&toc_tls, NULL,
--                                                           &locsyms,
--                                                           rel, ibfd);
--                                    if (retval == 0)
--                                      goto err_free_rel;
--                                    if (retval > 1 && toc_tls != NULL)
--                                      toc_ref[toc_ref_index] = 1;
--                                  }
--                                continue;
--                              }
-+                            /* Check for toc tls entries.  */
-+                            char *toc_tls;
-+                            int retval;
-+
-+                            retval = get_tls_mask (&toc_tls, NULL, NULL,
-+                                                   &locsyms,
-+                                                   rel, ibfd);
-+                            if (retval == 0)
-+                              goto err_free_rel;
-+                            if (retval > 1 && toc_tls != NULL)
-+                              toc_ref[toc_ref_index] = 1;
-                           }
-+                        continue;
-                       }
-                     if (expecting_tls_get_addr != 1)
-@@ -9744,7 +9734,7 @@
-                     /* Get tls info.  */
-                     char *tls_mask;
--                    if (!get_tls_mask (&tls_mask, NULL, &local_syms,
-+                    if (!get_tls_mask (&tls_mask, NULL, NULL, &local_syms,
-                                        irela - 1, input_bfd))
-                       goto error_ret_free_internal;
-                     if (*tls_mask != 0)
-@@ -10236,6 +10226,7 @@
-       struct ppc_link_hash_entry *fdh;
-       const char *sym_name;
-       unsigned long r_symndx, toc_symndx;
-+      bfd_vma toc_addend;
-       char tls_mask, tls_gd, tls_type;
-       char sym_type;
-       bfd_vma relocation;
-@@ -10344,8 +10335,8 @@
-             /* Check for toc tls entries.  */
-             char *toc_tls;
--            if (!get_tls_mask (&toc_tls, &toc_symndx, &local_syms,
--                               rel, input_bfd))
-+            if (!get_tls_mask (&toc_tls, &toc_symndx, &toc_addend,
-+                               &local_syms, rel, input_bfd))
-               return FALSE;
-             if (toc_tls)
-@@ -10407,8 +10398,8 @@
-           char *toc_tls;
-           int retval;
--          retval = get_tls_mask (&toc_tls, &toc_symndx, &local_syms,
--                                 rel, input_bfd);
-+          retval = get_tls_mask (&toc_tls, &toc_symndx, &toc_addend,
-+                                 &local_syms, rel, input_bfd);
-           if (retval == 0)
-             return FALSE;
-@@ -10456,6 +10447,7 @@
-             if (toc_symndx != 0)
-               {
-                 rel->r_info = ELF64_R_INFO (toc_symndx, r_type);
-+                rel->r_addend = toc_addend;
-                 /* We changed the symbol.  Start over in order to
-                    get h, sym, sec etc. right.  */
-                 rel--;
-@@ -10509,6 +10501,7 @@
-             if (toc_symndx != 0)
-               {
-                 rel->r_info = ELF64_R_INFO (toc_symndx, r_type);
-+                rel->r_addend = toc_addend;
-                 /* We changed the symbol.  Start over in order to
-                    get h, sym, sec etc. right.  */
-                 rel--;
-@@ -10555,20 +10548,18 @@
-       case R_PPC64_GOT_TLSLD16_LO:
-         if (tls_mask != 0 && (tls_mask & TLS_LD) == 0)
-           {
--            bfd_vma insn1, insn2, insn3;
-+            unsigned int insn1, insn2, insn3;
-             bfd_vma offset;
-           tls_ldgd_opt:
-             /* We know that the next reloc is on a tls_get_addr
-                call, since ppc64_elf_tls_optimize checks this.  */
-             offset = rel[1].r_offset;
--            insn1 = bfd_get_32 (output_bfd,
--                                contents + rel->r_offset - d_offset);
--            insn3 = bfd_get_32 (output_bfd,
--                                contents + offset + 4);
-             if ((tls_mask & tls_gd) != 0)
-               {
-                 /* IE */
-+                insn1 = bfd_get_32 (output_bfd,
-+                                    contents + rel->r_offset - d_offset);
-                 insn1 &= (1 << 26) - (1 << 2);
-                 insn1 |= 58 << 26;    /* ld */
-                 insn2 = 0x7c636a14;   /* add 3,3,13 */
-@@ -10603,28 +10594,33 @@
-                       rel->r_addend -= (local_syms[r_symndx].st_value
-                                         + sec->output_offset
-                                         + sec->output_section->vma);
--                    rel[1].r_addend = rel->r_addend;
-                   }
-                 else if (toc_symndx != 0)
--                  r_symndx = toc_symndx;
-+                  {
-+                    r_symndx = toc_symndx;
-+                    rel->r_addend = toc_addend;
-+                  }
-                 r_type = R_PPC64_TPREL16_HA;
-                 rel->r_info = ELF64_R_INFO (r_symndx, r_type);
-                 rel[1].r_info = ELF64_R_INFO (r_symndx,
-                                               R_PPC64_TPREL16_LO);
-                 rel[1].r_offset += d_offset;
-+                rel[1].r_addend = rel->r_addend;
-               }
-+            bfd_put_32 (output_bfd, insn1,
-+                        contents + rel->r_offset - d_offset);
-+            insn3 = bfd_get_32 (output_bfd,
-+                                contents + offset + 4);
-             if (insn3 == NOP
-                 || insn3 == CROR_151515 || insn3 == CROR_313131)
-               {
--                insn3 = insn2;
--                insn2 = NOP;
-                 rel[1].r_offset += 4;
-+                bfd_put_32 (output_bfd, insn2, contents + offset + 4);
-+                insn2 = NOP;
-               }
--            bfd_put_32 (output_bfd, insn1,
--                        contents + rel->r_offset - d_offset);
-             bfd_put_32 (output_bfd, insn2, contents + offset);
--            bfd_put_32 (output_bfd, insn3, contents + offset + 4);
--            if (tls_gd == 0 || toc_symndx != 0)
-+            if ((tls_mask & tls_gd) == 0
-+                && (tls_gd == 0 || toc_symndx != 0))
-               {
-                 /* We changed the symbol.  Start over in order
-                    to get h, sym, sec etc. right.  */
-@@ -11001,7 +10997,8 @@
-               *offp = off | 1;
-               if ((info->shared || indx != 0)
--                  && (h == NULL
-+                  && (offp == &ppc64_tlsld_got (input_bfd)->offset
-+                      || h == NULL
-                       || ELF_ST_VISIBILITY (h->elf.other) == STV_DEFAULT
-                       || h->elf.root.type != bfd_link_hash_undefweak))
-                 {
-diff -Naur binutils-2.19.1.orig/bfd/elf.c binutils-2.19.1/bfd/elf.c
---- binutils-2.19.1.orig/bfd/elf.c     2008-12-23 05:54:48.000000000 -0800
-+++ binutils-2.19.1/bfd/elf.c  2009-03-02 05:41:07.000000000 -0800
-@@ -1608,6 +1608,8 @@
-       if (hdr->sh_entsize != bed->s->sizeof_sym)
-       return FALSE;
-+      if (hdr->sh_info * hdr->sh_entsize > hdr->sh_size)
-+      return FALSE;
-       BFD_ASSERT (elf_onesymtab (abfd) == 0);
-       elf_onesymtab (abfd) = shindex;
-       elf_tdata (abfd)->symtab_hdr = *hdr;
-@@ -1863,14 +1865,8 @@
-       return TRUE;
-     case SHT_GROUP:
--      /* We need a BFD section for objcopy and relocatable linking,
--       and it's handy to have the signature available as the section
--       name.  */
-       if (! IS_VALID_GROUP_SECTION_HEADER (hdr))
-       return FALSE;
--      name = group_signature (abfd, hdr);
--      if (name == NULL)
--      return FALSE;
-       if (!_bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex))
-       return FALSE;
-       if (hdr->contents != NULL)
-@@ -2687,13 +2683,15 @@
-     *failedptr = TRUE;
- }
--/* Fill in the contents of a SHT_GROUP section.  */
-+/* Fill in the contents of a SHT_GROUP section.  Called from
-+   _bfd_elf_compute_section_file_positions for gas, objcopy, and
-+   when ELF targets use the generic linker, ld.  Called for ld -r
-+   from bfd_elf_final_link.  */
- void
- bfd_elf_set_group_contents (bfd *abfd, asection *sec, void *failedptrarg)
- {
-   bfd_boolean *failedptr = failedptrarg;
--  unsigned long symindx;
-   asection *elt, *first;
-   unsigned char *loc;
-   bfd_boolean gas;
-@@ -2704,20 +2702,49 @@
-       || *failedptr)
-     return;
--  symindx = 0;
--  if (elf_group_id (sec) != NULL)
--    symindx = elf_group_id (sec)->udata.i;
--
--  if (symindx == 0)
--    {
--      /* If called from the assembler, swap_out_syms will have set up
--       elf_section_syms;  If called for "ld -r", use target_index.  */
--      if (elf_section_syms (abfd) != NULL)
--      symindx = elf_section_syms (abfd)[sec->index]->udata.i;
--      else
--      symindx = sec->target_index;
-+  if (elf_section_data (sec)->this_hdr.sh_info == 0)
-+    {
-+      unsigned long symindx = 0;
-+
-+      /* elf_group_id will have been set up by objcopy and the
-+       generic linker.  */
-+      if (elf_group_id (sec) != NULL)
-+      symindx = elf_group_id (sec)->udata.i;
-+
-+      if (symindx == 0)
-+      {
-+        /* If called from the assembler, swap_out_syms will have set up
-+           elf_section_syms.  */
-+        BFD_ASSERT (elf_section_syms (abfd) != NULL);
-+        symindx = elf_section_syms (abfd)[sec->index]->udata.i;
-+      }
-+      elf_section_data (sec)->this_hdr.sh_info = symindx;
-+    }
-+  else if (elf_section_data (sec)->this_hdr.sh_info == (unsigned int) -2)
-+    {
-+      /* The ELF backend linker sets sh_info to -2 when the group
-+       signature symbol is global, and thus the index can't be
-+       set until all local symbols are output.  */
-+      asection *igroup = elf_sec_group (elf_next_in_group (sec));
-+      struct bfd_elf_section_data *sec_data = elf_section_data (igroup);
-+      unsigned long symndx = sec_data->this_hdr.sh_info;
-+      unsigned long extsymoff = 0;
-+      struct elf_link_hash_entry *h;
-+
-+      if (!elf_bad_symtab (igroup->owner))
-+      {
-+        Elf_Internal_Shdr *symtab_hdr;
-+
-+        symtab_hdr = &elf_tdata (igroup->owner)->symtab_hdr;
-+        extsymoff = symtab_hdr->sh_info;
-+      }
-+      h = elf_sym_hashes (igroup->owner)[symndx - extsymoff];
-+      while (h->root.type == bfd_link_hash_indirect
-+           || h->root.type == bfd_link_hash_warning)
-+      h = (struct elf_link_hash_entry *) h->root.u.i.link;
-+
-+      elf_section_data (sec)->this_hdr.sh_info = h->indx;
-     }
--  elf_section_data (sec)->this_hdr.sh_info = symindx;
-   /* The contents won't be allocated for "ld -r" or objcopy.  */
-   gas = TRUE;
-@@ -4131,6 +4158,7 @@
-   bfd_size_type maxpagesize;
-   unsigned int alloc;
-   unsigned int i, j;
-+  bfd_vma header_pad = 0;
-   if (link_info == NULL
-       && !_bfd_elf_map_sections_to_segments (abfd, link_info))
-@@ -4138,7 +4166,11 @@
-   alloc = 0;
-   for (m = elf_tdata (abfd)->segment_map; m != NULL; m = m->next)
--    ++alloc;
-+    {
-+      ++alloc;
-+      if (m->header_size)
-+      header_pad = m->header_size;
-+    }
-   elf_elfheader (abfd)->e_phoff = bed->s->sizeof_ehdr;
-   elf_elfheader (abfd)->e_phentsize = bed->s->sizeof_phdr;
-@@ -4156,7 +4188,21 @@
-       return TRUE;
-     }
--  phdrs = bfd_alloc2 (abfd, alloc, sizeof (Elf_Internal_Phdr));
-+  /* We're writing the size in elf_tdata (abfd)->program_header_size,
-+     see assign_file_positions_except_relocs, so make sure we have
-+     that amount allocated, with trailing space cleared.
-+     The variable alloc contains the computed need, while elf_tdata
-+     (abfd)->program_header_size contains the size used for the
-+     layout.
-+     See ld/emultempl/elf-generic.em:gld${EMULATION_NAME}_map_segments
-+     where the layout is forced to according to a larger size in the
-+     last iterations for the testcase ld-elf/header.  */
-+  BFD_ASSERT (elf_tdata (abfd)->program_header_size % bed->s->sizeof_phdr
-+            == 0);
-+  phdrs = bfd_zalloc2 (abfd,
-+                     (elf_tdata (abfd)->program_header_size
-+                      / bed->s->sizeof_phdr),
-+                     sizeof (Elf_Internal_Phdr));
-   elf_tdata (abfd)->phdr = phdrs;
-   if (phdrs == NULL)
-     return FALSE;
-@@ -4167,6 +4213,11 @@
-   off = bed->s->sizeof_ehdr;
-   off += alloc * bed->s->sizeof_phdr;
-+  if (header_pad < (bfd_vma) off)
-+    header_pad = 0;
-+  else
-+    header_pad -= off;
-+  off += header_pad;
-   for (m = elf_tdata (abfd)->segment_map, p = phdrs, j = 0;
-        m != NULL;
-@@ -4354,6 +4405,11 @@
-         p->p_filesz += alloc * bed->s->sizeof_phdr;
-         p->p_memsz += alloc * bed->s->sizeof_phdr;
-+        if (m->count)
-+          {
-+            p->p_filesz += header_pad;
-+            p->p_memsz += header_pad;
-+          }
-       }
-       if (p->p_type == PT_LOAD
-@@ -5836,6 +5892,10 @@
-           phdr_included = TRUE;
-       }
-+      if (map->includes_filehdr && first_section)
-+      /* We need to keep the space used by the headers fixed.  */
-+      map->header_size = first_section->vma - segment->p_vaddr;
-+      
-       if (!map->includes_phdrs
-         && !map->includes_filehdr
-         && map->p_paddr_valid)
-@@ -6004,7 +6064,7 @@
-         if (elf_section_flags (isec) & SHF_GROUP)
-           elf_section_flags (osec) |= SHF_GROUP;
-         elf_next_in_group (osec) = elf_next_in_group (isec);
--        elf_group_name (osec) = elf_group_name (isec);
-+        elf_section_data (osec)->group = elf_section_data (isec)->group;
-       }
-     }
-diff -Naur binutils-2.19.1.orig/bfd/elf-eh-frame.c binutils-2.19.1/bfd/elf-eh-frame.c
---- binutils-2.19.1.orig/bfd/elf-eh-frame.c    2008-09-17 02:00:44.000000000 -0700
-+++ binutils-2.19.1/bfd/elf-eh-frame.c 2009-03-02 05:53:31.000000000 -0800
-@@ -549,16 +549,6 @@
-            < (bfd_size_type) ((buf) - ehbuf)))        \
-     cookie->rel++
--#define REQUIRE_CLEARED_RELOCS(buf)                   \
--  while (cookie->rel < cookie->relend                 \
--       && (cookie->rel->r_offset                      \
--           < (bfd_size_type) ((buf) - ehbuf)))        \
--    {                                                 \
--      REQUIRE (cookie->rel->r_info == 0);             \
--      REQUIRE (cookie->rel->r_addend == 0);           \
--      cookie->rel++;                                  \
--    }
--
- #define GET_RELOC(buf)                                        \
-   ((cookie->rel < cookie->relend                      \
-     && (cookie->rel->r_offset                         \
-@@ -817,16 +807,16 @@
-         buf = last_fde + 4 + hdr_length;
--        /* Cleared FDE?  The instructions will not be cleared but verify all
--           the relocation entries for them are cleared.  */
--        if (rsec == NULL)
--          {
--            REQUIRE_CLEARED_RELOCS (buf);
--          }
--        else
--          {
--            SKIP_RELOCS (buf);
--          }
-+        /* For NULL RSEC (cleared FDE belonging to a discarded section)
-+           the relocations are commonly cleared.  We do not sanity check if
-+           all these relocations are cleared as (1) relocations to
-+           .gcc_except_table will remain uncleared (they will get dropped
-+           with the drop of this unused FDE) and (2) BFD already safely drops
-+           relocations of any type to .eh_frame by
-+           elf_section_ignore_discarded_relocs.
-+           TODO: The .gcc_except_table entries should be also filtered as
-+           .eh_frame entries; or GCC could rather use COMDAT for them.  */
-+        SKIP_RELOCS (buf);
-       }
-       /* Try to interpret the CFA instructions and find the first
-diff -Naur binutils-2.19.1.orig/bfd/elflink.c binutils-2.19.1/bfd/elflink.c
---- binutils-2.19.1.orig/bfd/elflink.c 2008-08-22 01:32:39.000000000 -0700
-+++ binutils-2.19.1/bfd/elflink.c      2009-03-02 05:48:42.000000000 -0800
-@@ -9046,6 +9046,63 @@
-         continue;
-       }
-+      if (finfo->info->relocatable
-+        && (o->flags & (SEC_LINKER_CREATED | SEC_GROUP)) == SEC_GROUP)
-+      {
-+        /* Deal with the group signature symbol.  */
-+        struct bfd_elf_section_data *sec_data = elf_section_data (o);
-+        unsigned long symndx = sec_data->this_hdr.sh_info;
-+        asection *osec = o->output_section;
-+
-+        if (symndx >= locsymcount
-+            || (elf_bad_symtab (input_bfd)
-+                && finfo->sections[symndx] == NULL))
-+          {
-+            struct elf_link_hash_entry *h = sym_hashes[symndx - extsymoff];
-+            while (h->root.type == bfd_link_hash_indirect
-+                   || h->root.type == bfd_link_hash_warning)
-+              h = (struct elf_link_hash_entry *) h->root.u.i.link;
-+            /* Arrange for symbol to be output.  */
-+            h->indx = -2;
-+            elf_section_data (osec)->this_hdr.sh_info = -2;
-+          }
-+        else if (ELF_ST_TYPE (isymbuf[symndx].st_info) == STT_SECTION)
-+          {
-+            /* We'll use the output section target_index.  */
-+            asection *sec = finfo->sections[symndx]->output_section;
-+            elf_section_data (osec)->this_hdr.sh_info = sec->target_index;
-+          }
-+        else
-+          {
-+            if (finfo->indices[symndx] == -1)
-+              {
-+                /* Otherwise output the local symbol now.  */
-+                Elf_Internal_Sym sym = isymbuf[symndx];
-+                asection *sec = finfo->sections[symndx]->output_section;
-+                const char *name;
-+
-+                name = bfd_elf_string_from_elf_section (input_bfd,
-+                                                        symtab_hdr->sh_link,
-+                                                        sym.st_name);
-+                if (name == NULL)
-+                  return FALSE;
-+
-+                sym.st_shndx = _bfd_elf_section_from_bfd_section (output_bfd,
-+                                                                  sec);
-+                if (sym.st_shndx == SHN_BAD)
-+                  return FALSE;
-+
-+                sym.st_value += o->output_offset;
-+
-+                finfo->indices[symndx] = bfd_get_symcount (output_bfd);
-+                if (! elf_link_output_sym (finfo, name, &sym, o, NULL))
-+                  return FALSE;
-+              }
-+            elf_section_data (osec)->this_hdr.sh_info
-+              = finfo->indices[symndx];
-+          }
-+      }
-+
-       if ((o->flags & SEC_HAS_CONTENTS) == 0
-         || (o->size == 0 && (o->flags & SEC_RELOC) == 0))
-       continue;
-@@ -11982,8 +12039,21 @@
-   return ret;
- }
-+/* For a SHT_GROUP section, return the group signature.  For other
-+   sections, return the normal section name.  */
-+
-+static const char *
-+section_signature (asection *sec)
-+{
-+  if ((sec->flags & SEC_GROUP) != 0
-+      && elf_next_in_group (sec) != NULL
-+      && elf_group_name (elf_next_in_group (sec)) != NULL)
-+    return elf_group_name (elf_next_in_group (sec));
-+  return sec->name;
-+}
-+
- void
--_bfd_elf_section_already_linked (bfd *abfd, struct bfd_section *sec,
-+_bfd_elf_section_already_linked (bfd *abfd, asection *sec,
-                                struct bfd_link_info *info)
- {
-   flagword flags;
-@@ -12023,7 +12093,7 @@
-      causes trouble for MIPS ELF, which relies on link once semantics
-      to handle the .reginfo section correctly.  */
--  name = bfd_get_section_name (abfd, sec);
-+  name = section_signature (sec);
-   if (CONST_STRNEQ (name, ".gnu.linkonce.")
-       && (p = strchr (name + sizeof (".gnu.linkonce.") - 1, '.')) != NULL)
-@@ -12038,7 +12108,7 @@
-       /* We may have 2 different types of sections on the list: group
-        sections and linkonce sections.  Match like sections.  */
-       if ((flags & SEC_GROUP) == (l->sec->flags & SEC_GROUP)
--        && strcmp (name, l->sec->name) == 0
-+        && strcmp (name, section_signature (l->sec)) == 0
-         && bfd_coff_get_comdat_section (l->sec->owner, l->sec) == NULL)
-       {
-         /* The section has already been linked.  See if we should
-@@ -12161,6 +12231,28 @@
-           }
-       }
-+  /* Do not complain on unresolved relocations in `.gnu.linkonce.r.F'
-+     referencing its discarded `.gnu.linkonce.t.F' counterpart - g++-3.4
-+     specific as g++-4.x is using COMDAT groups (without the `.gnu.linkonce'
-+     prefix) instead.  `.gnu.linkonce.r.*' were the `.rodata' part of its
-+     matching `.gnu.linkonce.t.*'.  If `.gnu.linkonce.r.F' is not discarded
-+     but its `.gnu.linkonce.t.F' is discarded means we chose one-only
-+     `.gnu.linkonce.t.F' section from a different bfd not requiring any
-+     `.gnu.linkonce.r.F'.  Thus `.gnu.linkonce.r.F' should be discarded.
-+     The reverse order cannot happen as there is never a bfd with only the
-+     `.gnu.linkonce.r.F' section.  The order of sections in a bfd does not
-+     matter as here were are looking only for cross-bfd sections.  */
-+
-+  if ((flags & SEC_GROUP) == 0 && CONST_STRNEQ (name, ".gnu.linkonce.r."))
-+    for (l = already_linked_list->entry; l != NULL; l = l->next)
-+      if ((l->sec->flags & SEC_GROUP) == 0
-+        && CONST_STRNEQ (l->sec->name, ".gnu.linkonce.t."))
-+      {
-+        if (abfd != l->sec->owner)
-+          sec->output_section = bfd_abs_section_ptr;
-+        break;
-+      }
-+
-   /* This is the first section with this name.  Record it.  */
-   if (! bfd_section_already_linked_table_insert (already_linked_list, sec))
-     info->callbacks->einfo (_("%F%P: already_linked_table: %E"));
-diff -Naur binutils-2.19.1.orig/bfd/linker.c binutils-2.19.1/bfd/linker.c
---- binutils-2.19.1.orig/bfd/linker.c  2008-08-16 20:12:49.000000000 -0700
-+++ binutils-2.19.1/bfd/linker.c       2009-03-02 05:32:54.000000000 -0800
-@@ -2796,18 +2796,36 @@
-       }
-     }
--  /* Get and relocate the section contents.  */
--  sec_size = (input_section->rawsize > input_section->size
--            ? input_section->rawsize
--            : input_section->size);
--  contents = bfd_malloc (sec_size);
--  if (contents == NULL && sec_size != 0)
--    goto error_return;
--  new_contents = (bfd_get_relocated_section_contents
--                (output_bfd, info, link_order, contents, info->relocatable,
--                 _bfd_generic_link_get_symbols (input_bfd)));
--  if (!new_contents)
--    goto error_return;
-+  if ((output_section->flags & (SEC_GROUP | SEC_LINKER_CREATED)) == SEC_GROUP
-+      && input_section->size != 0)
-+    {
-+      /* Group section contents are set by bfd_elf_set_group_contents.  */
-+      if (!output_bfd->output_has_begun)
-+      {
-+        /* FIXME: This hack ensures bfd_elf_set_group_contents is called.  */
-+        if (!bfd_set_section_contents (output_bfd, output_section, "", 0, 1))
-+          goto error_return;
-+      }
-+      new_contents = output_section->contents;
-+      BFD_ASSERT (new_contents != NULL);
-+      BFD_ASSERT (input_section->output_offset == 0);
-+    }
-+  else
-+    {
-+      /* Get and relocate the section contents.  */
-+      sec_size = (input_section->rawsize > input_section->size
-+                ? input_section->rawsize
-+                : input_section->size);
-+      contents = bfd_malloc (sec_size);
-+      if (contents == NULL && sec_size != 0)
-+      goto error_return;
-+      new_contents = (bfd_get_relocated_section_contents
-+                    (output_bfd, info, link_order, contents,
-+                     info->relocatable,
-+                     _bfd_generic_link_get_symbols (input_bfd)));
-+      if (!new_contents)
-+      goto error_return;
-+    }
-   /* Output the section contents.  */
-   loc = input_section->output_offset * bfd_octets_per_byte (output_bfd);
-diff -Naur binutils-2.19.1.orig/bfd/Makefile.in binutils-2.19.1/bfd/Makefile.in
---- binutils-2.19.1.orig/bfd/Makefile.in       2009-02-02 02:44:39.000000000 -0800
-+++ binutils-2.19.1/bfd/Makefile.in    2009-07-07 08:52:14.000000000 -0700
-@@ -190,7 +190,7 @@
- PACKAGE_TARNAME = @PACKAGE_TARNAME@
- PACKAGE_VERSION = @PACKAGE_VERSION@
- PATH_SEPARATOR = @PATH_SEPARATOR@
--PKGVERSION = @PKGVERSION@
-+PKGVERSION = (GNU Binutils for Cross-LFS - Retrieved on 20090707) 
- POSUB = @POSUB@
- RANLIB = @RANLIB@
- REPORT_BUGS_TEXI = @REPORT_BUGS_TEXI@
-@@ -271,7 +271,7 @@
- ACLOCAL_AMFLAGS = -I . -I .. -I ../config
- # Uncomment the following line when doing a release.
--RELEASE = y
-+RELEASE=y
- INCDIR = $(srcdir)/../include
- CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
- MKDEP = gcc -MM
-diff -Naur binutils-2.19.1.orig/bfd/syms.c binutils-2.19.1/bfd/syms.c
---- binutils-2.19.1.orig/bfd/syms.c    2008-06-30 13:51:58.000000000 -0700
-+++ binutils-2.19.1/bfd/syms.c 2009-03-02 05:49:22.000000000 -0800
-@@ -1,6 +1,6 @@
- /* Generic symbol-table support for the BFD library.
-    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--   2000, 2001, 2002, 2003, 2004, 2007
-+   2000, 2001, 2002, 2003, 2004, 2007, 2008, 2009
-    Free Software Foundation, Inc.
-    Written by Cygnus Support.
-@@ -1379,10 +1379,11 @@
-       {
-         size_t len;
--        if (info->filename != NULL)
--          free (info->filename);
-+        /* Don't free info->filename here.  objdump and other
-+           apps keep a copy of a previously returned file name
-+           pointer.  */
-         len = strlen (file_name) + 1;
--        info->filename = bfd_malloc (dirlen + len);
-+        info->filename = bfd_alloc (abfd, dirlen + len);
-         if (info->filename == NULL)
-           return FALSE;
-         memcpy (info->filename, directory_name, dirlen);
-diff -Naur binutils-2.19.1.orig/bfd/version.h binutils-2.19.1/bfd/version.h
---- binutils-2.19.1.orig/bfd/version.h 2009-02-02 02:09:26.000000000 -0800
-+++ binutils-2.19.1/bfd/version.h      2009-07-06 17:00:10.000000000 -0700
-@@ -1,4 +1,4 @@
--#define BFD_VERSION_DATE 20090202
-+#define BFD_VERSION_DATE 20090707
- #define BFD_VERSION @bfd_version@
- #define BFD_VERSION_STRING  @bfd_version_package@ @bfd_version_string@
- #define REPORT_BUGS_TO @report_bugs_to@
-diff -Naur binutils-2.19.1.orig/binutils/ChangeLog binutils-2.19.1/binutils/ChangeLog
---- binutils-2.19.1.orig/binutils/ChangeLog    2008-12-23 05:54:49.000000000 -0800
-+++ binutils-2.19.1/binutils/ChangeLog 2009-03-02 05:43:13.000000000 -0800
-@@ -1,3 +1,16 @@
-+2009-03-02  Alan Modra  <amodra@bigpond.net.au>
-+
-+      2008-12-04  Ben Elliston  <bje@au.ibm.com>
-+      * doc/binutils.texi (objdump): Update booke documentation.
-+      * NEWS: Document user-visible changes to command line options.
-+
-+      2008-10-10  Nathan Froyd  <froydnj@codesourcery.com>
-+      * readelf.c (display_power_gnu_attribute): Decode
-+      Tag_GNU_Power_ABI_Struct_Return.
-+
-+      2008-09-28  Alan Modra  <amodra@bigpond.net.au>
-+      * objcopy.c (setup_section): Set elf_group_id.
-+
- 2008-12-23  Nick Clifton  <nickc@redhat.com>
-       * windmc.c (main): Use correct type for file length.
-diff -Naur binutils-2.19.1.orig/binutils/doc/binutils.texi binutils-2.19.1/binutils/doc/binutils.texi
---- binutils-2.19.1.orig/binutils/doc/binutils.texi    2008-08-05 17:42:17.000000000 -0700
-+++ binutils-2.19.1/binutils/doc/binutils.texi 2009-03-02 05:43:13.000000000 -0800
-@@ -1843,12 +1843,12 @@
- instructs the disassembler to print a mnemonic suffix even when the
- suffix could be inferred by the operands.
--For PPC, @option{booke}, @option{booke32} and @option{booke64} select
--disassembly of BookE instructions.  @option{32} and @option{64} select
--PowerPC and PowerPC64 disassembly, respectively.  @option{e300}
--selects disassembly for the e300 family.  @option{440} selects
--disassembly for the PowerPC 440.  @option{ppcps} selects disassembly
--for the paired single instructions of the PPC750CL.
-+For PowerPC, @option{booke} controls the disassembly of BookE
-+instructions.  @option{32} and @option{64} select PowerPC and
-+PowerPC64 disassembly, respectively.  @option{e300} selects
-+disassembly for the e300 family.  @option{440} selects disassembly for
-+the PowerPC 440.  @option{ppcps} selects disassembly for the paired
-+single instructions of the PPC750CL.
- For MIPS, this option controls the printing of instruction mnemonic
- names and register names in disassembled instructions.  Multiple
-diff -Naur binutils-2.19.1.orig/binutils/NEWS binutils-2.19.1/binutils/NEWS
---- binutils-2.19.1.orig/binutils/NEWS 2008-09-08 01:56:56.000000000 -0700
-+++ binutils-2.19.1/binutils/NEWS      2009-03-02 05:43:13.000000000 -0800
-@@ -1,5 +1,9 @@
- -*- text -*-
-+* Support for PowerPC booke64 instructions has been removed.  The assembler no
-+  longer accepts -mbooke32 or -mbooke64 and the disassembler no longer accepts
-+  -Mbooke32 or -Mbooke64.  Instead, -mbooke and -Mbooke should be used.
-+
- Changes in 2.19:
- * Added -wL switch to dump decoded contents of .debug_line.
-diff -Naur binutils-2.19.1.orig/binutils/objcopy.c binutils-2.19.1/binutils/objcopy.c
---- binutils-2.19.1.orig/binutils/objcopy.c    2008-08-05 17:42:17.000000000 -0700
-+++ binutils-2.19.1/binutils/objcopy.c 2009-03-02 05:31:14.000000000 -0800
-@@ -2344,6 +2344,18 @@
-   if (extract_symbol)
-     return;
-+  if ((isection->flags & SEC_GROUP) != 0)
-+    {
-+      asymbol *gsym = group_signature (isection);
-+
-+      if (gsym != NULL)
-+      {
-+        gsym->flags |= BSF_KEEP;
-+        if (ibfd->xvec->flavour == bfd_target_elf_flavour)
-+          elf_group_id (isection) = gsym;
-+      }
-+    }
-+
-   /* Allow the BFD backend to copy any private data it understands
-      from the input section to the output section.  */
-   if (!bfd_copy_private_section_data (ibfd, isection, obfd, osection))
-@@ -2351,13 +2363,6 @@
-       err = _("failed to copy private data");
-       goto loser;
-     }
--  else if ((isection->flags & SEC_GROUP) != 0)
--    {
--      asymbol *gsym = group_signature (isection);
--
--      if (gsym != NULL)
--      gsym->flags |= BSF_KEEP;
--    }
-   /* All went well.  */
-   return;
-diff -Naur binutils-2.19.1.orig/binutils/readelf.c binutils-2.19.1/binutils/readelf.c
---- binutils-2.19.1.orig/binutils/readelf.c    2008-09-17 02:00:44.000000000 -0700
-+++ binutils-2.19.1/binutils/readelf.c 2009-03-02 05:35:24.000000000 -0800
-@@ -9062,6 +9062,29 @@
-       return p;
-    }
-+  if (tag == Tag_GNU_Power_ABI_Struct_Return)
-+    {
-+      val = read_uleb128 (p, &len);
-+      p += len;
-+      printf ("  Tag_GNU_Power_ABI_Struct_Return: ");
-+      switch (val)
-+       {
-+       case 0:
-+         printf ("Any\n");
-+         break;
-+       case 1:
-+         printf ("r3/r4\n");
-+         break;
-+       case 2:
-+         printf ("Memory\n");
-+         break;
-+       default:
-+         printf ("??? (%d)\n", val);
-+         break;
-+       }
-+      return p;
-+    }
-+
-   if (tag & 1)
-     type = 1; /* String.  */
-   else
-diff -Naur binutils-2.19.1.orig/configure.ac binutils-2.19.1/configure.ac
---- binutils-2.19.1.orig/configure.ac  2009-02-02 03:54:49.000000000 -0800
-+++ binutils-2.19.1/configure.ac       2008-09-03 19:18:16.000000000 -0700
-@@ -166,7 +166,7 @@
- # binutils, gas and ld appear in that order because it makes sense to run
- # "make check" in that particular order.
- # If --enable-gold is used, "gold" will replace "ld".
--host_tools="byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools"
-+host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools"
- # libgcj represents the runtime libraries only used by gcj.
- libgcj="target-libffi \
-diff -Naur binutils-2.19.1.orig/gas/ChangeLog binutils-2.19.1/gas/ChangeLog
---- binutils-2.19.1.orig/gas/ChangeLog 2009-01-14 00:51:14.000000000 -0800
-+++ binutils-2.19.1/gas/ChangeLog      2009-04-01 08:47:36.000000000 -0700
-@@ -1,3 +1,39 @@
-+2009-04-01  Nick Clifton  <nickc@redhat.com>
-+
-+      * Import this patch:
-+
-+      2008-11-14  Peter Jansen  <pwjansen@yahoo.com>
-+
-+      PR 7026
-+      * config/tc-arm.c: Ensure that all uses of as_bad have a
-+      formatting string.
-+
-+2009-03-04  Alan Modra  <amodra@bigpond.net.au>
-+
-+      * config/tc-ppc.c (md_assemble): APUinfo only for e500.
-+
-+2009-03-02  Alan Modra  <amodra@bigpond.net.au>
-+
-+      2009-02-26  Peter Bergner  <bergner@vnet.ibm.com>
-+      * config/tc-ppc.c (pre_defined_registers): Add "f32" to "f63",
-+      "f.32" to "f.63", "vs0" to "vs63" and "vs.0" to "vs.63".
-+      (parse_cpu): Extend -mpower7 to accept power7 and isel instructions.
-+
-+      2009-01-09  Peter Bergner  <bergner@vnet.ibm.com>
-+      * config/tc-ppc.c (ppc_setup_opcodes): Remove PPC_OPCODE_NOPOWER4 test.
-+      Test the new "deprecated" opcode field.
-+
-+      2008-12-04  Ben Elliston  <bje@au.ibm.com>
-+      * config/tc-ppc.c (parse_cpu): Remove booke64 support. Update
-+      usage strings.
-+      (ppc_setup_opcodes): Likewise, remove booke64 support.
-+      * doc/c-ppc.texi (PowerPC-Opts): Remove -mbooke32 and -mbooke64.
-+      * doc/as.texinfo (Overview): Likewise.
-+
-+      2008-09-09  Peter Bergner  <bergner@vnet.ibm.com>
-+      * config/tc-ppc.c (ppc_setup_opcodes): Simplify POWER4/NOPOWER4 test.
-+      Remove POWER5 and POWER6 tests.
-+
- 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
-       * Makefile.am (ehopt.o): Add struc-symbol.h.
-@@ -132,7 +168,7 @@
-       targets.
-       * doc/c-i386.texi (i386-Directives): New node.  Used to document
-       the .lcomm directive.
--      
-+
- 2008-08-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-       * config/tc-hppa.h: Don't define DWARF2_EH_FRAME_READ_ONLY on Linux
-diff -Naur binutils-2.19.1.orig/gas/config/tc-arm.c binutils-2.19.1/gas/config/tc-arm.c
---- binutils-2.19.1.orig/gas/config/tc-arm.c   2008-08-12 16:39:30.000000000 -0700
-+++ binutils-2.19.1/gas/config/tc-arm.c        2009-04-01 08:47:37.000000000 -0700
-@@ -3456,7 +3456,7 @@
-       if (reg == FAIL)
-       {
--        as_bad (_(reg_expected_msgs[REG_TYPE_MMXWR]));
-+        as_bad ("%s", _(reg_expected_msgs[REG_TYPE_MMXWR]));
-         goto error;
-       }
-@@ -3470,7 +3470,7 @@
-         hi_reg = arm_reg_parse (&input_line_pointer, REG_TYPE_MMXWR);
-         if (hi_reg == FAIL)
-           {
--            as_bad (_(reg_expected_msgs[REG_TYPE_MMXWR]));
-+            as_bad ("%s", _(reg_expected_msgs[REG_TYPE_MMXWR]));
-             goto error;
-           }
-         else if (reg >= hi_reg)
-@@ -3588,7 +3588,7 @@
-       if (reg == FAIL)
-       {
--        as_bad (_(reg_expected_msgs[REG_TYPE_MMXWCG]));
-+        as_bad ("%s", _(reg_expected_msgs[REG_TYPE_MMXWCG]));
-         goto error;
-       }
-@@ -3603,7 +3603,7 @@
-         hi_reg = arm_reg_parse (&input_line_pointer, REG_TYPE_MMXWCG);
-         if (hi_reg == FAIL)
-           {
--            as_bad (_(reg_expected_msgs[REG_TYPE_MMXWCG]));
-+            as_bad ("%s", _(reg_expected_msgs[REG_TYPE_MMXWCG]));
-             goto error;
-           }
-         else if (reg >= hi_reg)
-@@ -3709,7 +3709,7 @@
-   reg = arm_reg_parse (&input_line_pointer, REG_TYPE_RN);
-   if (reg == FAIL)
-     {
--      as_bad (_(reg_expected_msgs[REG_TYPE_RN]));
-+      as_bad ("%s", _(reg_expected_msgs[REG_TYPE_RN]));
-       ignore_rest_of_line ();
-       return;
-     }
-diff -Naur binutils-2.19.1.orig/gas/config/tc-ppc.c binutils-2.19.1/gas/config/tc-ppc.c
---- binutils-2.19.1.orig/gas/config/tc-ppc.c   2008-08-01 21:38:50.000000000 -0700
-+++ binutils-2.19.1/gas/config/tc-ppc.c        2009-03-03 15:16:02.000000000 -0800
-@@ -1,6 +1,6 @@
- /* tc-ppc.c -- Assemble for the PowerPC or POWER (RS/6000)
-    Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
--   2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-+   2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-    Written by Ian Lance Taylor, Cygnus Support.
-    This file is part of GAS, the GNU Assembler.
-@@ -358,9 +358,42 @@
-   { "f.3", 3 },
-   { "f.30", 30 },
-   { "f.31", 31 },
-+
-+  { "f.32", 32 },    /* Extended floating point scalar registers (ISA 2.06).  */
-+  { "f.33", 33 },
-+  { "f.34", 34 },
-+  { "f.35", 35 },
-+  { "f.36", 36 },
-+  { "f.37", 37 },
-+  { "f.38", 38 },
-+  { "f.39", 39 },
-   { "f.4", 4 },
-+  { "f.40", 40 },
-+  { "f.41", 41 },
-+  { "f.42", 42 },
-+  { "f.43", 43 },
-+  { "f.44", 44 },
-+  { "f.45", 45 },
-+  { "f.46", 46 },
-+  { "f.47", 47 },
-+  { "f.48", 48 },
-+  { "f.49", 49 },
-   { "f.5", 5 },
-+  { "f.50", 50 },
-+  { "f.51", 51 },
-+  { "f.52", 52 },
-+  { "f.53", 53 },
-+  { "f.54", 54 },
-+  { "f.55", 55 },
-+  { "f.56", 56 },
-+  { "f.57", 57 },
-+  { "f.58", 58 },
-+  { "f.59", 59 },
-   { "f.6", 6 },
-+  { "f.60", 60 },
-+  { "f.61", 61 },
-+  { "f.62", 62 },
-+  { "f.63", 63 },
-   { "f.7", 7 },
-   { "f.8", 8 },
-   { "f.9", 9 },
-@@ -391,9 +424,42 @@
-   { "f3", 3 },
-   { "f30", 30 },
-   { "f31", 31 },
-+
-+  { "f32", 32 },    /* Extended floating point scalar registers (ISA 2.06).  */
-+  { "f33", 33 },
-+  { "f34", 34 },
-+  { "f35", 35 },
-+  { "f36", 36 },
-+  { "f37", 37 },
-+  { "f38", 38 },
-+  { "f39", 39 },
-   { "f4", 4 },
-+  { "f40", 40 },
-+  { "f41", 41 },
-+  { "f42", 42 },
-+  { "f43", 43 },
-+  { "f44", 44 },
-+  { "f45", 45 },
-+  { "f46", 46 },
-+  { "f47", 47 },
-+  { "f48", 48 },
-+  { "f49", 49 },
-   { "f5", 5 },
-+  { "f50", 50 },
-+  { "f51", 51 },
-+  { "f52", 52 },
-+  { "f53", 53 },
-+  { "f54", 54 },
-+  { "f55", 55 },
-+  { "f56", 56 },
-+  { "f57", 57 },
-+  { "f58", 58 },
-+  { "f59", 59 },
-   { "f6", 6 },
-+  { "f60", 60 },
-+  { "f61", 61 },
-+  { "f62", 62 },
-+  { "f63", 63 },
-   { "f7", 7 },
-   { "f8", 8 },
-   { "f9", 9 },
-@@ -501,7 +567,7 @@
-   { "srr0", 26 }, /* Machine Status Save/Restore Register 0 */
-   { "srr1", 27 }, /* Machine Status Save/Restore Register 1 */
--  { "v.0", 0 },     /* Vector registers */
-+  { "v.0", 0 },     /* Vector (Altivec/VMX) registers */
-   { "v.1", 1 },
-   { "v.10", 10 },
-   { "v.11", 11 },
-@@ -567,6 +633,136 @@
-   { "v8", 8 },
-   { "v9", 9 },
-+  { "vs.0", 0 },     /* Vector Scalar (VSX) registers (ISA 2.06).  */
-+  { "vs.1", 1 },
-+  { "vs.10", 10 },
-+  { "vs.11", 11 },
-+  { "vs.12", 12 },
-+  { "vs.13", 13 },
-+  { "vs.14", 14 },
-+  { "vs.15", 15 },
-+  { "vs.16", 16 },
-+  { "vs.17", 17 },
-+  { "vs.18", 18 },
-+  { "vs.19", 19 },
-+  { "vs.2", 2 },
-+  { "vs.20", 20 },
-+  { "vs.21", 21 },
-+  { "vs.22", 22 },
-+  { "vs.23", 23 },
-+  { "vs.24", 24 },
-+  { "vs.25", 25 },
-+  { "vs.26", 26 },
-+  { "vs.27", 27 },
-+  { "vs.28", 28 },
-+  { "vs.29", 29 },
-+  { "vs.3", 3 },
-+  { "vs.30", 30 },
-+  { "vs.31", 31 },
-+  { "vs.32", 32 },
-+  { "vs.33", 33 },
-+  { "vs.34", 34 },
-+  { "vs.35", 35 },
-+  { "vs.36", 36 },
-+  { "vs.37", 37 },
-+  { "vs.38", 38 },
-+  { "vs.39", 39 },
-+  { "vs.4", 4 },
-+  { "vs.40", 40 },
-+  { "vs.41", 41 },
-+  { "vs.42", 42 },
-+  { "vs.43", 43 },
-+  { "vs.44", 44 },
-+  { "vs.45", 45 },
-+  { "vs.46", 46 },
-+  { "vs.47", 47 },
-+  { "vs.48", 48 },
-+  { "vs.49", 49 },
-+  { "vs.5", 5 },
-+  { "vs.50", 50 },
-+  { "vs.51", 51 },
-+  { "vs.52", 52 },
-+  { "vs.53", 53 },
-+  { "vs.54", 54 },
-+  { "vs.55", 55 },
-+  { "vs.56", 56 },
-+  { "vs.57", 57 },
-+  { "vs.58", 58 },
-+  { "vs.59", 59 },
-+  { "vs.6", 6 },
-+  { "vs.60", 60 },
-+  { "vs.61", 61 },
-+  { "vs.62", 62 },
-+  { "vs.63", 63 },
-+  { "vs.7", 7 },
-+  { "vs.8", 8 },
-+  { "vs.9", 9 },
-+
-+  { "vs0", 0 },
-+  { "vs1", 1 },
-+  { "vs10", 10 },
-+  { "vs11", 11 },
-+  { "vs12", 12 },
-+  { "vs13", 13 },
-+  { "vs14", 14 },
-+  { "vs15", 15 },
-+  { "vs16", 16 },
-+  { "vs17", 17 },
-+  { "vs18", 18 },
-+  { "vs19", 19 },
-+  { "vs2", 2 },
-+  { "vs20", 20 },
-+  { "vs21", 21 },
-+  { "vs22", 22 },
-+  { "vs23", 23 },
-+  { "vs24", 24 },
-+  { "vs25", 25 },
-+  { "vs26", 26 },
-+  { "vs27", 27 },
-+  { "vs28", 28 },
-+  { "vs29", 29 },
-+  { "vs3", 3 },
-+  { "vs30", 30 },
-+  { "vs31", 31 },
-+  { "vs32", 32 },
-+  { "vs33", 33 },
-+  { "vs34", 34 },
-+  { "vs35", 35 },
-+  { "vs36", 36 },
-+  { "vs37", 37 },
-+  { "vs38", 38 },
-+  { "vs39", 39 },
-+  { "vs4", 4 },
-+  { "vs40", 40 },
-+  { "vs41", 41 },
-+  { "vs42", 42 },
-+  { "vs43", 43 },
-+  { "vs44", 44 },
-+  { "vs45", 45 },
-+  { "vs46", 46 },
-+  { "vs47", 47 },
-+  { "vs48", 48 },
-+  { "vs49", 49 },
-+  { "vs5", 5 },
-+  { "vs50", 50 },
-+  { "vs51", 51 },
-+  { "vs52", 52 },
-+  { "vs53", 53 },
-+  { "vs54", 54 },
-+  { "vs55", 55 },
-+  { "vs56", 56 },
-+  { "vs57", 57 },
-+  { "vs58", 58 },
-+  { "vs59", 59 },
-+  { "vs6", 6 },
-+  { "vs60", 60 },
-+  { "vs61", 61 },
-+  { "vs62", 62 },
-+  { "vs63", 63 },
-+  { "vs7", 7 },
-+  { "vs8", 8 },
-+  { "vs9", 9 },
-+
-   { "xer", 1 },
- };
-@@ -919,12 +1115,6 @@
-     {
-       ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_32;
-     }
--  /* -mbooke64 means enable 64-bit BookE support.  */
--  else if (strcmp (arg, "booke64") == 0)
--    {
--      ppc_cpu = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE
--               | PPC_OPCODE_BOOKE64 | PPC_OPCODE_64);
--    }
-   else if (strcmp (arg, "power4") == 0)
-     {
-       ppc_cpu = (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC
-@@ -946,8 +1136,9 @@
-   else if (strcmp (arg, "power7") == 0)
-     {
-       ppc_cpu = (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC
--               | PPC_OPCODE_64 | PPC_OPCODE_POWER4
--               | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6
-+               | PPC_OPCODE_ISEL | PPC_OPCODE_64
-+               | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5
-+               | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7
-                | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX);
-     }
-   else if (strcmp (arg, "cell") == 0)
-@@ -1149,8 +1340,7 @@
-   fprintf (stream, _("\
- -mppc64, -m620                generate code for PowerPC 620/625/630\n\
- -mppc64bridge         generate code for PowerPC 64, including bridge insns\n\
---mbooke64             generate code for 64-bit PowerPC BookE\n\
---mbooke, mbooke32     generate code for 32-bit PowerPC BookE\n\
-+-mbooke                       generate code for 32-bit PowerPC BookE\n\
- -mpower4              generate code for Power4 architecture\n\
- -mpower5              generate code for Power5 architecture\n\
- -mpower6              generate code for Power6 architecture\n\
-@@ -1359,8 +1549,7 @@
-                There are also cases where the table needs to be out
-                of order to disassemble the correct instruction for
--               processor variants.  eg. "lhae" booke64 insn must be
--               found before "ld" ppc64 insn.  */
-+               processor variants.  */
-             else if (0)
-               {
-                 unsigned long t1 = op[0].opcode;
-@@ -1420,23 +1609,7 @@
-             || ((op->flags & (PPC_OPCODE_32 | PPC_OPCODE_64))
-                 == (ppc_cpu & (PPC_OPCODE_32 | PPC_OPCODE_64)))
-             || (ppc_cpu & PPC_OPCODE_64_BRIDGE) != 0)
--        /* Certain instructions (eg: extsw) do not exist in the
--           32-bit BookE instruction set, but they do exist in the
--           64-bit BookE instruction set, and other PPC instruction
--           sets.  Check to see if the opcode has the BOOKE64 flag set.
--           If it does make sure that the target CPU is not the BookE32.  */
--        && ((op->flags & PPC_OPCODE_BOOKE64) == 0
--            || (ppc_cpu & PPC_OPCODE_BOOKE64) == PPC_OPCODE_BOOKE64
--            || (ppc_cpu & PPC_OPCODE_BOOKE) == 0)
--        && ((op->flags & (PPC_OPCODE_POWER4 | PPC_OPCODE_NOPOWER4)) == 0
--            || ((op->flags & PPC_OPCODE_POWER4)
--                == (ppc_cpu & PPC_OPCODE_POWER4)))
--        && ((op->flags & PPC_OPCODE_POWER5) == 0
--            || ((op->flags & PPC_OPCODE_POWER5)
--                == (ppc_cpu & PPC_OPCODE_POWER5)))
--        && ((op->flags & PPC_OPCODE_POWER6) == 0
--            || ((op->flags & PPC_OPCODE_POWER6)
--                == (ppc_cpu & PPC_OPCODE_POWER6))))
-+        && !(ppc_cpu & op->deprecated))
-       {
-         const char *retval;
-@@ -2792,10 +2965,7 @@
- #ifdef OBJ_ELF
-   /* Do we need/want a APUinfo section? */
--  if (ppc_cpu & (PPC_OPCODE_SPE
--             | PPC_OPCODE_ISEL | PPC_OPCODE_EFS
--             | PPC_OPCODE_BRLOCK | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK
--             | PPC_OPCODE_RFMCI))
-+  if ((ppc_cpu & PPC_OPCODE_E500MC) != 0)
-     {
-       /* These are all version "1".  */
-       if (opcode->flags & PPC_OPCODE_SPE)
-diff -Naur binutils-2.19.1.orig/gas/doc/as.texinfo binutils-2.19.1/gas/doc/as.texinfo
---- binutils-2.19.1.orig/gas/doc/as.texinfo    2008-10-02 01:07:17.000000000 -0700
-+++ binutils-2.19.1/gas/doc/as.texinfo 2009-03-02 05:43:14.000000000 -0800
-@@ -409,8 +409,7 @@
- @emph{Target PowerPC options:}
-    [@b{-mpwrx}|@b{-mpwr2}|@b{-mpwr}|@b{-m601}|@b{-mppc}|@b{-mppc32}|@b{-m603}|@b{-m604}|
--    @b{-m403}|@b{-m405}|@b{-mppc64}|@b{-m620}|@b{-mppc64bridge}|@b{-mbooke}|
--    @b{-mbooke32}|@b{-mbooke64}]
-+    @b{-m403}|@b{-m405}|@b{-mppc64}|@b{-m620}|@b{-mppc64bridge}|@b{-mbooke}]
-    [@b{-mcom}|@b{-many}|@b{-maltivec}|@b{-mvsx}] [@b{-memb}]
-    [@b{-mregnames}|@b{-mno-regnames}]
-    [@b{-mrelocatable}|@b{-mrelocatable-lib}]
-diff -Naur binutils-2.19.1.orig/gas/doc/c-ppc.texi binutils-2.19.1/gas/doc/c-ppc.texi
---- binutils-2.19.1.orig/gas/doc/c-ppc.texi    2008-08-01 21:38:50.000000000 -0700
-+++ binutils-2.19.1/gas/doc/c-ppc.texi 2009-03-02 05:43:14.000000000 -0800
-@@ -70,10 +70,7 @@
- @item -mppc64bridge
- Generate code for PowerPC 64, including bridge insns.
--@item -mbooke64
--Generate code for 64-bit BookE.
--
--@item -mbooke, mbooke32
-+@item -mbooke
- Generate code for 32-bit BookE.
- @item -me300
-diff -Naur binutils-2.19.1.orig/gas/testsuite/ChangeLog binutils-2.19.1/gas/testsuite/ChangeLog
---- binutils-2.19.1.orig/gas/testsuite/ChangeLog       2009-01-14 00:49:59.000000000 -0800
-+++ binutils-2.19.1/gas/testsuite/ChangeLog    2009-03-02 05:59:36.000000000 -0800
-@@ -1,3 +1,56 @@
-+2009-03-02  Alan Modra  <amodra@bigpond.net.au>
-+
-+      2009-02-26  Peter Bergner  <bergner@vnet.ibm.com>
-+      * gas/ppc/e500mc.d ("wait", "waitsrv", "waitimpl"): Add tests.
-+      * gas/ppc/e500mc.s: Likewise.
-+      * gas/ppc/power6.d ("cdtbcd", "cbcdtd", "addg6s"): Add tests.
-+      * gas/ppc/power6.s: Likewise.
-+      * gas/ppc/power7.d ("lfdpx", "mffgpr", "mftgpr"): Remove invalid tests.
-+      ("wait", "waitsrv", "waitimpl", "divwe", "divwe.", "divweo", "divweo.",
-+      "divweu", "divweu.", "divweuo", "divweuo.", "bpermd", "popcntw",
-+      "popcntd", "ldbrx", "stdbrx", "lfiwzx", "lfiwzx", "fcfids", "fcfids.",
-+      "fcfidus", "fcfidus.", "fctiwu", "fctiwu.", "fctiwuz", "fctiwuz.",
-+      "fctidu", "fctidu.", "fctiduz", "fctiduz.", "fcfidu", "fcfidu.",
-+      "ftdiv", "ftdiv", "ftsqrt", "ftsqrt", "dcbtt", "dcbtstt", "dcffix",
-+      "dcffix.", "lbarx", "lbarx", "lbarx", "lharx", "lharx", "lharx",
-+      "stbcx.", "sthcx.", "fre", "fre.", "fres", "fres.", "frsqrte",
-+      "frsqrte.", "frsqrtes", "frsqrtes.", "isel"): Add tests.
-+      * gas/ppc/power7.s: Likewise.
-+      * gas/ppc/vsx.d: New test.
-+      * gas/ppc/vsx.s: Likewise.
-+      * gas/ppc/ppc.exp: Run it.
-+
-+      2009-02-19  Peter Bergner  <bergner@vnet.ibm.com>
-+      * gas/ppc/e500mc.d ("lfdepx", "stfdepx"): Fix tests to expect a
-+      floating point register.
-+
-+      2009-02-05  Peter Bergner  <bergner@vnet.ibm.com>
-+      * gas/ppc/booke.s ("dcbt", "dcbtst"): New tests.
-+      * gas/ppc/booke.d: Likewise.
-+      * gas/ppc/power4_32.s: Likewise.
-+      * gas/ppc/power4_32.d: Likewise.
-+
-+      2009-01-14  Peter Bergner  <bergner@vnet.ibm.com>
-+      * gas/ppc/power6.s ("mtfsf", "mtfsf.", "mtfsfi", "mtfsfi."): Add tests.
-+      * gas/ppc/power6.d: Likewise.
-+
-+      2008-12-04  Ben Elliston  <bje@au.ibm.com>
-+      * gas/ppc/booke.s: Remove booke64 instructions.
-+      * gas/ppc/booke.d: Update expected disassembly output.
-+      * gas/ppc/booke_xcoff.s: Use -mbooke/-Mbooke.
-+      * gas/ppc/booke_xcoff.d: Likewise.
-+      * gas/ppc/booke_xcoff64.d: Likewise.
-+      * gas/ppc/booke_xcoff64.s: Likewise.
-+
-+      2008-09-09  Peter Bergner  <bergner@vnet.ibm.com>
-+      * gas/ppc/common.s: New test.
-+      * gas/ppc/common.d: Likewise.
-+      * gas/ppc/power4_32.s: Likewise.
-+      * gas/ppc/power4_32.d: Likewise.
-+      * gas/ppc/power6.s: Add attn, mtcr, mtcrf, mfcr, dcbz.
-+      * gas/ppc/power6.d: Likewise.
-+      * gas/ppc/ppc.exp: Run power4_32 test.
-+
- 2009-01-08  Adam Nemet  <anemet@caviumnetworks.com>
-       * gas/mips/mips1-fp.s, gas/mips/mips1-fp.d, gas/mips/mips1-fp.l:
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/booke.d binutils-2.19.1/gas/testsuite/gas/ppc/booke.d
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/booke.d 2007-04-18 16:58:12.000000000 -0700
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/booke.d      2009-03-02 05:54:22.000000000 -0800
-@@ -1,4 +1,4 @@
--#as: -mbooke64
-+#as: -mbooke
- #objdump: -dr -Mbooke
- #name: BookE tests
-@@ -6,151 +6,38 @@
- Disassembly of section \.text:
--0+0000000 <start>:
--   0: 24 25 00 30     bce     1,4\*cr1\+gt,30 <branch_target_1>
--   4: 24 46 00 3d     bcel    2,4\*cr1\+eq,40 <branch_target_2>
--   8: 24 67 00 52     bcea    3,4\*cr1\+so,50 <branch_target_3>
--                      8: R_PPC(64)?_ADDR14    \.text\+0x50
--   c: 24 88 00 73     bcela   4,4\*cr2\+lt,70 <branch_target_4>
--                      c: R_PPC(64)?_ADDR14    \.text\+0x70
--  10: 4c a9 00 22     bclre   5,4\*cr2\+gt
--  14: 4c aa 00 23     bclrel  5,4\*cr2\+eq
--  18: 4d 0b 04 22     bcctre  8,4\*cr2\+so
--  1c: 4d 0c 04 23     bcctrel 8,4\*cr3\+lt
--  20: 58 00 00 74     be      94 <branch_target_5>
--  24: 58 00 00 89     bel     ac <branch_target_6>
--  28: 58 00 00 f6     bea     f4 <branch_target_7>
--                      28: R_PPC(64)?_ADDR24   \.text\+0xf4
--  2c: 58 00 01 2b     bela    128 <branch_target_8>
--                      2c: R_PPC(64)?_ADDR24   \.text\+0x128
--
--0+0000030 <branch_target_1>:
--  30: e9 09 00 80     lbze    r8,8\(r9\)
--  34: e9 8f 00 41     lbzue   r12,4\(r15\)
--  38: 7c 86 40 fe     lbzuxe  r4,r6,r8
--  3c: 7c 65 38 be     lbzxe   r3,r5,r7
--
--0+0000040 <branch_target_2>:
--  40: f8 a6 06 40     lde     r5,400\(r6\)
--  44: f8 c7 07 11     ldue    r6,452\(r7\)
--  48: 7c e8 4e 3e     ldxe    r7,r8,r9
--  4c: 7d 4b 66 7e     lduxe   r10,r11,r12
--
--0+0000050 <branch_target_3>:
--  50: f9 81 02 06     lfde    f12,128\(r1\)
--  54: f8 25 00 47     lfdue   f1,16\(r5\)
--  58: 7c a1 1c be     lfdxe   f5,r1,r3
--  5c: 7c c2 24 fe     lfduxe  f6,r2,r4
--  60: f9 09 00 c4     lfse    f8,48\(r9\)
--  64: f9 2a 01 15     lfsue   f9,68\(r10\)
--  68: 7d 44 44 7e     lfsuxe  f10,r4,r8
--  6c: 7d 23 3c 3e     lfsxe   f9,r3,r7
--
--0+0000070 <branch_target_4>:
--  70: e9 45 03 24     lhae    r10,50\(r5\)
--  74: e8 23 00 55     lhaue   r1,5\(r3\)
--  78: 7c a1 1a fe     lhauxe  r5,r1,r3
--  7c: 7f be fa be     lhaxe   r29,r30,r31
--  80: 7c 22 1e 3c     lhbrxe  r1,r2,r3
--  84: e8 83 01 22     lhze    r4,18\(r3\)
--  88: e8 c9 01 43     lhzue   r6,20\(r9\)
--  8c: 7c a7 4a 7e     lhzuxe  r5,r7,r9
--  90: 7d 27 2a 3e     lhzxe   r9,r7,r5
--
--0+0000094 <branch_target_5>:
--  94: 7d 4f a0 fc     lwarxe  r10,r15,r20
--  98: 7c aa 94 3c     lwbrxe  r5,r10,r18
--  9c: eb 9d 00 46     lwze    r28,4\(r29\)
--  a0: e9 0a 02 87     lwzue   r8,40\(r10\)
--  a4: 7c 66 48 7e     lwzuxe  r3,r6,r9
--  a8: 7f dd e0 3e     lwzxe   r30,r29,r28
--
--0+00000ac <branch_target_6>:
--  ac: 7c 06 3d fc     dcbae   r6,r7
--  b0: 7c 08 48 bc     dcbfe   r8,r9
--  b4: 7c 0a 5b bc     dcbie   r10,r11
--  b8: 7c 08 f0 7c     dcbste  r8,r30
--  bc: 7c c3 0a 3c     dcbte   6,r3,r1
--  c0: 7c a4 11 fa     dcbtste 5,r4,r2
--  c4: 7c 0f 77 fc     dcbze   r15,r14
--  c8: 7c 03 27 bc     icbie   r3,r4
--  cc: 7c a8 48 2c     icbt    5,r8,r9
--  d0: 7c ca 78 3c     icbte   6,r10,r15
--  d4: 7c a6 02 26     mfapidi r5,r6
--  d8: 7c 07 46 24     tlbivax r7,r8
--  dc: 7c 09 56 26     tlbivaxe r9,r10
--  e0: 7c 0b 67 24     tlbsx   r11,r12
--  e4: 7c 0d 77 26     tlbsxe  r13,r14
--  e8: 7c 00 07 a4     tlbwe   
--  ec: 7c 00 07 a4     tlbwe   
--  f0: 7c 21 0f a4     tlbwe   r1,r1,1
--
--0+00000f4 <branch_target_7>:
--  f4: 7c 22 1b 14     adde64  r1,r2,r3
--  f8: 7c 85 37 14     adde64o r4,r5,r6
--  fc: 7c e8 03 d4     addme64 r7,r8
-- 100: 7d 2a 07 d4     addme64o r9,r10
-- 104: 7d 6c 03 94     addze64 r11,r12
-- 108: 7d ae 07 94     addze64o r13,r14
-- 10c: 7e 80 04 40     mcrxr64 cr5
-- 110: 7d f0 8b 10     subfe64 r15,r16,r17
-- 114: 7e 53 a7 10     subfe64o r18,r19,r20
-- 118: 7e b6 03 d0     subfme64 r21,r22
-- 11c: 7e f8 07 d0     subfme64o r23,r24
-- 120: 7f 3a 03 90     subfze64 r25,r26
-- 124: 7f 7c 07 90     subfze64o r27,r28
--
--0+0000128 <branch_target_8>:
-- 128: e8 22 03 28     stbe    r1,50\(r2\)
-- 12c: e8 64 02 89     stbue   r3,40\(r4\)
-- 130: 7c a6 39 fe     stbuxe  r5,r6,r7
-- 134: 7d 09 51 be     stbxe   r8,r9,r10
-- 138: 7d 6c 6b ff     stdcxe\. r11,r12,r13
-- 13c: f9 cf 00 78     stde    r14,28\(r15\)
-- 140: fa 11 00 59     stdue   r16,20\(r17\)
-- 144: 7e 53 a7 3e     stdxe   r18,r19,r20
-- 148: 7e b6 bf 7e     stduxe  r21,r22,r23
-- 14c: f8 38 00 3e     stfde   f1,12\(r24\)
-- 150: f8 59 00 0f     stfdue  f2,0\(r25\)
-- 154: 7c 7a dd be     stfdxe  f3,r26,r27
-- 158: 7c 9c ed fe     stfduxe f4,r28,r29
-- 15c: 7c be ff be     stfiwxe f5,r30,r31
-- 160: f8 de 00 6c     stfse   f6,24\(r30\)
-- 164: f8 fd 00 5d     stfsue  f7,20\(r29\)
-- 168: 7d 1c dd 3e     stfsxe  f8,r28,r27
-- 16c: 7d 3a cd 7e     stfsuxe f9,r26,r25
-- 170: 7f 17 b7 3c     sthbrxe r24,r23,r22
-- 174: ea b4 01 ea     sthe    r21,30\(r20\)
-- 178: ea 72 02 8b     sthue   r19,40\(r18\)
-- 17c: 7e 30 7b 7e     sthuxe  r17,r16,r15
-- 180: 7d cd 63 3e     sthxe   r14,r13,r12
-- 184: 7d 6a 4d 3c     stwbrxe r11,r10,r9
-- 188: 7d 07 31 3d     stwcxe\. r8,r7,r6
-- 18c: e8 a4 03 2e     stwe    r5,50\(r4\)
-- 190: e8 62 02 8f     stwue   r3,40\(r2\)
-- 194: 7c 22 19 7e     stwuxe  r1,r2,r3
-- 198: 7c 85 31 3e     stwxe   r4,r5,r6
-- 19c: 4c 00 00 66     rfci
-- 1a0: 7c 60 01 06     wrtee   r3
-- 1a4: 7c 00 81 46     wrteei  1
-- 1a8: 7c 85 02 06     mfdcrx  r4,r5
-- 1ac: 7c aa 3a 86     mfdcr   r5,234
-- 1b0: 7c e6 03 06     mtdcrx  r6,r7
-- 1b4: 7d 10 6b 86     mtdcr   432,r8
-- 1b8: 7c 00 04 ac     msync
-- 1bc: 7c 09 55 ec     dcba    r9,r10
-- 1c0: 7c 00 06 ac     mbar    
-- 1c4: 7c 00 06 ac     mbar    
-- 1c8: 7c 20 06 ac     mbar    1
-- 1cc: 7d 8d 77 24     tlbsx   r12,r13,r14
-- 1d0: 7d 8d 77 25     tlbsx\.  r12,r13,r14
-- 1d4: 7d 8d 77 26     tlbsxe  r12,r13,r14
-- 1d8: 7d 8d 77 27     tlbsxe\. r12,r13,r14
-- 1dc: 7c 12 42 a6     mfsprg  r0,2
-- 1e0: 7c 12 42 a6     mfsprg  r0,2
-- 1e4: 7c 12 43 a6     mtsprg  2,r0
-- 1e8: 7c 12 43 a6     mtsprg  2,r0
-- 1ec: 7c 07 42 a6     mfsprg  r0,7
-- 1f0: 7c 07 42 a6     mfsprg  r0,7
-- 1f4: 7c 17 43 a6     mtsprg  7,r0
-- 1f8: 7c 17 43 a6     mtsprg  7,r0
-+0+0000000 <branch_target_1>:
-+   0: 7c a8 48 2c     icbt    5,r8,r9
-+   4: 7c a6 02 26     mfapidi r5,r6
-+   8: 7c 07 46 24     tlbivax r7,r8
-+   c: 7c 0b 67 24     tlbsx   r11,r12
-+  10: 7c 00 07 a4     tlbwe   
-+  14: 7c 00 07 a4     tlbwe   
-+  18: 7c 21 0f a4     tlbwe   r1,r1,1
-+
-+0+000001c <branch_target_2>:
-+  1c: 4c 00 00 66     rfci
-+  20: 7c 60 01 06     wrtee   r3
-+  24: 7c 00 81 46     wrteei  1
-+  28: 7c 85 02 06     mfdcrx  r4,r5
-+  2c: 7c aa 3a 86     mfdcr   r5,234
-+  30: 7c e6 03 06     mtdcrx  r6,r7
-+  34: 7d 10 6b 86     mtdcr   432,r8
-+  38: 7c 00 04 ac     msync
-+  3c: 7c 09 55 ec     dcba    r9,r10
-+  40: 7c 00 06 ac     mbar    
-+  44: 7c 00 06 ac     mbar    
-+  48: 7c 20 06 ac     mbar    1
-+  4c: 7d 8d 77 24     tlbsx   r12,r13,r14
-+  50: 7d 8d 77 25     tlbsx\.  r12,r13,r14
-+  54: 7c 12 42 a6     mfsprg  r0,2
-+  58: 7c 12 42 a6     mfsprg  r0,2
-+  5c: 7c 12 43 a6     mtsprg  2,r0
-+  60: 7c 12 43 a6     mtsprg  2,r0
-+  64: 7c 07 42 a6     mfsprg  r0,7
-+  68: 7c 07 42 a6     mfsprg  r0,7
-+  6c: 7c 17 43 a6     mtsprg  7,r0
-+  70: 7c 17 43 a6     mtsprg  7,r0
-+  74: 7c 05 32 2c     dcbt    r5,r6
-+  78: 7c 05 32 2c     dcbt    r5,r6
-+  7c: 7d 05 32 2c     dcbt    8,r5,r6
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/booke.s binutils-2.19.1/gas/testsuite/gas/ppc/booke.s
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/booke.s 2007-04-18 16:58:12.000000000 -0700
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/booke.s      2009-03-02 05:54:22.000000000 -0800
-@@ -1,127 +1,17 @@
- # Motorola PowerPC BookE tests
--#as: -mbooke32
-+#as: -mbooke
-       .section ".text"
--start:
--      bce     1, 5, branch_target_1
--      bcel    2, 6, branch_target_2
--      bcea    3, 7, branch_target_3
--      bcela   4, 8, branch_target_4
--      bclre   5, 9
--      bclrel  5, 10
--      bcctre  8, 11
--      bcctrel 8, 12
--      be      branch_target_5
--      bel     branch_target_6
--      bea     branch_target_7
--      bela    branch_target_8
--branch_target_1:
--      lbze    8, 8(9)
--      lbzue   12, 4(15)
--      lbzuxe  4, 6, 8
--      lbzxe   3, 5, 7
--
--branch_target_2:
--      lde     5, 400(6)
--      ldue    6, 452(7)
--      ldxe    7, 8, 9
--      lduxe   10, 11, 12
--
--branch_target_3:
--      lfde    12, 128(1)
--      lfdue   1, 16(5)
--      lfdxe   5, 1, 3
--      lfduxe  6, 2, 4
--      lfse    8, 48(9)
--      lfsue   9, 68(10)
--      lfsuxe  10, 4, 8
--      lfsxe   9, 3, 7
--
--branch_target_4:
--      lhae    10, 50(5)
--      lhaue   1, 5(3) 
--      lhauxe  5, 1, 3
--      lhaxe   29, 30, 31
--      lhbrxe  1, 2, 3
--      lhze    4, 18(3)
--      lhzue   6, 20(9)
--      lhzuxe  5, 7, 9
--      lhzxe   9, 7, 5
--
--branch_target_5:
--      lwarxe  10, 15, 20
--      lwbrxe  5, 10, 18
--      lwze    28, 4(29)
--      lwzue   8, 40(10)
--      lwzuxe  3, 6, 9
--      lwzxe   30, 29, 28
--
--branch_target_6:
--      dcbae   6, 7
--      dcbfe   8, 9
--      dcbie   10, 11
--      dcbste  8, 30
--      dcbte   6, 3, 1
--      dcbtste 5, 4, 2
--      dcbze   15, 14
--      icbie   3, 4
-+branch_target_1:      
-       icbt    5, 8, 9 
--      icbte   6, 10, 15
-       mfapidi 5, 6
-       tlbivax 7, 8
--      tlbivaxe 9, 10  
-       tlbsx   11, 12
--      tlbsxe  13, 14
-       tlbwe
-       tlbwe   0,0,0
-       tlbwe   1,1,1
--branch_target_7:
--      adde64  1, 2, 3
--      adde64o 4, 5, 6
--      addme64 7, 8
--      addme64o 9, 10
--      addze64 11, 12
--      addze64o 13, 14
--      mcrxr64 5
--      subfe64 15, 16, 17
--      subfe64o 18, 19, 20
--      subfme64 21, 22
--      subfme64o 23, 24
--      subfze64 25, 26
--      subfze64o 27, 28
--
--branch_target_8:
--      stbe    1, 50(2)
--      stbue   3, 40(4)
--      stbuxe  5, 6, 7
--      stbxe   8, 9, 10
--      stdcxe. 11, 12, 13
--      stde    14, 28(15)
--      stdue   16, 20(17)
--      stdxe   18, 19, 20
--      stduxe  21, 22, 23
--      stfde   1, 12(24)
--      stfdue  2, 0(25)
--      stfdxe  3, 26, 27
--      stfduxe 4, 28, 29
--      stfiwxe 5, 30, 31
--      stfse   6, 24(30)
--      stfsue  7, 20(29)
--      stfsxe  8, 28, 27
--      stfsuxe 9, 26, 25
--      sthbrxe 24, 23, 22
--      sthe    21, 30(20)
--      sthue   19, 40(18)
--      sthuxe  17, 16, 15
--      sthxe   14, 13, 12
--      stwbrxe 11, 10, 9
--      stwcxe. 8, 7, 6
--      stwe    5, 50(4)
--      stwue   3, 40(2)
--      stwuxe  1, 2, 3
--      stwxe   4, 5, 6
--
-+branch_target_2:      
-       rfci
-       wrtee   3
-       wrteei  1
-@@ -137,8 +27,6 @@
-       tlbsx   12, 13, 14
-       tlbsx.  12, 13, 14
--      tlbsxe  12, 13, 14
--      tlbsxe. 12, 13, 14
-       mfsprg 0, 2
-       mfsprg2 0
-@@ -148,3 +36,7 @@
-       mfsprg7 0
-       mtsprg 7, 0
-       mtsprg7 0
-+
-+      dcbt 5,6
-+      dcbt 0,5,6
-+      dcbt 8,5,6
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/booke_xcoff64.d binutils-2.19.1/gas/testsuite/gas/ppc/booke_xcoff64.d
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/booke_xcoff64.d 2007-10-01 09:24:40.000000000 -0700
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/booke_xcoff64.d      2009-03-02 05:43:14.000000000 -0800
-@@ -1,5 +1,5 @@
--#as: -a64 -mppc64 -mbooke64
--#objdump: -dr -Mbooke64
-+#as: -a64 -mppc64 -mbooke
-+#objdump: -dr -Mbooke
- #name: xcoff64 BookE tests
- .*:     file format aix5?coff64-rs6000
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/booke_xcoff64.s binutils-2.19.1/gas/testsuite/gas/ppc/booke_xcoff64.s
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/booke_xcoff64.s 2007-10-01 09:24:40.000000000 -0700
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/booke_xcoff64.s      2009-03-02 05:43:15.000000000 -0800
-@@ -1,5 +1,5 @@
- # Motorola PowerPC BookE tests
--#as: -a64 -mppc64 -mbooke64
-+#as: -a64 -mppc64 -mbooke
-       .csect .text[PR]
-       .csect main[DS]
- main:
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/booke_xcoff.d binutils-2.19.1/gas/testsuite/gas/ppc/booke_xcoff.d
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/booke_xcoff.d   2007-10-01 09:24:40.000000000 -0700
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/booke_xcoff.d        2009-03-02 05:43:14.000000000 -0800
-@@ -1,5 +1,5 @@
--#as: -mppc32 -mbooke32
--#objdump: -mpowerpc -dr -Mbooke32
-+#as: -mppc32 -mbooke
-+#objdump: -mpowerpc -dr -Mbooke
- #name: xcoff BookE tests
- .*:     file format aixcoff-rs6000
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/booke_xcoff.s binutils-2.19.1/gas/testsuite/gas/ppc/booke_xcoff.s
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/booke_xcoff.s   2007-10-01 09:24:40.000000000 -0700
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/booke_xcoff.s        2009-03-02 05:43:14.000000000 -0800
-@@ -1,5 +1,5 @@
- # Motorola PowerPC BookE tests
--#as: -mbooke32
-+#as: -mbooke
-       .csect .text[PR]
-       .csect main[DS]
- main:
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/common.d binutils-2.19.1/gas/testsuite/gas/ppc/common.d
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/common.d        1969-12-31 16:00:00.000000000 -0800
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/common.d     2009-03-02 05:37:44.000000000 -0800
-@@ -0,0 +1,190 @@
-+#objdump: -d -Mcom
-+#as: -a32 -mcom
-+#name: PowerPC COMMON instructions
-+
-+.*: +file format elf32-powerpc.*
-+
-+Disassembly of section \.text:
-+
-+0+00 <start>:
-+
-+   0: 7c 83 28 39     and.    r3,r4,r5
-+   4: 7c 83 28 38     and     r3,r4,r5
-+   8: 7d cd 78 78     andc    r13,r14,r15
-+   c: 7e 30 90 79     andc.   r16,r17,r18
-+  10: 48 00 00 02     ba      0 <start>
-+  14: 40 01 00 00     bdnzf-  gt,14 <start\+0x14>
-+  18: 40 85 00 02     blea-   cr1,0 <start>
-+  1c: 40 43 00 01     bdzfl-  so,1c <start\+0x1c>
-+  20: 41 47 00 03     bdztla- 4\*cr1\+so,0 <start>
-+  24: 4e 80 04 20     bctr
-+  28: 4e 80 04 21     bctrl
-+  2c: 42 40 00 02     bdza-   0 <start>
-+  30: 42 40 00 00     bdz-    30 <start\+0x30>
-+  34: 42 40 00 03     bdzla-  0 <start>
-+  38: 42 40 00 01     bdzl-   38 <start\+0x38>
-+  3c: 41 82 00 00     beq-    3c <start\+0x3c>
-+  40: 41 8a 00 02     beqa-   cr2,0 <start>
-+  44: 41 86 00 01     beql-   cr1,44 <start\+0x44>
-+  48: 41 8e 00 03     beqla-  cr3,0 <start>
-+  4c: 40 80 00 00     bge-    4c <start\+0x4c>
-+  50: 40 90 00 02     bgea-   cr4,0 <start>
-+  54: 40 88 00 01     bgel-   cr2,54 <start\+0x54>
-+  58: 40 98 00 03     bgela-  cr6,0 <start>
-+  5c: 41 91 00 00     bgt-    cr4,5c <start\+0x5c>
-+  60: 41 99 00 02     bgta-   cr6,0 <start>
-+  64: 41 95 00 01     bgtl-   cr5,64 <start\+0x64>
-+  68: 41 9d 00 03     bgtla-  cr7,0 <start>
-+  6c: 48 00 00 00     b       6c <start\+0x6c>
-+  70: 48 00 00 03     bla     0 <start>
-+  74: 40 81 00 00     ble-    74 <start\+0x74>
-+  78: 40 91 00 02     blea-   cr4,0 <start>
-+  7c: 40 89 00 01     blel-   cr2,7c <start\+0x7c>
-+  80: 40 99 00 03     blela-  cr6,0 <start>
-+  84: 48 00 00 01     bl      84 <start\+0x84>
-+  88: 41 80 00 00     blt-    88 <start\+0x88>
-+  8c: 41 88 00 02     blta-   cr2,0 <start>
-+  90: 41 84 00 01     bltl-   cr1,90 <start\+0x90>
-+  94: 41 8c 00 03     bltla-  cr3,0 <start>
-+  98: 40 82 00 00     bne-    98 <start\+0x98>
-+  9c: 40 8a 00 02     bnea-   cr2,0 <start>
-+  a0: 40 86 00 01     bnel-   cr1,a0 <start\+0xa0>
-+  a4: 40 8e 00 03     bnela-  cr3,0 <start>
-+  a8: 40 85 00 00     ble-    cr1,a8 <start\+0xa8>
-+  ac: 40 95 00 02     blea-   cr5,0 <start>
-+  b0: 40 8d 00 01     blel-   cr3,b0 <start\+0xb0>
-+  b4: 40 9d 00 03     blela-  cr7,0 <start>
-+  b8: 40 84 00 00     bge-    cr1,b8 <start\+0xb8>
-+  bc: 40 94 00 02     bgea-   cr5,0 <start>
-+  c0: 40 8c 00 01     bgel-   cr3,c0 <start\+0xc0>
-+  c4: 40 9c 00 03     bgela-  cr7,0 <start>
-+  c8: 40 93 00 00     bns-    cr4,c8 <start\+0xc8>
-+  cc: 40 9b 00 02     bnsa-   cr6,0 <start>
-+  d0: 40 97 00 01     bnsl-   cr5,d0 <start\+0xd0>
-+  d4: 40 9f 00 03     bnsla-  cr7,0 <start>
-+  d8: 41 93 00 00     bso-    cr4,d8 <start\+0xd8>
-+  dc: 41 9b 00 02     bsoa-   cr6,0 <start>
-+  e0: 41 97 00 01     bsol-   cr5,e0 <start\+0xe0>
-+  e4: 41 9f 00 03     bsola-  cr7,0 <start>
-+  e8: 4c 85 32 02     crand   4\*cr1\+lt,4\*cr1\+gt,4\*cr1\+eq
-+  ec: 4c 64 29 02     crandc  so,4\*cr1\+lt,4\*cr1\+gt
-+  f0: 4c e0 0a 42     creqv   4\*cr1\+so,lt,gt
-+  f4: 4c 22 19 c2     crnand  gt,eq,so
-+  f8: 4c 01 10 42     crnor   lt,gt,eq
-+  fc: 4c a6 3b 82     cror    4\*cr1\+gt,4\*cr1\+eq,4\*cr1\+so
-+ 100: 4c 43 23 42     crorc   eq,so,4\*cr1\+lt
-+ 104: 4c c7 01 82     crxor   4\*cr1\+eq,4\*cr1\+so,lt
-+ 108: 7d 6a 62 39     eqv.    r10,r11,r12
-+ 10c: 7d 6a 62 38     eqv     r10,r11,r12
-+ 110: fe a0 fa 11     fabs.   f21,f31
-+ 114: fe a0 fa 10     fabs    f21,f31
-+ 118: fd 8a 58 40     fcmpo   cr3,f10,f11
-+ 11c: fd 84 28 00     fcmpu   cr3,f4,f5
-+ 120: fc 60 20 91     fmr.    f3,f4
-+ 124: fc 60 20 90     fmr     f3,f4
-+ 128: fe 80 f1 11     fnabs.  f20,f30
-+ 12c: fe 80 f1 10     fnabs   f20,f30
-+ 130: fc 60 20 51     fneg.   f3,f4
-+ 134: fc 60 20 50     fneg    f3,f4
-+ 138: fc c0 38 18     frsp    f6,f7
-+ 13c: fd 00 48 19     frsp.   f8,f9
-+ 140: 89 21 00 00     lbz     r9,0\(r1\)
-+ 144: 8d 41 00 01     lbzu    r10,1\(r1\)
-+ 148: 7e 95 b0 ee     lbzux   r20,r21,r22
-+ 14c: 7c 64 28 ae     lbzx    r3,r4,r5
-+ 150: ca a1 00 08     lfd     f21,8\(r1\)
-+ 154: ce c1 00 10     lfdu    f22,16\(r1\)
-+ 158: 7e 95 b4 ee     lfdux   f20,r21,r22
-+ 15c: 7d ae 7c ae     lfdx    f13,r14,r15
-+ 160: c2 61 00 00     lfs     f19,0\(r1\)
-+ 164: c6 81 00 04     lfsu    f20,4\(r1\)
-+ 168: 7d 4b 64 6e     lfsux   f10,r11,r12
-+ 16c: 7d 4b 64 2e     lfsx    f10,r11,r12
-+ 170: a9 e1 00 06     lha     r15,6\(r1\)
-+ 174: ae 01 00 08     lhau    r16,8\(r1\)
-+ 178: 7d 2a 5a ee     lhaux   r9,r10,r11
-+ 17c: 7d 2a 5a ae     lhax    r9,r10,r11
-+ 180: 7c 64 2e 2c     lhbrx   r3,r4,r5
-+ 184: a1 a1 00 00     lhz     r13,0\(r1\)
-+ 188: a5 c1 00 02     lhzu    r14,2\(r1\)
-+ 18c: 7e 96 c2 6e     lhzux   r20,r22,r24
-+ 190: 7e f8 ca 2e     lhzx    r23,r24,r25
-+ 194: 4c 04 00 00     mcrf    cr0,cr1
-+ 198: fd 90 00 80     mcrfs   cr3,cr4
-+ 19c: 7d 80 04 00     mcrxr   cr3
-+ 1a0: 7c 60 00 26     mfcr    r3
-+ 1a4: 7c 69 02 a6     mfctr   r3
-+ 1a8: 7c b3 02 a6     mfdar   r5
-+ 1ac: 7c 92 02 a6     mfdsisr r4
-+ 1b0: ff c0 04 8e     mffs    f30
-+ 1b4: ff e0 04 8f     mffs.   f31
-+ 1b8: 7c 48 02 a6     mflr    r2
-+ 1bc: 7e 60 00 a6     mfmsr   r19
-+ 1c0: 7c 78 00 26     mfocrf  r3,128
-+ 1c4: 7c 25 02 a6     mfrtcl  r1
-+ 1c8: 7c 04 02 a6     mfrtcu  r0
-+ 1cc: 7c d9 02 a6     mfsdr1  r6
-+ 1d0: 7c 60 22 a6     mfspr   r3,128
-+ 1d4: 7c fa 02 a6     mfsrr0  r7
-+ 1d8: 7d 1b 02 a6     mfsrr1  r8
-+ 1dc: 7f c1 02 a6     mfxer   r30
-+ 1e0: 7f fe fb 79     mr.     r30,r31
-+ 1e4: 7f fe fb 78     mr      r30,r31
-+ 1e8: 7c 6f f1 20     mtcr    r3
-+ 1ec: 7c 68 01 20     mtcrf   128,r3
-+ 1f0: 7e 69 03 a6     mtctr   r19
-+ 1f4: 7e b3 03 a6     mtdar   r21
-+ 1f8: 7f 16 03 a6     mtdec   r24
-+ 1fc: 7e 92 03 a6     mtdsisr r20
-+ 200: fc 60 00 8d     mtfsb0. so
-+ 204: fc 60 00 8c     mtfsb0  so
-+ 208: fc 60 00 4d     mtfsb1. so
-+ 20c: fc 60 00 4c     mtfsb1  so
-+ 210: fc 0c 55 8e     mtfsf   6,f10
-+ 214: fc 0c 5d 8f     mtfsf.  6,f11
-+ 218: ff 00 01 0c     mtfsfi  6,0
-+ 21c: ff 00 f1 0d     mtfsfi. 6,15
-+ 220: 7e 48 03 a6     mtlr    r18
-+ 224: 7d 40 01 24     mtmsr   r10
-+ 228: 7c 78 01 20     mtocrf  128,r3
-+ 22c: 7e f5 03 a6     mtrtcl  r23
-+ 230: 7e d4 03 a6     mtrtcu  r22
-+ 234: 7f 39 03 a6     mtsdr1  r25
-+ 238: 7c 60 23 a6     mtspr   128,r3
-+ 23c: 7f 5a 03 a6     mtsrr0  r26
-+ 240: 7f 7b 03 a6     mtsrr1  r27
-+ 244: 7e 21 03 a6     mtxer   r17
-+ 248: 7f bc f3 b9     nand.   r28,r29,r30
-+ 24c: 7f bc f3 b8     nand    r28,r29,r30
-+ 250: 7c 64 00 d1     neg.    r3,r4
-+ 254: 7c 64 00 d0     neg     r3,r4
-+ 258: 7e 11 04 d0     nego    r16,r17
-+ 25c: 7e 53 04 d1     nego.   r18,r19
-+ 260: 7e b4 b0 f9     nor.    r20,r21,r22
-+ 264: 7e b4 b0 f8     nor     r20,r21,r22
-+ 268: 7e b4 a8 f9     not.    r20,r21
-+ 26c: 7e b4 a8 f8     not     r20,r21
-+ 270: 7c 40 23 78     or      r0,r2,r4
-+ 274: 7d cc 83 79     or.     r12,r14,r16
-+ 278: 7e 0f 8b 38     orc     r15,r16,r17
-+ 27c: 7e 72 a3 39     orc.    r18,r19,r20
-+ 280: 4c 00 00 64     rfi
-+ 284: 99 61 00 02     stb     r11,2\(r1\)
-+ 288: 9d 81 00 03     stbu    r12,3\(r1\)
-+ 28c: 7d ae 79 ee     stbux   r13,r14,r15
-+ 290: 7c 64 29 ae     stbx    r3,r4,r5
-+ 294: db 21 00 20     stfd    f25,32\(r1\)
-+ 298: df 41 00 28     stfdu   f26,40\(r1\)
-+ 29c: 7c 01 15 ee     stfdux  f0,r1,r2
-+ 2a0: 7f be fd ae     stfdx   f29,r30,r31
-+ 2a4: d2 e1 00 14     stfs    f23,20\(r1\)
-+ 2a8: d7 01 00 18     stfsu   f24,24\(r1\)
-+ 2ac: 7f 5b e5 6e     stfsux  f26,r27,r28
-+ 2b0: 7e f8 cd 2e     stfsx   f23,r24,r25
-+ 2b4: b2 21 00 0a     sth     r17,10\(r1\)
-+ 2b8: 7c c7 47 2c     sthbrx  r6,r7,r8
-+ 2bc: b6 41 00 0c     sthu    r18,12\(r1\)
-+ 2c0: 7e b6 bb 6e     sthux   r21,r22,r23
-+ 2c4: 7d 8d 73 2e     sthx    r12,r13,r14
-+ 2c8: 7f dd fa 79     xor.    r29,r30,r31
-+ 2cc: 7f dd fa 78     xor     r29,r30,r31
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/common.s binutils-2.19.1/gas/testsuite/gas/ppc/common.s
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/common.s        1969-12-31 16:00:00.000000000 -0800
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/common.s     2009-03-02 05:37:44.000000000 -0800
-@@ -0,0 +1,182 @@
-+      .section ".text"
-+start:
-+      and.    3,4,5
-+      and     3,4,5
-+      andc    13,14,15
-+      andc.   16,17,18
-+      ba      label_abs
-+      bc      0,1,foo
-+      bca     4,5,foo_abs
-+      bcl     2,3,foo
-+      bcla    10,7,foo_abs
-+      bctr
-+      bctrl
-+      bdza    foo_abs
-+      bdz     foo
-+      bdzla   foo_abs
-+      bdzl    foo
-+      beq     0,foo
-+      beqa    2,foo_abs
-+      beql    1,foo
-+      beqla   3,foo_abs
-+      bge     0,foo
-+      bgea    4,foo_abs
-+      bgel    2,foo
-+      bgela   6,foo_abs
-+      bgt     4,foo
-+      bgta    6,foo_abs
-+      bgtl    5,foo
-+      bgtla   7,foo_abs
-+      b       label
-+      bla     label_abs
-+      ble     0,foo
-+      blea    4,foo
-+      blel    2,foo
-+      blela   6,foo_abs
-+      bl      label
-+      blt     0,foo
-+      blta    2,foo_abs
-+      bltl    1,foo
-+      bltla   3,foo_abs
-+      bne     0,foo
-+      bnea    2,foo
-+      bnel    1,foo
-+      bnela   3,foo_abs
-+      bng     1,foo
-+      bnga    5,foo_abs
-+      bngl    3,foo
-+      bngla   7,foo_abs
-+      bnl     1,foo
-+      bnla    5,foo_abs
-+      bnll    3,foo
-+      bnlla   7,foo_abs
-+      bns     4,foo
-+      bnsa    6,foo_abs
-+      bnsl    5,foo
-+      bnsla   7,foo_abs
-+      bso     4,foo
-+      bsoa    6,foo_abs
-+      bsol    5,foo
-+      bsola   7,foo_abs
-+      crand   4,5,6
-+      crandc  3,4,5
-+      creqv   7,0,1
-+      crnand  1,2,3
-+      crnor   0,1,2
-+      cror    5,6,7
-+      crorc   2,3,4
-+      crxor   6,7,0
-+      eqv.    10,11,12
-+      eqv     10,11,12
-+      fabs.   21,31
-+      fabs    21,31
-+      fcmpo   3,10,11
-+      fcmpu   3,4,5
-+      fmr.    3,4
-+      fmr     3,4
-+      fnabs.  20,30
-+      fnabs   20,30
-+      fneg.   3,4
-+      fneg    3,4
-+      frsp    6,7
-+      frsp.   8,9
-+      lbz     9,0(1)
-+      lbzu    10,1(1)
-+      lbzux   20,21,22
-+      lbzx    3,4,5
-+      lfd     21,8(1)
-+      lfdu    22,16(1)
-+      lfdux   20,21,22
-+      lfdx    13,14,15
-+      lfs     19,0(1)
-+      lfsu    20,4(1)
-+      lfsux   10,11,12
-+      lfsx    10,11,12
-+      lha     15,6(1)
-+      lhau    16,8(1)
-+      lhaux   9,10,11
-+      lhax    9,10,11
-+      lhbrx   3,4,5
-+      lhz     13,0(1)
-+      lhzu    14,2(1)
-+      lhzux   20,22,24
-+      lhzx    23,24,25
-+      mcrf    0,1
-+      mcrfs   3,4
-+      mcrxr   3
-+      mfcr    3
-+      mfctr   3
-+      mfdar   5
-+      mfdsisr 4
-+      mffs    30
-+      mffs.   31
-+      mflr    2
-+      mfmsr   19
-+      mfocrf  3,0x80
-+      mfrtcl  1
-+      mfrtcu  0
-+      mfsdr1  6
-+      mfspr   3,0x80
-+      mfsrr0  7
-+      mfsrr1  8
-+      mfxer   30
-+      mr.     30,31
-+      mr      30,31
-+      mtcr    3
-+      mtcrf   0x80,3
-+      mtctr   19
-+      mtdar   21
-+      mtdec   24
-+      mtdsisr 20
-+      mtfsb0. 3
-+      mtfsb0  3
-+      mtfsb1. 3
-+      mtfsb1  3
-+      mtfsf   6,10
-+      mtfsf.  6,11
-+      mtfsfi  6,0
-+      mtfsfi. 6,15
-+      mtlr    18
-+      mtmsr   10
-+      mtocrf  0x80,3
-+      mtrtcl  23
-+      mtrtcu  22
-+      mtsdr1  25
-+      mtspr   0x80,3
-+      mtsrr0  26
-+      mtsrr1  27
-+      mtxer   17
-+      nand.   28,29,30
-+      nand    28,29,30
-+      neg.    3,4
-+      neg     3,4
-+      nego    16,17
-+      nego.   18,19
-+      nor.    20,21,22
-+      nor     20,21,22
-+      not.    20,21
-+      not     20,21
-+      or      0,2,4
-+      or.     12,14,16
-+      orc     15,16,17
-+      orc.    18,19,20
-+      rfi
-+      stb     11,2(1)
-+      stbu    12,3(1)
-+      stbux   13,14,15
-+      stbx    3,4,5
-+      stfd    25,32(1)
-+      stfdu   26,40(1)
-+      stfdux  0,1,2
-+      stfdx   29,30,31
-+      stfs    23,20(1)
-+      stfsu   24,24(1)
-+      stfsux  26,27,28
-+      stfsx   23,24,25
-+      sth     17,10(1)
-+      sthbrx  6,7,8
-+      sthu    18,12(1)
-+      sthux   21,22,23
-+      sthx    12,13,14
-+      xor.    29,30,31
-+      xor     29,30,31
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/e500mc.d binutils-2.19.1/gas/testsuite/gas/ppc/e500mc.d
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/e500mc.d        2008-04-14 04:01:38.000000000 -0700
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/e500mc.d     2009-03-02 05:59:36.000000000 -0800
-@@ -6,7 +6,7 @@
- Disassembly of section \.text:
--0+0000000 <start>:
-+0+00 <start>:
-    0: 4c 00 00 4e     rfdi
-    4: 4c 00 00 cc     rfgi
-    8: 4c 1f f9 8c     dnh     0,1023
-@@ -14,38 +14,43 @@
-   10: 7c 09 57 be     icbiep  r9,r10
-   14: 7c 00 69 dc     msgclr  r13
-   18: 7c 00 71 9c     msgsnd  r14
--  1c: 7c 00 00 7c     wait
--  20: 7f 9c e3 78     mdors
--  24: 7c 00 02 1c     ehpriv
--  28: 7c 18 cb c6     dsn     r24,r25
--  2c: 7c 22 18 be     lbepx   r1,r2,r3
--  30: 7c 85 32 3e     lhepx   r4,r5,r6
--  34: 7c e8 48 3e     lwepx   r7,r8,r9
--  38: 7d 4b 60 3a     ldepx   r10,r11,r12
--  3c: 7d ae 7c be     lfdepx  r13,r14,r15
--  40: 7e 11 91 be     stbepx  r16,r17,r18
--  44: 7e 74 ab 3e     sthepx  r19,r20,r21
--  48: 7e d7 c1 3e     stwepx  r22,r23,r24
--  4c: 7f 3a d9 3a     stdepx  r25,r26,r27
--  50: 7f 9d f5 be     stfdepx r28,r29,r30
--  54: 7c 01 14 06     lbdx    r0,r1,r2
--  58: 7d 8d 74 46     lhdx    r12,r13,r14
--  5c: 7c 64 2c 86     lwdx    r3,r4,r5
--  60: 7f 5b e6 46     lfddx   f26,r27,r28
--  64: 7d f0 8c c6     lddx    r15,r16,r17
--  68: 7c c7 45 06     stbdx   r6,r7,r8
--  6c: 7e 53 a5 46     sthdx   r18,r19,r20
--  70: 7d 2a 5d 86     stwdx   r9,r10,r11
--  74: 7f be ff 46     stfddx  f29,r30,r31
--  78: 7e b6 bd c6     stddx   r21,r22,r23
--  7c: 7c 20 0d ec     dcbal   r0,r1
--  80: 7c 26 3f ec     dcbzl   r6,r7
--  84: 7c 1f 00 7e     dcbstep r31,r0
--  88: 7c 01 10 fe     dcbfep  r1,r2
--  8c: 7c 64 29 fe     dcbtstep r3,r4,r5
--  90: 7c c7 42 7e     dcbtep  r6,r7,r8
--  94: 7c 0b 67 fe     dcbzep  r11,r12
--  98: 7c 00 06 26     tlbilx  0,0,r0
--  9c: 7c 20 06 26     tlbilx  1,0,r0
--  a0: 7c 62 1e 26     tlbilx  3,r2,r3
--  a4: 7c 64 2e 26     tlbilx  3,r4,r5
-+  1c: 7c 00 00 7c     wait    
-+  20: 7c 00 00 7c     wait    
-+  24: 7c 20 00 7c     waitrsv
-+  28: 7c 20 00 7c     waitrsv
-+  2c: 7c 40 00 7c     waitimpl
-+  30: 7c 40 00 7c     waitimpl
-+  34: 7f 9c e3 78     mdors
-+  38: 7c 00 02 1c     ehpriv
-+  3c: 7c 18 cb c6     dsn     r24,r25
-+  40: 7c 22 18 be     lbepx   r1,r2,r3
-+  44: 7c 85 32 3e     lhepx   r4,r5,r6
-+  48: 7c e8 48 3e     lwepx   r7,r8,r9
-+  4c: 7d 4b 60 3a     ldepx   r10,r11,r12
-+  50: 7d ae 7c be     lfdepx  f13,r14,r15
-+  54: 7e 11 91 be     stbepx  r16,r17,r18
-+  58: 7e 74 ab 3e     sthepx  r19,r20,r21
-+  5c: 7e d7 c1 3e     stwepx  r22,r23,r24
-+  60: 7f 3a d9 3a     stdepx  r25,r26,r27
-+  64: 7f 9d f5 be     stfdepx f28,r29,r30
-+  68: 7c 01 14 06     lbdx    r0,r1,r2
-+  6c: 7d 8d 74 46     lhdx    r12,r13,r14
-+  70: 7c 64 2c 86     lwdx    r3,r4,r5
-+  74: 7f 5b e6 46     lfddx   f26,r27,r28
-+  78: 7d f0 8c c6     lddx    r15,r16,r17
-+  7c: 7c c7 45 06     stbdx   r6,r7,r8
-+  80: 7e 53 a5 46     sthdx   r18,r19,r20
-+  84: 7d 2a 5d 86     stwdx   r9,r10,r11
-+  88: 7f be ff 46     stfddx  f29,r30,r31
-+  8c: 7e b6 bd c6     stddx   r21,r22,r23
-+  90: 7c 20 0d ec     dcbal   r0,r1
-+  94: 7c 26 3f ec     dcbzl   r6,r7
-+  98: 7c 1f 00 7e     dcbstep r31,r0
-+  9c: 7c 01 10 fe     dcbfep  r1,r2
-+  a0: 7c 64 29 fe     dcbtstep r3,r4,r5
-+  a4: 7c c7 42 7e     dcbtep  r6,r7,r8
-+  a8: 7c 0b 67 fe     dcbzep  r11,r12
-+  ac: 7c 00 06 26     tlbilx  0,0,r0
-+  b0: 7c 20 06 26     tlbilx  1,0,r0
-+  b4: 7c 62 1e 26     tlbilx  3,r2,r3
-+  b8: 7c 64 2e 26     tlbilx  3,r4,r5
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/e500mc.s binutils-2.19.1/gas/testsuite/gas/ppc/e500mc.s
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/e500mc.s        2008-04-14 04:01:38.000000000 -0700
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/e500mc.s     2009-03-02 05:59:36.000000000 -0800
-@@ -9,6 +9,11 @@
-       msgclr  13
-       msgsnd  14
-       wait
-+      wait 0
-+      waitrsv
-+      wait 1
-+      waitimpl
-+      wait 2
-       mdors
-       ehpriv
-       dsn     24, 25
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/power4_32.d binutils-2.19.1/gas/testsuite/gas/ppc/power4_32.d
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/power4_32.d     1969-12-31 16:00:00.000000000 -0800
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/power4_32.d  2009-03-02 05:54:22.000000000 -0800
-@@ -0,0 +1,46 @@
-+#objdump: -d -Mpower4
-+#as: -a32 -mpower4
-+#name: Power4 instructions
-+
-+.*: +file format elf32-powerpc.*
-+
-+Disassembly of section \.text:
-+
-+0+00 <start>:
-+   0: 80 c7 00 00     lwz     r6,0\(r7\)
-+   4: 80 c7 00 10     lwz     r6,16\(r7\)
-+   8: 80 c7 ff f0     lwz     r6,-16\(r7\)
-+   c: 80 c7 80 00     lwz     r6,-32768\(r7\)
-+  10: 80 c7 7f f0     lwz     r6,32752\(r7\)
-+  14: 90 c7 00 00     stw     r6,0\(r7\)
-+  18: 90 c7 00 10     stw     r6,16\(r7\)
-+  1c: 90 c7 ff f0     stw     r6,-16\(r7\)
-+  20: 90 c7 80 00     stw     r6,-32768\(r7\)
-+  24: 90 c7 7f f0     stw     r6,32752\(r7\)
-+  28: 00 00 02 00     attn
-+  2c: 7c 6f f1 20     mtcr    r3
-+  30: 7c 6f f1 20     mtcr    r3
-+  34: 7c 68 11 20     mtcrf   129,r3
-+  38: 7c 70 11 20     mtocrf  1,r3
-+  3c: 7c 70 21 20     mtocrf  2,r3
-+  40: 7c 70 41 20     mtocrf  4,r3
-+  44: 7c 70 81 20     mtocrf  8,r3
-+  48: 7c 71 01 20     mtocrf  16,r3
-+  4c: 7c 72 01 20     mtocrf  32,r3
-+  50: 7c 74 01 20     mtocrf  64,r3
-+  54: 7c 78 01 20     mtocrf  128,r3
-+  58: 7c 60 00 26     mfcr    r3
-+  5c: 7c 70 10 26     mfocrf  r3,1
-+  60: 7c 70 20 26     mfocrf  r3,2
-+  64: 7c 70 40 26     mfocrf  r3,4
-+  68: 7c 70 80 26     mfocrf  r3,8
-+  6c: 7c 71 00 26     mfocrf  r3,16
-+  70: 7c 72 00 26     mfocrf  r3,32
-+  74: 7c 74 00 26     mfocrf  r3,64
-+  78: 7c 78 00 26     mfocrf  r3,128
-+  7c: 7c 01 17 ec     dcbz    r1,r2
-+  80: 7c 23 27 ec     dcbzl   r3,r4
-+  84: 7c 05 37 ec     dcbz    r5,r6
-+  88: 7c 05 32 2c     dcbt    r5,r6
-+  8c: 7c 05 32 2c     dcbt    r5,r6
-+  90: 7d 05 32 2c     dcbt    r5,r6,8
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/power4_32.s binutils-2.19.1/gas/testsuite/gas/ppc/power4_32.s
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/power4_32.s     1969-12-31 16:00:00.000000000 -0800
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/power4_32.s  2009-03-02 05:54:22.000000000 -0800
-@@ -0,0 +1,39 @@
-+      .section ".text"
-+start:
-+      lwz     6,0(7)
-+      lwz     6,16(7)
-+      lwz     6,-16(7)
-+      lwz     6,-32768(7)
-+      lwz     6,32752(7)
-+      stw     6,0(7)
-+      stw     6,16(7)
-+      stw     6,-16(7)
-+      stw     6,-32768(7)
-+      stw     6,32752(7)
-+      attn
-+      mtcr    3
-+      mtcrf   0xff,3
-+      mtcrf   0x81,3
-+      mtcrf   0x01,3
-+      mtcrf   0x02,3
-+      mtcrf   0x04,3
-+      mtcrf   0x08,3
-+      mtcrf   0x10,3
-+      mtcrf   0x20,3
-+      mtcrf   0x40,3
-+      mtcrf   0x80,3
-+      mfcr    3
-+      mfcr    3,0x01
-+      mfcr    3,0x02
-+      mfcr    3,0x04
-+      mfcr    3,0x08
-+      mfcr    3,0x10
-+      mfcr    3,0x20
-+      mfcr    3,0x40
-+      mfcr    3,0x80
-+      dcbz    1, 2
-+      dcbzl   3, 4
-+      dcbz    5, 6
-+      dcbt    5,6
-+      dcbt    5,6,0
-+      dcbt    5,6,8
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/power6.d binutils-2.19.1/gas/testsuite/gas/ppc/power6.d
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/power6.d        2008-07-31 19:44:12.000000000 -0700
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/power6.d     2009-03-02 05:59:36.000000000 -0800
-@@ -28,4 +28,44 @@
-   48: 7e 08 3a ac     dstt    r8,r7,0
-   4c: 7c 65 32 ec     dstst   r5,r6,3
-   50: 7e 44 2a ec     dststt  r4,r5,2
--
-+  54: 00 00 02 00     attn
-+  58: 7c 6f f1 20     mtcr    r3
-+  5c: 7c 6f f1 20     mtcr    r3
-+  60: 7c 68 11 20     mtcrf   129,r3
-+  64: 7c 70 11 20     mtocrf  1,r3
-+  68: 7c 70 21 20     mtocrf  2,r3
-+  6c: 7c 70 41 20     mtocrf  4,r3
-+  70: 7c 70 81 20     mtocrf  8,r3
-+  74: 7c 71 01 20     mtocrf  16,r3
-+  78: 7c 72 01 20     mtocrf  32,r3
-+  7c: 7c 74 01 20     mtocrf  64,r3
-+  80: 7c 78 01 20     mtocrf  128,r3
-+  84: 7c 60 00 26     mfcr    r3
-+  88: 7c 70 10 26     mfocrf  r3,1
-+  8c: 7c 70 20 26     mfocrf  r3,2
-+  90: 7c 70 40 26     mfocrf  r3,4
-+  94: 7c 70 80 26     mfocrf  r3,8
-+  98: 7c 71 00 26     mfocrf  r3,16
-+  9c: 7c 72 00 26     mfocrf  r3,32
-+  a0: 7c 74 00 26     mfocrf  r3,64
-+  a4: 7c 78 00 26     mfocrf  r3,128
-+  a8: 7c 01 17 ec     dcbz    r1,r2
-+  ac: 7c 23 27 ec     dcbzl   r3,r4
-+  b0: 7c 05 37 ec     dcbz    r5,r6
-+  b4: fc 0c 55 8e     mtfsf   6,f10
-+  b8: fc 0c 5d 8f     mtfsf.  6,f11
-+  bc: fc 0c 55 8e     mtfsf   6,f10
-+  c0: fc 0c 5d 8f     mtfsf.  6,f11
-+  c4: fc 0d 55 8e     mtfsf   6,f10,0,1
-+  c8: fc 0d 5d 8f     mtfsf.  6,f11,0,1
-+  cc: fe 0c 55 8e     mtfsf   6,f10,1,0
-+  d0: fe 0c 5d 8f     mtfsf.  6,f11,1,0
-+  d4: ff 00 01 0c     mtfsfi  6,0
-+  d8: ff 00 f1 0d     mtfsfi. 6,15
-+  dc: ff 00 01 0c     mtfsfi  6,0
-+  e0: ff 00 f1 0d     mtfsfi. 6,15
-+  e4: ff 01 01 0c     mtfsfi  6,0,1
-+  e8: ff 01 f1 0d     mtfsfi. 6,15,1
-+  ec: 7d 6a 02 74     cbcdtd  r10,r11
-+  f0: 7d 6a 02 34     cdtbcd  r10,r11
-+  f4: 7d 4b 60 94     addg6s  r10,r11,r12
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/power6.s binutils-2.19.1/gas/testsuite/gas/ppc/power6.s
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/power6.s        2008-07-31 19:44:12.000000000 -0700
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/power6.s     2009-03-02 05:59:36.000000000 -0800
-@@ -23,3 +23,44 @@
-       dstt    8,7,0
-       dstst   5,6,3
-       dststt  4,5,2
-+      attn
-+      mtcr    3
-+      mtcrf   0xff,3
-+      mtcrf   0x81,3
-+      mtcrf   0x01,3
-+      mtcrf   0x02,3
-+      mtcrf   0x04,3
-+      mtcrf   0x08,3
-+      mtcrf   0x10,3
-+      mtcrf   0x20,3
-+      mtcrf   0x40,3
-+      mtcrf   0x80,3
-+      mfcr    3
-+      mfcr    3,0x01
-+      mfcr    3,0x02
-+      mfcr    3,0x04
-+      mfcr    3,0x08
-+      mfcr    3,0x10
-+      mfcr    3,0x20
-+      mfcr    3,0x40
-+      mfcr    3,0x80
-+      dcbz    1, 2
-+      dcbzl   3, 4
-+      dcbz    5, 6
-+      mtfsf   6,10
-+      mtfsf.  6,11
-+      mtfsf   6,10,0,0
-+      mtfsf.  6,11,0,0
-+      mtfsf   6,10,0,1
-+      mtfsf.  6,11,0,1
-+      mtfsf   6,10,1,0
-+      mtfsf.  6,11,1,0
-+      mtfsfi  6,0
-+      mtfsfi. 6,15
-+      mtfsfi  6,0,0
-+      mtfsfi. 6,15,0
-+      mtfsfi  6,0,1
-+      mtfsfi. 6,15,1
-+      cbcdtd  10,11
-+      cdtbcd  10,11
-+      addg6s  10,11,12
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/power7.d binutils-2.19.1/gas/testsuite/gas/ppc/power7.d
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/power7.d        2008-08-01 21:38:51.000000000 -0700
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/power7.d     2009-03-02 05:59:36.000000000 -0800
-@@ -1,8 +1,8 @@
--#as: -a32 -mpower7
-+#as: -mpower7
- #objdump: -dr -Mpower7
- #name: POWER7 tests (includes DFP, Altivec and VSX)
--.*: +file format elf32-powerpc.*
-+.*: +file format elf(32)?(64)?-powerpc.*
- Disassembly of section \.text:
-@@ -33,25 +33,81 @@
-   5c: f1 6c 67 87     xvmovdp vs43,vs44
-   60: f0 64 2f 80     xvcpsgndp vs3,vs4,vs5
-   64: f1 6c 6f 87     xvcpsgndp vs43,vs44,vs45
--  68: 4c 00 03 24     doze
--  6c: 4c 00 03 64     nap
--  70: 4c 00 03 a4     sleep
--  74: 4c 00 03 e4     rvwinkle
--  78: 7c 83 01 34     prtyw   r3,r4
--  7c: 7d cd 01 74     prtyd   r13,r14
--  80: 7d 5c 02 a6     mfcfar  r10
--  84: 7d 7c 03 a6     mtcfar  r11
--  88: 7c 83 2b f8     cmpb    r3,r4,r5
--  8c: 7c c0 3c be     mffgpr  f6,r7
--  90: 7d 00 4d be     mftgpr  r8,f9
--  94: 7d 4b 66 2a     lwzcix  r10,r11,r12
--  98: 7d ae 7e 2e     lfdpx   f13,r14,r15
--  9c: ee 11 90 04     dadd    f16,f17,f18
--  a0: fe 96 c0 04     daddq   f20,f22,f24
--  a4: 7c 60 06 6c     dss     3
--  a8: 7e 00 06 6c     dssall
--  ac: 7c 25 22 ac     dst     r5,r4,1
--  b0: 7e 08 3a ac     dstt    r8,r7,0
--  b4: 7c 65 32 ec     dstst   r5,r6,3
--  b8: 7e 44 2a ec     dststt  r4,r5,2
--  bc: 4e 80 00 20     blr
-+  68: 7c 00 00 7c     wait    
-+  6c: 7c 00 00 7c     wait    
-+  70: 7c 20 00 7c     waitrsv
-+  74: 7c 20 00 7c     waitrsv
-+  78: 7c 40 00 7c     waitimpl
-+  7c: 7c 40 00 7c     waitimpl
-+  80: 4c 00 03 24     doze
-+  84: 4c 00 03 64     nap
-+  88: 4c 00 03 a4     sleep
-+  8c: 4c 00 03 e4     rvwinkle
-+  90: 7c 83 01 34     prtyw   r3,r4
-+  94: 7d cd 01 74     prtyd   r13,r14
-+  98: 7d 5c 02 a6     mfcfar  r10
-+  9c: 7d 7c 03 a6     mtcfar  r11
-+  a0: 7c 83 2b f8     cmpb    r3,r4,r5
-+  a4: 7d 4b 66 2a     lwzcix  r10,r11,r12
-+  a8: ee 11 90 04     dadd    f16,f17,f18
-+  ac: fe 96 c0 04     daddq   f20,f22,f24
-+  b0: 7c 60 06 6c     dss     3
-+  b4: 7e 00 06 6c     dssall
-+  b8: 7c 25 22 ac     dst     r5,r4,1
-+  bc: 7e 08 3a ac     dstt    r8,r7,0
-+  c0: 7c 65 32 ec     dstst   r5,r6,3
-+  c4: 7e 44 2a ec     dststt  r4,r5,2
-+  c8: 7d 4b 63 56     divwe   r10,r11,r12
-+  cc: 7d 6c 6b 57     divwe\.  r11,r12,r13
-+  d0: 7d 8d 77 56     divweo  r12,r13,r14
-+  d4: 7d ae 7f 57     divweo\. r13,r14,r15
-+  d8: 7d 4b 63 16     divweu  r10,r11,r12
-+  dc: 7d 6c 6b 17     divweu\. r11,r12,r13
-+  e0: 7d 8d 77 16     divweuo r12,r13,r14
-+  e4: 7d ae 7f 17     divweuo\. r13,r14,r15
-+  e8: 7e 27 d9 f8     bpermd  r7,r17,r27
-+  ec: 7e 8a 02 f4     popcntw r10,r20
-+  f0: 7e 8a 03 f4     popcntd r10,r20
-+  f4: 7e 95 b4 28     ldbrx   r20,r21,r22
-+  f8: 7e 95 b5 28     stdbrx  r20,r21,r22
-+  fc: 7d 40 56 ee     lfiwzx  f10,0,r10
-+ 100: 7d 49 56 ee     lfiwzx  f10,r9,r10
-+ 104: ec 80 2e 9c     fcfids  f4,f5
-+ 108: ec 80 2e 9d     fcfids\. f4,f5
-+ 10c: ec 80 2f 9c     fcfidus f4,f5
-+ 110: ec 80 2f 9d     fcfidus\. f4,f5
-+ 114: fc 80 29 1c     fctiwu  f4,f5
-+ 118: fc 80 29 1d     fctiwu\. f4,f5
-+ 11c: fc 80 29 1e     fctiwuz f4,f5
-+ 120: fc 80 29 1f     fctiwuz\. f4,f5
-+ 124: fc 80 2f 5c     fctidu  f4,f5
-+ 128: fc 80 2f 5d     fctidu\. f4,f5
-+ 12c: fc 80 2f 5e     fctiduz f4,f5
-+ 130: fc 80 2f 5f     fctiduz\. f4,f5
-+ 134: fc 80 2f 9c     fcfidu  f4,f5
-+ 138: fc 80 2f 9d     fcfidu\. f4,f5
-+ 13c: fc 0a 59 00     ftdiv   cr0,f10,f11
-+ 140: ff 8a 59 00     ftdiv   cr7,f10,f11
-+ 144: fc 00 51 40     ftsqrt  cr0,f10
-+ 148: ff 80 51 40     ftsqrt  cr7,f10
-+ 14c: 7e 08 4a 2c     dcbtt   r8,r9
-+ 150: 7e 08 49 ec     dcbtstt r8,r9
-+ 154: ed 40 66 44     dcffix  f10,f12
-+ 158: ee 80 b6 45     dcffix\. f20,f22
-+ 15c: 7d 4b 60 68     lbarx   r10,r11,r12
-+ 160: 7d 4b 60 68     lbarx   r10,r11,r12
-+ 164: 7d 4b 60 69     lbarx   r10,r11,r12,1
-+ 168: 7e 95 b0 e8     lharx   r20,r21,r22
-+ 16c: 7e 95 b0 e8     lharx   r20,r21,r22
-+ 170: 7e 95 b0 e9     lharx   r20,r21,r22,1
-+ 174: 7d 4b 65 6d     stbcx\.  r10,r11,r12
-+ 178: 7d 4b 65 ad     sthcx\.  r10,r11,r12
-+ 17c: fd c0 78 30     fre     f14,f15
-+ 180: fd c0 78 31     fre\.    f14,f15
-+ 184: ed c0 78 30     fres    f14,f15
-+ 188: ed c0 78 31     fres\.   f14,f15
-+ 18c: fd c0 78 34     frsqrte f14,f15
-+ 190: fd c0 78 35     frsqrte\. f14,f15
-+ 194: ed c0 78 34     frsqrtes f14,f15
-+ 198: ed c0 78 35     frsqrtes\. f14,f15
-+ 19c: 7c 43 27 1e     isel    r2,r3,r4,28
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/power7.s binutils-2.19.1/gas/testsuite/gas/ppc/power7.s
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/power7.s        2008-08-01 21:38:51.000000000 -0700
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/power7.s     2009-03-02 05:59:36.000000000 -0800
-@@ -1,9 +1,4 @@
--      .file   "power7.c"
-       .section        ".text"
--      .align 2
--      .p2align 4,,15
--      .globl power7
--      .type   power7, @function
- power7:
-       lxvd2x    3,4,5
-       lxvd2ux   3,4,5
-@@ -31,6 +26,12 @@
-       xvcpsgndp 43,44,44
-       xvcpsgndp 3,4,5
-       xvcpsgndp 43,44,45
-+      wait
-+      wait 0
-+      waitrsv
-+      wait 1
-+      waitimpl
-+      wait 2
-       doze
-       nap
-       sleep
-@@ -40,10 +41,7 @@
-       mfcfar    10
-       mtcfar    11
-       cmpb      3,4,5
--      mffgpr    6,7
--      mftgpr    8,9
-       lwzcix    10,11,12
--      lfdpx     13,14,15
-       dadd      16,17,18
-       daddq     20,22,24
-       dss       3
-@@ -52,7 +50,57 @@
-       dstt      8,7,0
-       dstst     5,6,3
-       dststt    4,5,2
--      blr
--      .size   power7,.-power7
--      .ident  "GCC: (GNU) 4.1.2 20070115 (prerelease) (SUSE Linux)"
--      .section        .note.GNU-stack,"",@progbits
-+      divwe     10,11,12
-+      divwe.    11,12,13
-+      divweo    12,13,14
-+      divweo.   13,14,15
-+      divweu    10,11,12
-+      divweu.   11,12,13
-+      divweuo   12,13,14
-+      divweuo.  13,14,15
-+      bpermd    7,17,27
-+      popcntw   10,20
-+      popcntd   10,20
-+      ldbrx     20,21,22
-+      stdbrx    20,21,22
-+      lfiwzx    10,0,10
-+      lfiwzx    10,9,10
-+      fcfids    4,5
-+      fcfids.   4,5
-+      fcfidus   4,5
-+      fcfidus.  4,5
-+      fctiwu    4,5
-+      fctiwu.   4,5
-+      fctiwuz   4,5
-+      fctiwuz.  4,5
-+      fctidu    4,5
-+      fctidu.   4,5
-+      fctiduz   4,5
-+      fctiduz.  4,5
-+      fcfidu    4,5
-+      fcfidu.   4,5
-+      ftdiv     0,10,11
-+      ftdiv     7,10,11
-+      ftsqrt    0,10
-+      ftsqrt    7,10
-+      dcbtt     8,9
-+      dcbtstt   8,9
-+      dcffix    10,12
-+      dcffix.   20,22
-+      lbarx     10,11,12
-+      lbarx     10,11,12,0
-+      lbarx     10,11,12,1
-+      lharx     20,21,22
-+      lharx     20,21,22,0
-+      lharx     20,21,22,1
-+      stbcx.    10,11,12
-+      sthcx.    10,11,12
-+      fre       14,15
-+      fre.      14,15
-+      fres      14,15
-+      fres.     14,15
-+      frsqrte   14,15
-+      frsqrte.  14,15
-+      frsqrtes  14,15
-+      frsqrtes. 14,15
-+      isel      2,3,4,28
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/ppc.exp binutils-2.19.1/gas/testsuite/gas/ppc/ppc.exp
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/ppc.exp 2008-08-01 21:38:51.000000000 -0700
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/ppc.exp      2009-03-02 05:59:36.000000000 -0800
-@@ -45,7 +45,10 @@
-       run_dump_test "ppc750ps"
-       run_dump_test "e500mc"
-       run_dump_test "cell"
-+      run_dump_test "common"
-+      run_dump_test "power4_32"
-       run_dump_test "power6"
-       run_dump_test "power7"
-+      run_dump_test "vsx"
-     }
- }
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/vsx.d binutils-2.19.1/gas/testsuite/gas/ppc/vsx.d
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/vsx.d   1969-12-31 16:00:00.000000000 -0800
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/vsx.d        2009-03-02 05:59:36.000000000 -0800
-@@ -0,0 +1,174 @@
-+#as: -mvsx
-+#objdump: -d -Mvsx
-+#name: VSX tests
-+
-+.*: +file format elf(32)?(64)?-powerpc.*
-+
-+
-+Disassembly of section \.text:
-+
-+0+00 <start>:
-+   0: 7d 0a a4 99     lxsdx   vs40,r10,r20
-+   4: 7d 0a a4 d9     lxsdux  vs40,r10,r20
-+   8: 7d 0a a6 99     lxvd2x  vs40,r10,r20
-+   c: 7d 0a a6 d9     lxvd2ux vs40,r10,r20
-+  10: 7d 0a a2 99     lxvdsx  vs40,r10,r20
-+  14: 7d 0a a6 19     lxvw4x  vs40,r10,r20
-+  18: 7d 0a a6 59     lxvw4ux vs40,r10,r20
-+  1c: 7d 0a a5 99     stxsdx  vs40,r10,r20
-+  20: 7d 0a a5 d9     stxsdux vs40,r10,r20
-+  24: 7d 0a a7 99     stxvd2x vs40,r10,r20
-+  28: 7d 0a a7 d9     stxvd2ux vs40,r10,r20
-+  2c: 7d 0a a7 19     stxvw4x vs40,r10,r20
-+  30: 7d 0a a7 59     stxvw4ux vs40,r10,r20
-+  34: f1 00 e5 67     xsabsdp vs40,vs60
-+  38: f1 12 e1 07     xsadddp vs40,vs50,vs60
-+  3c: f0 92 e1 5e     xscmpodp cr1,vs50,vs60
-+  40: f0 92 e1 1e     xscmpudp cr1,vs50,vs60
-+  44: f1 12 e5 87     xscpsgndp vs40,vs50,vs60
-+  48: f1 00 e4 27     xscvdpsp vs40,vs60
-+  4c: f1 00 e5 63     xscvdpsxds vs40,vs60
-+  50: f1 00 e1 63     xscvdpsxws vs40,vs60
-+  54: f1 00 e5 23     xscvdpuxds vs40,vs60
-+  58: f1 00 e1 23     xscvdpuxws vs40,vs60
-+  5c: f1 00 e5 27     xscvspdp vs40,vs60
-+  60: f1 00 e5 e3     xscvsxddp vs40,vs60
-+  64: f1 00 e5 a3     xscvuxddp vs40,vs60
-+  68: f1 12 e1 c7     xsdivdp vs40,vs50,vs60
-+  6c: f1 12 e1 0f     xsmaddadp vs40,vs50,vs60
-+  70: f1 12 e1 4f     xsmaddmdp vs40,vs50,vs60
-+  74: f1 12 e5 07     xsmaxdp vs40,vs50,vs60
-+  78: f1 12 e5 47     xsmindp vs40,vs50,vs60
-+  7c: f1 12 e1 8f     xsmsubadp vs40,vs50,vs60
-+  80: f1 12 e1 cf     xsmsubmdp vs40,vs50,vs60
-+  84: f1 12 e1 87     xsmuldp vs40,vs50,vs60
-+  88: f1 00 e5 a7     xsnabsdp vs40,vs60
-+  8c: f1 00 e5 e7     xsnegdp vs40,vs60
-+  90: f1 12 e5 0f     xsnmaddadp vs40,vs50,vs60
-+  94: f1 12 e5 4f     xsnmaddmdp vs40,vs50,vs60
-+  98: f1 12 e5 8f     xsnmsubadp vs40,vs50,vs60
-+  9c: f1 12 e5 cf     xsnmsubmdp vs40,vs50,vs60
-+  a0: f1 00 e1 27     xsrdpi  vs40,vs60
-+  a4: f1 00 e1 af     xsrdpic vs40,vs60
-+  a8: f1 00 e1 e7     xsrdpim vs40,vs60
-+  ac: f1 00 e1 a7     xsrdpip vs40,vs60
-+  b0: f1 00 e1 67     xsrdpiz vs40,vs60
-+  b4: f1 00 e1 6b     xsredp  vs40,vs60
-+  b8: f1 00 e1 2b     xsrsqrtedp vs40,vs60
-+  bc: f1 00 e1 2f     xssqrtdp vs40,vs60
-+  c0: f1 12 e1 47     xssubdp vs40,vs50,vs60
-+  c4: f0 92 e1 ee     xstdivdp cr1,vs50,vs60
-+  c8: f0 80 e1 aa     xstsqrtdp cr1,vs60
-+  cc: f1 00 e7 67     xvabsdp vs40,vs60
-+  d0: f1 00 e6 67     xvabssp vs40,vs60
-+  d4: f1 12 e3 07     xvadddp vs40,vs50,vs60
-+  d8: f1 12 e2 07     xvaddsp vs40,vs50,vs60
-+  dc: f1 12 e3 1f     xvcmpeqdp vs40,vs50,vs60
-+  e0: f1 12 e7 1f     xvcmpeqdp. vs40,vs50,vs60
-+  e4: f1 12 e2 1f     xvcmpeqsp vs40,vs50,vs60
-+  e8: f1 12 e6 1f     xvcmpeqsp. vs40,vs50,vs60
-+  ec: f1 12 e3 9f     xvcmpgedp vs40,vs50,vs60
-+  f0: f1 12 e7 9f     xvcmpgedp. vs40,vs50,vs60
-+  f4: f1 12 e2 9f     xvcmpgesp vs40,vs50,vs60
-+  f8: f1 12 e6 9f     xvcmpgesp. vs40,vs50,vs60
-+  fc: f1 12 e3 5f     xvcmpgtdp vs40,vs50,vs60
-+ 100: f1 12 e7 5f     xvcmpgtdp. vs40,vs50,vs60
-+ 104: f1 12 e2 5f     xvcmpgtsp vs40,vs50,vs60
-+ 108: f1 12 e6 5f     xvcmpgtsp. vs40,vs50,vs60
-+ 10c: f1 12 e7 87     xvcpsgndp vs40,vs50,vs60
-+ 110: f1 1c e7 87     xvmovdp vs40,vs60
-+ 114: f1 1c e7 87     xvmovdp vs40,vs60
-+ 118: f1 12 e6 87     xvcpsgnsp vs40,vs50,vs60
-+ 11c: f1 1c e6 87     xvmovsp vs40,vs60
-+ 120: f1 1c e6 87     xvmovsp vs40,vs60
-+ 124: f1 00 e6 27     xvcvdpsp vs40,vs60
-+ 128: f1 00 e7 63     xvcvdpsxds vs40,vs60
-+ 12c: f1 00 e3 63     xvcvdpsxws vs40,vs60
-+ 130: f1 00 e7 23     xvcvdpuxds vs40,vs60
-+ 134: f1 00 e3 23     xvcvdpuxws vs40,vs60
-+ 138: f1 00 e7 27     xvcvspdp vs40,vs60
-+ 13c: f1 00 e6 63     xvcvspsxds vs40,vs60
-+ 140: f1 00 e2 63     xvcvspsxws vs40,vs60
-+ 144: f1 00 e6 23     xvcvspuxds vs40,vs60
-+ 148: f1 00 e2 23     xvcvspuxws vs40,vs60
-+ 14c: f1 00 e7 e3     xvcvsxddp vs40,vs60
-+ 150: f1 00 e6 e3     xvcvsxdsp vs40,vs60
-+ 154: f1 00 e3 e3     xvcvsxwdp vs40,vs60
-+ 158: f1 00 e2 e3     xvcvsxwsp vs40,vs60
-+ 15c: f1 00 e7 a3     xvcvuxddp vs40,vs60
-+ 160: f1 00 e6 a3     xvcvuxdsp vs40,vs60
-+ 164: f1 00 e3 a3     xvcvuxwdp vs40,vs60
-+ 168: f1 00 e2 a3     xvcvuxwsp vs40,vs60
-+ 16c: f1 12 e3 c7     xvdivdp vs40,vs50,vs60
-+ 170: f1 12 e2 c7     xvdivsp vs40,vs50,vs60
-+ 174: f1 12 e3 0f     xvmaddadp vs40,vs50,vs60
-+ 178: f1 12 e3 4f     xvmaddmdp vs40,vs50,vs60
-+ 17c: f1 12 e2 0f     xvmaddasp vs40,vs50,vs60
-+ 180: f1 12 e2 4f     xvmaddmsp vs40,vs50,vs60
-+ 184: f1 12 e7 07     xvmaxdp vs40,vs50,vs60
-+ 188: f1 12 e6 07     xvmaxsp vs40,vs50,vs60
-+ 18c: f1 12 e7 47     xvmindp vs40,vs50,vs60
-+ 190: f1 12 e6 47     xvminsp vs40,vs50,vs60
-+ 194: f1 12 e3 8f     xvmsubadp vs40,vs50,vs60
-+ 198: f1 12 e3 cf     xvmsubmdp vs40,vs50,vs60
-+ 19c: f1 12 e2 8f     xvmsubasp vs40,vs50,vs60
-+ 1a0: f1 12 e2 cf     xvmsubmsp vs40,vs50,vs60
-+ 1a4: f1 12 e3 87     xvmuldp vs40,vs50,vs60
-+ 1a8: f1 12 e2 87     xvmulsp vs40,vs50,vs60
-+ 1ac: f1 00 e7 a7     xvnabsdp vs40,vs60
-+ 1b0: f1 00 e6 a7     xvnabssp vs40,vs60
-+ 1b4: f1 00 e7 e7     xvnegdp vs40,vs60
-+ 1b8: f1 00 e6 e7     xvnegsp vs40,vs60
-+ 1bc: f1 12 e7 0f     xvnmaddadp vs40,vs50,vs60
-+ 1c0: f1 12 e7 4f     xvnmaddmdp vs40,vs50,vs60
-+ 1c4: f1 12 e6 0f     xvnmaddasp vs40,vs50,vs60
-+ 1c8: f1 12 e6 4f     xvnmaddmsp vs40,vs50,vs60
-+ 1cc: f1 12 e7 8f     xvnmsubadp vs40,vs50,vs60
-+ 1d0: f1 12 e7 cf     xvnmsubmdp vs40,vs50,vs60
-+ 1d4: f1 12 e6 8f     xvnmsubasp vs40,vs50,vs60
-+ 1d8: f1 12 e6 cf     xvnmsubmsp vs40,vs50,vs60
-+ 1dc: f1 00 e3 27     xvrdpi  vs40,vs60
-+ 1e0: f1 00 e3 af     xvrdpic vs40,vs60
-+ 1e4: f1 00 e3 e7     xvrdpim vs40,vs60
-+ 1e8: f1 00 e3 a7     xvrdpip vs40,vs60
-+ 1ec: f1 00 e3 67     xvrdpiz vs40,vs60
-+ 1f0: f1 00 e3 6b     xvredp  vs40,vs60
-+ 1f4: f1 00 e2 6b     xvresp  vs40,vs60
-+ 1f8: f1 00 e2 27     xvrspi  vs40,vs60
-+ 1fc: f1 00 e2 af     xvrspic vs40,vs60
-+ 200: f1 00 e2 e7     xvrspim vs40,vs60
-+ 204: f1 00 e2 a7     xvrspip vs40,vs60
-+ 208: f1 00 e2 67     xvrspiz vs40,vs60
-+ 20c: f1 00 e3 2b     xvrsqrtedp vs40,vs60
-+ 210: f1 00 e2 2b     xvrsqrtesp vs40,vs60
-+ 214: f1 00 e3 2f     xvsqrtdp vs40,vs60
-+ 218: f1 00 e2 2f     xvsqrtsp vs40,vs60
-+ 21c: f1 12 e3 47     xvsubdp vs40,vs50,vs60
-+ 220: f1 12 e2 47     xvsubsp vs40,vs50,vs60
-+ 224: f0 92 e3 ee     xvtdivdp cr1,vs50,vs60
-+ 228: f0 92 e2 ee     xvtdivsp cr1,vs50,vs60
-+ 22c: f0 80 e3 aa     xvtsqrtdp cr1,vs60
-+ 230: f0 80 e2 aa     xvtsqrtsp cr1,vs60
-+ 234: f1 12 e4 17     xxland  vs40,vs50,vs60
-+ 238: f1 12 e4 57     xxlandc vs40,vs50,vs60
-+ 23c: f1 12 e5 17     xxlnor  vs40,vs50,vs60
-+ 240: f1 12 e4 97     xxlor   vs40,vs50,vs60
-+ 244: f1 12 e4 d7     xxlxor  vs40,vs50,vs60
-+ 248: f1 12 e0 97     xxmrghw vs40,vs50,vs60
-+ 24c: f1 12 e1 97     xxmrglw vs40,vs50,vs60
-+ 250: f1 12 e0 57     xxmrghd vs40,vs50,vs60
-+ 254: f1 12 e1 57     xxpermdi vs40,vs50,vs60,1
-+ 258: f1 12 e2 57     xxpermdi vs40,vs50,vs60,2
-+ 25c: f1 12 e3 57     xxmrgld vs40,vs50,vs60
-+ 260: f1 12 90 57     xxspltd vs40,vs50,0
-+ 264: f1 12 90 57     xxspltd vs40,vs50,0
-+ 268: f1 12 93 57     xxspltd vs40,vs50,1
-+ 26c: f1 12 93 57     xxspltd vs40,vs50,1
-+ 270: f1 12 e0 57     xxmrghd vs40,vs50,vs60
-+ 274: f1 12 e0 57     xxmrghd vs40,vs50,vs60
-+ 278: f1 12 e3 57     xxmrgld vs40,vs50,vs60
-+ 27c: f1 12 92 57     xxswapd vs40,vs50
-+ 280: f1 12 92 57     xxswapd vs40,vs50
-+ 284: f1 12 e7 bf     xxsel   vs40,vs50,vs60,vs62
-+ 288: f1 12 e2 17     xxsldwi vs40,vs50,vs60,2
-+ 28c: f1 02 e2 93     xxspltw vs40,vs60,2
-diff -Naur binutils-2.19.1.orig/gas/testsuite/gas/ppc/vsx.s binutils-2.19.1/gas/testsuite/gas/ppc/vsx.s
---- binutils-2.19.1.orig/gas/testsuite/gas/ppc/vsx.s   1969-12-31 16:00:00.000000000 -0800
-+++ binutils-2.19.1/gas/testsuite/gas/ppc/vsx.s        2009-03-02 05:59:36.000000000 -0800
-@@ -0,0 +1,166 @@
-+      .section        ".text"
-+start:
-+      lxsdx      40,10,20
-+      lxsdux     40,10,20
-+      lxvd2x     40,10,20
-+      lxvd2ux    40,10,20
-+      lxvdsx     40,10,20
-+      lxvw4x     40,10,20
-+      lxvw4ux    40,10,20
-+      stxsdx     40,10,20
-+      stxsdux    40,10,20
-+      stxvd2x    40,10,20
-+      stxvd2ux   40,10,20
-+      stxvw4x    40,10,20
-+      stxvw4ux   40,10,20
-+      xsabsdp    40,60
-+      xsadddp    40,50,60
-+      xscmpodp   1,50,60
-+      xscmpudp   1,50,60
-+      xscpsgndp  40,50,60
-+      xscvdpsp   40,60
-+      xscvdpsxds 40,60
-+      xscvdpsxws 40,60
-+      xscvdpuxds 40,60
-+      xscvdpuxws 40,60
-+      xscvspdp   40,60
-+      xscvsxddp  40,60
-+      xscvuxddp  40,60
-+      xsdivdp    40,50,60
-+      xsmaddadp  40,50,60
-+      xsmaddmdp  40,50,60
-+      xsmaxdp    40,50,60
-+      xsmindp    40,50,60
-+      xsmsubadp  40,50,60
-+      xsmsubmdp  40,50,60
-+      xsmuldp    40,50,60
-+      xsnabsdp   40,60
-+      xsnegdp    40,60
-+      xsnmaddadp 40,50,60
-+      xsnmaddmdp 40,50,60
-+      xsnmsubadp 40,50,60
-+      xsnmsubmdp 40,50,60
-+      xsrdpi     40,60
-+      xsrdpic    40,60
-+      xsrdpim    40,60
-+      xsrdpip    40,60
-+      xsrdpiz    40,60
-+      xsredp     40,60
-+      xsrsqrtedp 40,60
-+      xssqrtdp   40,60
-+      xssubdp    40,50,60
-+      xstdivdp   1,50,60
-+      xstsqrtdp  1,60
-+      xvabsdp    40,60
-+      xvabssp    40,60
-+      xvadddp    40,50,60
-+      xvaddsp    40,50,60
-+      xvcmpeqdp  40,50,60
-+      xvcmpeqdp. 40,50,60
-+      xvcmpeqsp  40,50,60
-+      xvcmpeqsp. 40,50,60
-+      xvcmpgedp  40,50,60
-+      xvcmpgedp. 40,50,60
-+      xvcmpgesp  40,50,60
-+      xvcmpgesp. 40,50,60
-+      xvcmpgtdp  40,50,60
-+      xvcmpgtdp. 40,50,60
-+      xvcmpgtsp  40,50,60
-+      xvcmpgtsp. 40,50,60
-+      xvcpsgndp  40,50,60
-+      xvmovdp    40,60
-+      xvcpsgndp  40,60,60
-+      xvcpsgnsp  40,50,60
-+      xvmovsp    40,60
-+      xvcpsgnsp  40,60,60
-+      xvcvdpsp   40,60
-+      xvcvdpsxds 40,60
-+      xvcvdpsxws 40,60
-+      xvcvdpuxds 40,60
-+      xvcvdpuxws 40,60
-+      xvcvspdp   40,60
-+      xvcvspsxds 40,60
-+      xvcvspsxws 40,60
-+      xvcvspuxds 40,60
-+      xvcvspuxws 40,60
-+      xvcvsxddp  40,60
-+      xvcvsxdsp  40,60
-+      xvcvsxwdp  40,60
-+      xvcvsxwsp  40,60
-+      xvcvuxddp  40,60
-+      xvcvuxdsp  40,60
-+      xvcvuxwdp  40,60
-+      xvcvuxwsp  40,60
-+      xvdivdp    40,50,60
-+      xvdivsp    40,50,60
-+      xvmaddadp  40,50,60
-+      xvmaddmdp  40,50,60
-+      xvmaddasp  40,50,60
-+      xvmaddmsp  40,50,60
-+      xvmaxdp    40,50,60
-+      xvmaxsp    40,50,60
-+      xvmindp    40,50,60
-+      xvminsp    40,50,60
-+      xvmsubadp  40,50,60
-+      xvmsubmdp  40,50,60
-+      xvmsubasp  40,50,60
-+      xvmsubmsp  40,50,60
-+      xvmuldp    40,50,60
-+      xvmulsp    40,50,60
-+      xvnabsdp   40,60
-+      xvnabssp   40,60
-+      xvnegdp    40,60
-+      xvnegsp    40,60
-+      xvnmaddadp 40,50,60
-+      xvnmaddmdp 40,50,60
-+      xvnmaddasp 40,50,60
-+      xvnmaddmsp 40,50,60
-+      xvnmsubadp 40,50,60
-+      xvnmsubmdp 40,50,60
-+      xvnmsubasp 40,50,60
-+      xvnmsubmsp 40,50,60
-+      xvrdpi     40,60
-+      xvrdpic    40,60
-+      xvrdpim    40,60
-+      xvrdpip    40,60
-+      xvrdpiz    40,60
-+      xvredp     40,60
-+      xvresp     40,60
-+      xvrspi     40,60
-+      xvrspic    40,60
-+      xvrspim    40,60
-+      xvrspip    40,60
-+      xvrspiz    40,60
-+      xvrsqrtedp 40,60
-+      xvrsqrtesp 40,60
-+      xvsqrtdp   40,60
-+      xvsqrtsp   40,60
-+      xvsubdp    40,50,60
-+      xvsubsp    40,50,60
-+      xvtdivdp   1,50,60
-+      xvtdivsp   1,50,60
-+      xvtsqrtdp  1,60
-+      xvtsqrtsp  1,60
-+      xxland     40,50,60
-+      xxlandc    40,50,60
-+      xxlnor     40,50,60
-+      xxlor      40,50,60
-+      xxlxor     40,50,60
-+      xxmrghw    40,50,60
-+      xxmrglw    40,50,60
-+      xxpermdi   40,50,60,0b00
-+      xxpermdi   40,50,60,0b01
-+      xxpermdi   40,50,60,0b10
-+      xxpermdi   40,50,60,0b11
-+      xxspltd    40,50,0
-+      xxpermdi   40,50,50,0b00
-+      xxspltd    40,50,1
-+      xxpermdi   40,50,50,0b11
-+      xxmrghd    40,50,60
-+      xxpermdi   40,50,60,0b00
-+      xxmrgld    40,50,60
-+      xxpermdi   40,50,50,0b10
-+      xxswapd    40,50
-+      xxsel      40,50,60,62
-+      xxsldwi    40,50,60,2
-+      xxspltw    40,60,2
-diff -Naur binutils-2.19.1.orig/include/elf/ChangeLog binutils-2.19.1/include/elf/ChangeLog
---- binutils-2.19.1.orig/include/elf/ChangeLog 2008-08-20 16:28:58.000000000 -0700
-+++ binutils-2.19.1/include/elf/ChangeLog      2009-03-02 05:41:07.000000000 -0800
-@@ -1,3 +1,11 @@
-+2009-03-02  Alan Modra  <amodra@bigpond.net.au>
-+
-+      2008-11-14  Nathan Sidwell  <nathan@codesourcery.com>
-+      * internal.h (struct elf_segment_map): Add header_size field.
-+ 
-+      2008-10-10  Nathan Froyd  <froydnj@codesourcery.com>
-+      * ppc.h: Add Tag_GNU_Power_ABI_Struct_Return.
-+
- 2008-08-20  Bob Wilson  <bob.wilson@acm.org>
-       * xtensa.h (R_XTENSA_TLSDESC_FN, R_XTENSA_TLSDESC_ARG)
-diff -Naur binutils-2.19.1.orig/include/elf/internal.h binutils-2.19.1/include/elf/internal.h
---- binutils-2.19.1.orig/include/elf/internal.h        2008-03-12 22:27:41.000000000 -0700
-+++ binutils-2.19.1/include/elf/internal.h     2009-03-02 05:41:07.000000000 -0800
-@@ -266,6 +266,8 @@
-   bfd_vma p_align;
-   /* Segment size in file and memory */
-   bfd_vma p_size;
-+  /* Required size of filehdr + phdrs, if non-zero */
-+  bfd_vma header_size;
-   /* Whether the p_flags field is valid; if not, the flags are based
-      on the section flags.  */
-   unsigned int p_flags_valid : 1;
-diff -Naur binutils-2.19.1.orig/include/elf/ppc.h binutils-2.19.1/include/elf/ppc.h
---- binutils-2.19.1.orig/include/elf/ppc.h     2008-07-26 06:10:47.000000000 -0700
-+++ binutils-2.19.1/include/elf/ppc.h  2009-03-02 05:35:25.000000000 -0800
-@@ -186,6 +186,11 @@
-      registers, 3 for SPE registers; 0 for not tagged or not using any
-      ABIs affected by the differences.  */
-   Tag_GNU_Power_ABI_Vector = 8,
-+
-+  /* Value 1 for ABIs using r3/r4 for returning structures <= 8 bytes,
-+     2 for ABIs using memory; 0 for not tagged or not using any ABIs
-+     affected by the differences.  */
-+  Tag_GNU_Power_ABI_Struct_Return = 12
- };
- #endif /* _ELF_PPC_H */
-diff -Naur binutils-2.19.1.orig/include/opcode/ChangeLog binutils-2.19.1/include/opcode/ChangeLog
---- binutils-2.19.1.orig/include/opcode/ChangeLog      2008-08-28 07:07:48.000000000 -0700
-+++ binutils-2.19.1/include/opcode/ChangeLog   2009-03-02 05:59:36.000000000 -0800
-@@ -1,3 +1,12 @@
-+2009-03-02  Alan Modra  <amodra@bigpond.net.au>
-+
-+      2009-02-26  Peter Bergner  <bergner@vnet.ibm.com>
-+      * ppc.h (PPC_OPCODE_POWER7): New.
-+
-+      2009-01-09  Peter Bergner  <bergner@vnet.ibm.com>
-+      * ppc.h (struct powerpc_opcode): New field "deprecated".
-+      (PPC_OPCODE_NOPOWER4): Delete.
-+
- 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
-       * ia64.h (ia64_resource_specifier): Add IA64_RS_CR_IIB.  Update
-diff -Naur binutils-2.19.1.orig/include/opcode/ppc.h binutils-2.19.1/include/opcode/ppc.h
---- binutils-2.19.1.orig/include/opcode/ppc.h  2008-08-01 21:38:51.000000000 -0700
-+++ binutils-2.19.1/include/opcode/ppc.h       2009-03-02 05:59:36.000000000 -0800
-@@ -46,6 +46,11 @@
-      are listed below.  */
-   ppc_cpu_t flags;
-+  /* One bit flags for the opcode.  These are used to indicate which
-+     specific processors no longer support the instructions.  The defined
-+     values are listed below.  */
-+  ppc_cpu_t deprecated;
-+
-   /* An array of operand codes.  Each code is an index into the
-      operand table.  They appear in the order which the operands must
-      appear in assembly code, and are terminated by a zero.  */
-@@ -109,8 +114,8 @@
- /* Opcode is only supported by Power4 architecture.  */
- #define PPC_OPCODE_POWER4         0x4000
--/* Opcode isn't supported by Power4 architecture.  */
--#define PPC_OPCODE_NOPOWER4       0x8000
-+/* Opcode is only supported by Power7 architecture.  */
-+#define PPC_OPCODE_POWER7         0x8000
- /* Opcode is only supported by POWERPC Classic architecture.  */
- #define PPC_OPCODE_CLASSIC       0x10000
-diff -Naur binutils-2.19.1.orig/ld/ChangeLog binutils-2.19.1/ld/ChangeLog
---- binutils-2.19.1.orig/ld/ChangeLog  2009-02-02 02:31:31.000000000 -0800
-+++ binutils-2.19.1/ld/ChangeLog       2009-03-02 05:56:19.000000000 -0800
-@@ -1,3 +1,65 @@
-+2009-03-02  Alan Modra  <amodra@bigpond.net.au>
-+
-+      2009-02-16  Alan Modra  <amodra@bigpond.net.au>
-+      * ldlang.c (push_stat_ptr, pop_stat_ptr): New functions.
-+      (stat_save, stat_save_ptr): New variables.
-+      (lang_insert_orphan): Use push_stat_ptr and pop_stat_ptr.
-+      (load_symbols): Likewise.  Delete dead "bad_load" code.
-+      (open_input_bfds): Warn on script containing output sections.
-+      (lang_enter_output_section_statement): Use push_stat_ptr.
-+      (lang_enter_group): Likewise.
-+      (lang_leave_output_section_statement): Use pop_stat_ptr.
-+      (lang_leave_group): Likewise.
-+      * ldlang.h (push_stat_ptr, pop_stat_ptr): Declare.
-+      * ldctor.c (ldctor_build_sets): Use push_stat_ptr and pop_stat_ptr.
-+      * emultempl/beos.em (gld_${EMULATION_NAME}_set_symbols): Likewise.
-+      * emultempl/pe.em (gld_${EMULATION_NAME}_set_symbols): Likewise.
-+      * emultempl/pep.em (gld_${EMULATION_NAME}_set_symbols): Likewise.
-+      * emultempl/xtensaelf.em (ld_xtensa_insert_page_offsets): Likewise.
-+
-+      2008-10-04  Alan Modra  <amodra@bigpond.net.au>
-+      PR 6931
-+      * ldemul.c (ldemul_place_orphan): Add "constraint" param.
-+      * ldemul.h (ldemul_place_orphan): Update prototype.
-+      (struct ld_emulation_xfer_struct <place_orphan>): Likewise add param.
-+      * ldlang.c (unique_section_p): Make static.
-+      (lang_output_section_statement_lookup): Optimise creation of SPECIAL
-+      sections.
-+      (lang_insert_orphan): Add "constraint" param.  Pass to
-+      lang_enter_output_section_statement.
-+      (init_os): Don't use an existing bfd section for SPECIAL sections.
-+      (lang_place_orphans): Don't rename unique output sections, instead
-+      mark their output section statements SPECIAL.
-+      * ldlang.h (lang_insert_orphan): Update prototype.
-+      (unique_section_p): Delete.
-+      * emultempl/beos.em (place_orphan): Add "constraint" param.
-+      * emultempl/elf32.em (place_orphan): Likewise.  Don't match existing
-+      output sections if set.
-+      * emultempl/pe.em (place_orphan): Likewise.
-+      * emultempl/pep.em (place_orphan): Likewise.
-+      * emultempl/mmo.em (mmo_place_orphan): Update.
-+      * emultempl/spuelf.em (spu_place_special_section): Update.
-+
-+      2008-10-03  Alan Modra  <amodra@bigpond.net.au>
-+      PR 6931
-+      * ldemul.c (ldemul_place_orphan): Add "name" param.
-+      * ldemul.h (ldemul_place_orphan): Update prototype.
-+      (struct ld_emulation_xfer_struct <place_orphan>): Likewise.
-+      * ldlang.c (lang_place_orphans): Generate unique section names here..
-+      * emultempl/elf32.em (place_orphan): ..rather than here.  Don't
-+      directly use an existing output section statement that has no
-+      bfd section.
-+      * emultempl/pe.em (place_orphan): Likewise.
-+      * emultempl/pep.em (place_orphan): Likewise.
-+      * emultempl/beos.em (place_orphan): Adjust.
-+      * emultempl/spuelf.em (spu_place_special_section): Adjust
-+      place_orphan call.
-+      * emultempl/genelf.em (gld${EMULATION_NAME}_after_open): New function.
-+      (LDEMUL_AFTER_OPEN): Define.
-+
-+      2008-09-25  Alan Modra  <amodra@bigpond.net.au>
-+      * ldexp.c (fold_binary): Evaluate rhs when lhs not valid.
-+
- 2009-02-02  Tristan Gingold  <gingold@adacore.com>
-       * deffilep.c: Add autogenerated file.
-diff -Naur binutils-2.19.1.orig/ld/emultempl/beos.em binutils-2.19.1/ld/emultempl/beos.em
---- binutils-2.19.1.orig/ld/emultempl/beos.em  2008-09-08 17:10:16.000000000 -0700
-+++ binutils-2.19.1/ld/emultempl/beos.em       2009-03-02 05:56:19.000000000 -0800
-@@ -8,7 +8,7 @@
- fragment <<EOF
- /* This file is part of GLD, the Gnu Linker.
-    Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
--   2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-+   2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-    This file is part of the GNU Binutils.
-@@ -330,7 +330,6 @@
-   /* Run through and invent symbols for all the
-      names and insert the defaults. */
-   int j;
--  lang_statement_list_type *save;
-   if (!init[IMAGEBASEOFF].inited)
-     {
-@@ -347,9 +346,7 @@
-     return;
-   /* Glue the assignments into the abs section */
--  save = stat_ptr;
--
--  stat_ptr = &(abs_output_section->children);
-+  push_stat_ptr (&abs_output_section->children);
-   for (j = 0; init[j].ptr; j++)
-     {
-@@ -367,7 +364,7 @@
-       else    abort();
-     }
-   /* Restore the pointer. */
--  stat_ptr = save;
-+  pop_stat_ptr ();
-   if (pe.FileAlignment >
-       pe.SectionAlignment)
-@@ -609,8 +606,6 @@
- static void
- gld_${EMULATION_NAME}_before_allocation (void)
- {
--  extern lang_statement_list_type *stat_ptr;
--
- #ifdef TARGET_IS_ppcpe
-   /* Here we rummage through the found bfds to collect toc information */
-   {
-@@ -665,9 +660,10 @@
-    which are not mentioned in the linker script.  */
- static bfd_boolean
--gld${EMULATION_NAME}_place_orphan (asection *s)
-+gld${EMULATION_NAME}_place_orphan (asection *s,
-+                                 const char *secname,
-+                                 int constraint)
- {
--  const char *secname;
-   char *output_secname, *ps;
-   lang_output_section_statement_type *os;
-   lang_statement_union_type *l;
-@@ -682,8 +678,6 @@
-   if (link_info.relocatable)
-     return FALSE;
--  secname = bfd_get_section_name (s->owner, s);
--
-   /* Everything from the '\$' on gets deleted so don't allow '\$' as the
-      first character.  */
-   if (*secname == '\$')
-@@ -697,7 +691,7 @@
-   output_secname = xstrdup (secname);
-   ps = strchr (output_secname + 1, '\$');
-   *ps = 0;
--  os = lang_output_section_statement_lookup (output_secname, 0, TRUE);
-+  os = lang_output_section_statement_lookup (output_secname, constraint, TRUE);
-   /* Find the '\$' wild statement for this section.  We currently require the
-      linker script to explicitly mention "*(.foo\$)".
-diff -Naur binutils-2.19.1.orig/ld/emultempl/elf32.em binutils-2.19.1/ld/emultempl/elf32.em
---- binutils-2.19.1.orig/ld/emultempl/elf32.em 2008-09-06 21:02:31.000000000 -0700
-+++ binutils-2.19.1/ld/emultempl/elf32.em      2009-03-02 05:34:03.000000000 -0800
-@@ -62,7 +62,8 @@
- static void gld${EMULATION_NAME}_before_parse (void);
- static void gld${EMULATION_NAME}_after_open (void);
- static void gld${EMULATION_NAME}_before_allocation (void);
--static bfd_boolean gld${EMULATION_NAME}_place_orphan (asection *s);
-+static bfd_boolean gld${EMULATION_NAME}_place_orphan
-+  (asection *, const char *, int);
- static void gld${EMULATION_NAME}_finish (void);
- EOF
-@@ -1635,7 +1636,9 @@
-    sections in the right segment.  */
- static bfd_boolean
--gld${EMULATION_NAME}_place_orphan (asection *s)
-+gld${EMULATION_NAME}_place_orphan (asection *s,
-+                                 const char *secname,
-+                                 int constraint)
- {
-   static struct orphan_save hold[] =
-     {
-@@ -1673,15 +1676,12 @@
-     };
-   static int orphan_init_done = 0;
-   struct orphan_save *place;
--  const char *secname;
-   lang_output_section_statement_type *after;
-   lang_output_section_statement_type *os;
-   int isdyn = 0;
-   int iself = s->owner->xvec->flavour == bfd_target_elf_flavour;
-   unsigned int sh_type = iself ? elf_section_type (s) : SHT_NULL;
--  secname = bfd_get_section_name (s->owner, s);
--
-   if (! link_info.relocatable
-       && link_info.combreloc
-       && (s->flags & SEC_ALLOC))
-@@ -1707,28 +1707,23 @@
-       }
-     }
--  if (isdyn || (!config.unique_orphan_sections && !unique_section_p (s)))
--    {
--      /* Look through the script to see where to place this section.  */
--      os = lang_output_section_find (secname);
--
--      if (os != NULL
--        && (os->bfd_section == NULL
--            || os->bfd_section->flags == 0
--            || (_bfd_elf_match_sections_by_type (link_info.output_bfd,
--                                                 os->bfd_section,
--                                                 s->owner, s)
--                && ((s->flags ^ os->bfd_section->flags)
--                    & (SEC_LOAD | SEC_ALLOC)) == 0)))
--      {
--        /* We already have an output section statement with this
--           name, and its bfd section, if any, has compatible flags.
--           If the section already exists but does not have any flags
--           set, then it has been created by the linker, probably as a
--           result of a --section-start command line switch.  */
--        lang_add_section (&os->children, s, os);
--        return TRUE;
--      }
-+  /* Look through the script to see where to place this section.  */
-+  if (constraint == 0
-+      && (os = lang_output_section_find (secname)) != NULL
-+      && os->bfd_section != NULL
-+      && (os->bfd_section->flags == 0
-+        || (_bfd_elf_match_sections_by_type (link_info.output_bfd,
-+                                             os->bfd_section, s->owner, s)
-+            && ((s->flags ^ os->bfd_section->flags)
-+                & (SEC_LOAD | SEC_ALLOC)) == 0)))
-+    {
-+      /* We already have an output section statement with this
-+       name, and its bfd section has compatible flags.
-+       If the section already exists but does not have any flags
-+       set, then it has been created by the linker, probably as a
-+       result of a --section-start command line switch.  */
-+      lang_add_section (&os->children, s, os);
-+      return TRUE;
-     }
-   if (!orphan_init_done)
-@@ -1748,7 +1743,7 @@
-      sections into the .text section to get them out of the way.  */
-   if (link_info.executable
-       && ! link_info.relocatable
--      && CONST_STRNEQ (secname, ".gnu.warning.")
-+      && CONST_STRNEQ (s->name, ".gnu.warning.")
-       && hold[orphan_text].os != NULL)
-     {
-       lang_add_section (&hold[orphan_text].os->children, s,
-@@ -1803,19 +1798,7 @@
-       after = &lang_output_section_statement.head->output_section_statement;
-     }
--  /* Choose a unique name for the section.  This will be needed if the
--     same section name appears in the input file with different
--     loadable or allocatable characteristics.  */
--  if (bfd_get_section_by_name (link_info.output_bfd, secname) != NULL)
--    {
--      static int count = 1;
--      secname = bfd_get_unique_section_name (link_info.output_bfd,
--                                           secname, &count);
--      if (secname == NULL)
--      einfo ("%F%P: place_orphan failed: %E\n");
--    }
--
--  lang_insert_orphan (s, secname, after, place, NULL, NULL);
-+  lang_insert_orphan (s, secname, constraint, after, place, NULL, NULL);
-   return TRUE;
- }
-diff -Naur binutils-2.19.1.orig/ld/emultempl/genelf.em binutils-2.19.1/ld/emultempl/genelf.em
---- binutils-2.19.1.orig/ld/emultempl/genelf.em        2007-07-19 12:56:10.000000000 -0700
-+++ binutils-2.19.1/ld/emultempl/genelf.em     2009-03-02 05:32:55.000000000 -0800
-@@ -34,7 +34,27 @@
-   gld${EMULATION_NAME}_map_segments (FALSE);
-   finish_default ();
- }
-+
-+static void
-+gld${EMULATION_NAME}_after_open (void)
-+{
-+  bfd *ibfd;
-+  asection *sec;
-+  asymbol **syms;
-+
-+  if (link_info.relocatable)
-+    for (ibfd = link_info.input_bfds; ibfd != NULL; ibfd = ibfd->link_next)
-+      if ((syms = bfd_get_outsymbols (ibfd)) != NULL
-+        && bfd_get_flavour (ibfd) == bfd_target_elf_flavour)
-+      for (sec = ibfd->sections; sec != NULL; sec = sec->next)
-+        if ((sec->flags & (SEC_GROUP | SEC_LINKER_CREATED)) == SEC_GROUP)
-+          {
-+            struct bfd_elf_section_data *sec_data = elf_section_data (sec);
-+            elf_group_id (sec) = syms[sec_data->this_hdr.sh_info - 1];
-+          }
-+}
- EOF
- # Put these extra routines in ld_${EMULATION_NAME}_emulation
- #
- LDEMUL_FINISH=gld${EMULATION_NAME}_finish
-+LDEMUL_AFTER_OPEN=gld${EMULATION_NAME}_after_open
-diff -Naur binutils-2.19.1.orig/ld/emultempl/mmo.em binutils-2.19.1/ld/emultempl/mmo.em
---- binutils-2.19.1.orig/ld/emultempl/mmo.em   2008-02-14 19:35:53.000000000 -0800
-+++ binutils-2.19.1/ld/emultempl/mmo.em        2009-03-02 05:34:03.000000000 -0800
-@@ -47,7 +47,9 @@
-    from elf32.em.  */
- static bfd_boolean
--mmo_place_orphan (asection *s)
-+mmo_place_orphan (asection *s,
-+                const char *secname,
-+                int constraint ATTRIBUTE_UNUSED)
- {
-   static struct orphan_save hold_text =
-     {
-@@ -56,7 +58,6 @@
-       0, 0, 0, 0
-     };
-   struct orphan_save *place;
--  const char *secname;
-   lang_output_section_statement_type *after;
-   lang_output_section_statement_type *os;
-@@ -66,7 +67,6 @@
-     return FALSE;
-   /* Only care for sections we're going to load.  */
--  secname = s->name;
-   os = lang_output_section_find (secname);
-   /* We have an output section by this name.  Place the section inside it
-@@ -93,7 +93,7 @@
-   /* If there's an output section by this name, we'll use it, regardless
-      of section flags, in contrast to what's done in elf32.em.  */
--  os = lang_insert_orphan (s, secname, after, place, NULL, NULL);
-+  os = lang_insert_orphan (s, secname, 0, after, place, NULL, NULL);
-   /* We need an output section for .text as a root, so if there was none
-      (might happen with a peculiar linker script such as in "map
-diff -Naur binutils-2.19.1.orig/ld/emultempl/pe.em binutils-2.19.1/ld/emultempl/pe.em
---- binutils-2.19.1.orig/ld/emultempl/pe.em    2008-09-09 02:49:56.000000000 -0700
-+++ binutils-2.19.1/ld/emultempl/pe.em 2009-03-02 05:56:19.000000000 -0800
-@@ -10,7 +10,7 @@
- (echo;echo;echo;echo;echo)>e${EMULATION_NAME}.c # there, now line numbers match ;-)
- fragment <<EOF
- /* Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
--   2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-+   2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-    This file is part of the GNU Binutils.
-@@ -697,7 +697,6 @@
-   /* Run through and invent symbols for all the
-      names and insert the defaults.  */
-   int j;
--  lang_statement_list_type *save;
-   if (!init[IMAGEBASEOFF].inited)
-     {
-@@ -720,9 +719,7 @@
-     return;
-   /* Glue the assignments into the abs section.  */
--  save = stat_ptr;
--
--  stat_ptr = &(abs_output_section->children);
-+  push_stat_ptr (&abs_output_section->children);
-   for (j = 0; init[j].ptr; j++)
-     {
-@@ -744,7 +741,7 @@
-       image_base_statement = rv;
-     }
-   /* Restore the pointer.  */
--  stat_ptr = save;
-+  pop_stat_ptr ();
-   if (pe.FileAlignment >
-       pe.SectionAlignment)
-@@ -1613,40 +1610,37 @@
-    sort_sections.  */
- static bfd_boolean
--gld_${EMULATION_NAME}_place_orphan (asection *s)
-+gld_${EMULATION_NAME}_place_orphan (asection *s,
-+                                  const char *secname,
-+                                  int constraint)
- {
--  const char *secname;
--  const char *orig_secname;
-+  const char *orig_secname = secname;
-   char *dollar = NULL;
-   lang_output_section_statement_type *os;
-   lang_statement_list_type add_child;
--  secname = bfd_get_section_name (s->owner, s);
--
-   /* Look through the script to see where to place this section.  */
--  orig_secname = secname;
-   if (!link_info.relocatable
-       && (dollar = strchr (secname, '$')) != NULL)
-     {
--      size_t len = dollar - orig_secname;
-+      size_t len = dollar - secname;
-       char *newname = xmalloc (len + 1);
--      memcpy (newname, orig_secname, len);
-+      memcpy (newname, secname, len);
-       newname[len] = '\0';
-       secname = newname;
-     }
--  os = lang_output_section_find (secname);
--
-   lang_list_init (&add_child);
--  if (os != NULL
--      && (os->bfd_section == NULL
--        || os->bfd_section->flags == 0
-+  if (constraint == 0
-+      && (os = lang_output_section_find (secname)) != NULL
-+      && os->bfd_section != NULL
-+      && (os->bfd_section->flags == 0
-         || ((s->flags ^ os->bfd_section->flags)
-             & (SEC_LOAD | SEC_ALLOC)) == 0))
-     {
-       /* We already have an output section statement with this
--       name, and its bfd section, if any, has compatible flags.
-+       name, and its bfd section has compatible flags.
-        If the section already exists but does not have any flags set,
-        then it has been created by the linker, probably as a result of
-        a --section-start command line switch.  */
-@@ -1723,21 +1717,10 @@
-                    ->output_section_statement);
-       }
--      /* Choose a unique name for the section.  This will be needed if the
--       same section name appears in the input file with different
--       loadable or allocatable characteristics.  */
--      if (bfd_get_section_by_name (link_info.output_bfd, secname) != NULL)
--      {
--        static int count = 1;
--        secname = bfd_get_unique_section_name (link_info.output_bfd,
--                                               secname, &count);
--        if (secname == NULL)
--          einfo ("%F%P: place_orphan failed: %E\n");
--      }
--
-       /* All sections in an executable must be aligned to a page boundary.  */
-       address = exp_unop (ALIGN_K, exp_nameop (NAME, "__section_alignment__"));
--      os = lang_insert_orphan (s, secname, after, place, address, &add_child);
-+      os = lang_insert_orphan (s, secname, constraint, after, place, address,
-+                             &add_child);
-     }
-   {
-diff -Naur binutils-2.19.1.orig/ld/emultempl/pep.em binutils-2.19.1/ld/emultempl/pep.em
---- binutils-2.19.1.orig/ld/emultempl/pep.em   2008-09-09 02:49:56.000000000 -0700
-+++ binutils-2.19.1/ld/emultempl/pep.em        2009-03-02 05:56:19.000000000 -0800
-@@ -9,7 +9,7 @@
- rm -f e${EMULATION_NAME}.c
- (echo;echo;echo;echo;echo)>e${EMULATION_NAME}.c # there, now line numbers match ;-)
- fragment <<EOF
--/* Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
-+/* Copyright 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-    Written by Kai Tietz, OneVision Software GmbH&CoKg.
-    This file is part of the GNU Binutils.
-@@ -657,7 +657,6 @@
-   /* Run through and invent symbols for all the
-      names and insert the defaults.  */
-   int j;
--  lang_statement_list_type *save;
-   if (!init[IMAGEBASEOFF].inited)
-     {
-@@ -680,9 +679,7 @@
-     return;
-   /* Glue the assignments into the abs section.  */
--  save = stat_ptr;
--
--  stat_ptr = &(abs_output_section->children);
-+  push_stat_ptr (&abs_output_section->children);
-   for (j = 0; init[j].ptr; j++)
-     {
-@@ -704,7 +701,7 @@
-       image_base_statement = rv;
-     }
-   /* Restore the pointer.  */
--  stat_ptr = save;
-+  pop_stat_ptr ();
-   if (pep.FileAlignment > pep.SectionAlignment)
-     {
-@@ -1372,40 +1369,37 @@
-    sort_sections.  */
- static bfd_boolean
--gld_${EMULATION_NAME}_place_orphan (asection *s)
-+gld_${EMULATION_NAME}_place_orphan (asection *s,
-+                                  const char *secname,
-+                                  int constraint)
- {
--  const char *secname;
--  const char *orig_secname;
-+  const char *orig_secname = secname;
-   char *dollar = NULL;
-   lang_output_section_statement_type *os;
-   lang_statement_list_type add_child;
--  secname = bfd_get_section_name (s->owner, s);
--
-   /* Look through the script to see where to place this section.  */
--  orig_secname = secname;
-   if (!link_info.relocatable
-       && (dollar = strchr (secname, '$')) != NULL)
-     {
--      size_t len = dollar - orig_secname;
-+      size_t len = dollar - secname;
-       char *newname = xmalloc (len + 1);
--      memcpy (newname, orig_secname, len);
-+      memcpy (newname, secname, len);
-       newname[len] = '\0';
-       secname = newname;
-     }
--  os = lang_output_section_find (secname);
--
-   lang_list_init (&add_child);
--  if (os != NULL
--      && (os->bfd_section == NULL
--        || os->bfd_section->flags == 0
-+  if (constraint == 0
-+      && (os = lang_output_section_find (secname)) != NULL
-+      && os->bfd_section != NULL
-+      && (os->bfd_section->flags == 0
-         || ((s->flags ^ os->bfd_section->flags)
-             & (SEC_LOAD | SEC_ALLOC)) == 0))
-     {
-       /* We already have an output section statement with this
--       name, and its bfd section, if any, has compatible flags.
-+       name, and its bfd section has compatible flags.
-        If the section already exists but does not have any flags set,
-        then it has been created by the linker, probably as a result of
-        a --section-start command line switch.  */
-@@ -1482,21 +1476,10 @@
-                    ->output_section_statement);
-       }
--      /* Choose a unique name for the section.  This will be needed if the
--       same section name appears in the input file with different
--       loadable or allocatable characteristics.  */
--      if (bfd_get_section_by_name (link_info.output_bfd, secname) != NULL)
--      {
--        static int count = 1;
--        secname = bfd_get_unique_section_name (link_info.output_bfd,
--                                               secname, &count);
--        if (secname == NULL)
--          einfo ("%F%P: place_orphan failed: %E\n");
--      }
--
-       /* All sections in an executable must be aligned to a page boundary.  */
-       address = exp_unop (ALIGN_K, exp_nameop (NAME, "__section_alignment__"));
--      os = lang_insert_orphan (s, secname, after, place, address, &add_child);
-+      os = lang_insert_orphan (s, secname, constraint, after, place, address,
-+                             &add_child);
-     }
-   {
-diff -Naur binutils-2.19.1.orig/ld/emultempl/spuelf.em binutils-2.19.1/ld/emultempl/spuelf.em
---- binutils-2.19.1.orig/ld/emultempl/spuelf.em        2008-08-02 09:25:44.000000000 -0700
-+++ binutils-2.19.1/ld/emultempl/spuelf.em     2009-03-02 05:34:03.000000000 -0800
-@@ -114,12 +114,7 @@
-   os = lang_output_section_find (o != NULL ? o->name : output_name);
-   if (os == NULL)
--    {
--      const char *save = s->name;
--      s->name = output_name;
--      gld${EMULATION_NAME}_place_orphan (s);
--      s->name = save;
--    }
-+    gld${EMULATION_NAME}_place_orphan (s, output_name, 0);
-   else if (o != NULL && os->children.head != NULL)
-     {
-       lang_statement_list_type add;
-diff -Naur binutils-2.19.1.orig/ld/emultempl/xtensaelf.em binutils-2.19.1/ld/emultempl/xtensaelf.em
---- binutils-2.19.1.orig/ld/emultempl/xtensaelf.em     2008-02-14 19:35:53.000000000 -0800
-+++ binutils-2.19.1/ld/emultempl/xtensaelf.em  2009-03-02 05:56:19.000000000 -0800
-@@ -1,5 +1,5 @@
- # This shell script emits a C file. -*- C -*-
--#   Copyright 2003, 2004, 2005, 2006, 2007, 2008
-+#   Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009
- #   Free Software Foundation, Inc.
- #
- # This file is part of the GNU Binutils.
-@@ -1951,20 +1951,17 @@
-               lang_assignment_statement_type *assign_stmt;
-               lang_statement_union_type *assign_union;
-               lang_statement_list_type tmplist;
--              lang_statement_list_type *old_stat_ptr = stat_ptr;
-               /* There is hidden state in "lang_add_assignment".  It
-                  appends the new assignment statement to the stat_ptr
-                  list.  Thus, we swap it before and after the call.  */
--              tmplist.head = NULL;
--              tmplist.tail = &tmplist.head;
--
--              stat_ptr = &tmplist;
-+              lang_list_init (&tmplist);
-+              push_stat_ptr (&tmplist);
-               /* Warning: side effect; statement appended to stat_ptr.  */
-               assign_stmt = lang_add_assignment (assign_op);
-               assign_union = (lang_statement_union_type *) assign_stmt;
--              stat_ptr = old_stat_ptr;
-+              pop_stat_ptr ();
-               assign_union->header.next = l;
-               *(*stack_p)->iterloc.loc = assign_union;
-diff -Naur binutils-2.19.1.orig/ld/ldctor.c binutils-2.19.1/ld/ldctor.c
---- binutils-2.19.1.orig/ld/ldctor.c   2008-02-14 19:35:53.000000000 -0800
-+++ binutils-2.19.1/ld/ldctor.c        2009-03-02 05:56:19.000000000 -0800
-@@ -1,6 +1,7 @@
- /* ldctor.c -- constructor support routines
-    Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
--   2002, 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
-+   2002, 2003, 2004, 2006, 2007, 2008, 2009
-+   Free Software Foundation, Inc.
-    By Steve Chamberlain <sac@cygnus.com>
-    This file is part of the GNU Binutils.
-@@ -198,7 +199,6 @@
- ldctor_build_sets (void)
- {
-   static bfd_boolean called;
--  lang_statement_list_type *old;
-   bfd_boolean header_printed;
-   struct set_info *p;
-@@ -244,10 +244,8 @@
-       }
-     }
--  old = stat_ptr;
--  stat_ptr = &constructor_list;
--
--  lang_list_init (stat_ptr);
-+  lang_list_init (&constructor_list);
-+  push_stat_ptr (&constructor_list);
-   header_printed = FALSE;
-   for (p = sets; p != NULL; p = p->next)
-@@ -372,5 +370,5 @@
-       lang_add_data (size, exp_intop (0));
-     }
--  stat_ptr = old;
-+  pop_stat_ptr ();
- }
-diff -Naur binutils-2.19.1.orig/ld/ldemul.c binutils-2.19.1/ld/ldemul.c
---- binutils-2.19.1.orig/ld/ldemul.c   2008-02-14 19:35:53.000000000 -0800
-+++ binutils-2.19.1/ld/ldemul.c        2009-03-02 05:34:02.000000000 -0800
-@@ -120,10 +120,10 @@
- }
- bfd_boolean
--ldemul_place_orphan (asection *s)
-+ldemul_place_orphan (asection *s, const char *name, int constraint)
- {
-   if (ld_emulation->place_orphan)
--    return (*ld_emulation->place_orphan) (s);
-+    return (*ld_emulation->place_orphan) (s, name, constraint);
-   return FALSE;
- }
-diff -Naur binutils-2.19.1.orig/ld/ldemul.h binutils-2.19.1/ld/ldemul.h
---- binutils-2.19.1.orig/ld/ldemul.h   2007-07-06 07:09:41.000000000 -0700
-+++ binutils-2.19.1/ld/ldemul.h        2009-03-02 05:34:02.000000000 -0800
-@@ -59,7 +59,7 @@
- extern void ldemul_create_output_section_statements
-   (void);
- extern bfd_boolean ldemul_place_orphan
--  (asection *);
-+  (asection *, const char *, int);
- extern bfd_boolean ldemul_parse_args
-   (int, char **);
- extern void ldemul_add_options
-@@ -152,7 +152,7 @@
-      the default action should be taken.  This field may be NULL, in
-      which case the default action will always be taken.  */
-   bfd_boolean (*place_orphan)
--    (asection *);
-+    (asection *, const char *, int);
-   /* Run after assigning parsing with the args, but before
-      reading the script.  Used to initialize symbols used in the script.  */
-diff -Naur binutils-2.19.1.orig/ld/ldexp.c binutils-2.19.1/ld/ldexp.c
---- binutils-2.19.1.orig/ld/ldexp.c    2008-08-21 06:10:54.000000000 -0700
-+++ binutils-2.19.1/ld/ldexp.c 2009-03-02 05:29:32.000000000 -0800
-@@ -282,6 +282,7 @@
- static void
- fold_binary (etree_type *tree)
- {
-+  etree_value_type lhs;
-   exp_fold_tree_1 (tree->binary.lhs);
-   /* The SEGMENT_START operator is special because its first
-@@ -304,169 +305,167 @@
-           expld.result.section = expld.section;
-           break;
-         }
-+      return;
-     }
--  else if (expld.result.valid_p)
--    {
--      etree_value_type lhs = expld.result;
--      exp_fold_tree_1 (tree->binary.rhs);
--      if (expld.result.valid_p)
--      {
--        /* If the values are from different sections, or this is an
--           absolute expression, make both the source arguments
--           absolute.  However, adding or subtracting an absolute
--           value from a relative value is meaningful, and is an
--           exception.  */
--        if (expld.section != bfd_abs_section_ptr
--            && lhs.section == bfd_abs_section_ptr
--            && tree->type.node_code == '+')
--          {
--            /* Keep the section of the rhs term.  */
--            expld.result.value = lhs.value + expld.result.value;
--            return;
--          }
--        else if (expld.section != bfd_abs_section_ptr
--                 && expld.result.section == bfd_abs_section_ptr
--                 && (tree->type.node_code == '+'
--                     || tree->type.node_code == '-'))
--          {
--            /* Keep the section of the lhs term.  */
--            expld.result.section = lhs.section;
--          }
--        else if (expld.result.section != lhs.section
--                 || expld.section == bfd_abs_section_ptr)
--          {
--            make_abs ();
--            lhs.value += lhs.section->vma;
--          }
--
--        switch (tree->type.node_code)
--          {
--          case '%':
--            if (expld.result.value != 0)
--              expld.result.value = ((bfd_signed_vma) lhs.value
--                                    % (bfd_signed_vma) expld.result.value);
--            else if (expld.phase != lang_mark_phase_enum)
--              einfo (_("%F%S %% by zero\n"));
--            break;
-+  lhs = expld.result;
-+  exp_fold_tree_1 (tree->binary.rhs);
-+  expld.result.valid_p &= lhs.valid_p;
--          case '/':
--            if (expld.result.value != 0)
--              expld.result.value = ((bfd_signed_vma) lhs.value
--                                    / (bfd_signed_vma) expld.result.value);
--            else if (expld.phase != lang_mark_phase_enum)
--              einfo (_("%F%S / by zero\n"));
--            break;
-+  if (expld.result.valid_p)
-+    {
-+      /* If the values are from different sections, or this is an
-+       absolute expression, make both the source arguments
-+       absolute.  However, adding or subtracting an absolute
-+       value from a relative value is meaningful, and is an
-+       exception.  */
-+      if (expld.section != bfd_abs_section_ptr
-+        && lhs.section == bfd_abs_section_ptr
-+        && tree->type.node_code == '+')
-+      {
-+        /* Keep the section of the rhs term.  */
-+        expld.result.value = lhs.value + expld.result.value;
-+        return;
-+      }
-+      else if (expld.section != bfd_abs_section_ptr
-+             && expld.result.section == bfd_abs_section_ptr
-+             && (tree->type.node_code == '+'
-+                 || tree->type.node_code == '-'))
-+      {
-+        /* Keep the section of the lhs term.  */
-+        expld.result.section = lhs.section;
-+      }
-+      else if (expld.result.section != lhs.section
-+             || expld.section == bfd_abs_section_ptr)
-+      {
-+        make_abs ();
-+        lhs.value += lhs.section->vma;
-+      }
-+
-+      switch (tree->type.node_code)
-+      {
-+      case '%':
-+        if (expld.result.value != 0)
-+          expld.result.value = ((bfd_signed_vma) lhs.value
-+                                % (bfd_signed_vma) expld.result.value);
-+        else if (expld.phase != lang_mark_phase_enum)
-+          einfo (_("%F%S %% by zero\n"));
-+        break;
-+
-+      case '/':
-+        if (expld.result.value != 0)
-+          expld.result.value = ((bfd_signed_vma) lhs.value
-+                                / (bfd_signed_vma) expld.result.value);
-+        else if (expld.phase != lang_mark_phase_enum)
-+          einfo (_("%F%S / by zero\n"));
-+        break;
- #define BOP(x, y) \
-           case x:                                                     \
-             expld.result.value = lhs.value y expld.result.value;      \
-             break;
--            BOP ('+', +);
--            BOP ('*', *);
--            BOP ('-', -);
--            BOP (LSHIFT, <<);
--            BOP (RSHIFT, >>);
--            BOP (EQ, ==);
--            BOP (NE, !=);
--            BOP ('<', <);
--            BOP ('>', >);
--            BOP (LE, <=);
--            BOP (GE, >=);
--            BOP ('&', &);
--            BOP ('^', ^);
--            BOP ('|', |);
--            BOP (ANDAND, &&);
--            BOP (OROR, ||);
--
--          case MAX_K:
--            if (lhs.value > expld.result.value)
--              expld.result.value = lhs.value;
--            break;
--
--          case MIN_K:
--            if (lhs.value < expld.result.value)
--              expld.result.value = lhs.value;
--            break;
--
--          case ALIGN_K:
--            expld.result.value = align_n (lhs.value, expld.result.value);
--            break;
--
--          case DATA_SEGMENT_ALIGN:
--            expld.dataseg.relro = exp_dataseg_relro_start;
--            if (expld.phase != lang_first_phase_enum
--                && expld.section == bfd_abs_section_ptr
--                && (expld.dataseg.phase == exp_dataseg_none
--                    || expld.dataseg.phase == exp_dataseg_adjust
--                    || expld.dataseg.phase == exp_dataseg_relro_adjust
--                    || expld.phase == lang_final_phase_enum))
-+        BOP ('+', +);
-+        BOP ('*', *);
-+        BOP ('-', -);
-+        BOP (LSHIFT, <<);
-+        BOP (RSHIFT, >>);
-+        BOP (EQ, ==);
-+        BOP (NE, !=);
-+        BOP ('<', <);
-+        BOP ('>', >);
-+        BOP (LE, <=);
-+        BOP (GE, >=);
-+        BOP ('&', &);
-+        BOP ('^', ^);
-+        BOP ('|', |);
-+        BOP (ANDAND, &&);
-+        BOP (OROR, ||);
-+
-+      case MAX_K:
-+        if (lhs.value > expld.result.value)
-+          expld.result.value = lhs.value;
-+        break;
-+
-+      case MIN_K:
-+        if (lhs.value < expld.result.value)
-+          expld.result.value = lhs.value;
-+        break;
-+
-+      case ALIGN_K:
-+        expld.result.value = align_n (lhs.value, expld.result.value);
-+        break;
-+
-+      case DATA_SEGMENT_ALIGN:
-+        expld.dataseg.relro = exp_dataseg_relro_start;
-+        if (expld.phase != lang_first_phase_enum
-+            && expld.section == bfd_abs_section_ptr
-+            && (expld.dataseg.phase == exp_dataseg_none
-+                || expld.dataseg.phase == exp_dataseg_adjust
-+                || expld.dataseg.phase == exp_dataseg_relro_adjust
-+                || expld.phase == lang_final_phase_enum))
-+          {
-+            bfd_vma maxpage = lhs.value;
-+            bfd_vma commonpage = expld.result.value;
-+
-+            expld.result.value = align_n (expld.dot, maxpage);
-+            if (expld.dataseg.phase == exp_dataseg_relro_adjust)
-+              expld.result.value = expld.dataseg.base;
-+            else if (expld.dataseg.phase != exp_dataseg_adjust)
-               {
--                bfd_vma maxpage = lhs.value;
--                bfd_vma commonpage = expld.result.value;
--
--                expld.result.value = align_n (expld.dot, maxpage);
--                if (expld.dataseg.phase == exp_dataseg_relro_adjust)
--                  expld.result.value = expld.dataseg.base;
--                else if (expld.dataseg.phase != exp_dataseg_adjust)
-+                expld.result.value += expld.dot & (maxpage - 1);
-+                if (expld.phase == lang_allocating_phase_enum)
-                   {
--                    expld.result.value += expld.dot & (maxpage - 1);
--                    if (expld.phase == lang_allocating_phase_enum)
--                      {
--                        expld.dataseg.phase = exp_dataseg_align_seen;
--                        expld.dataseg.min_base = expld.dot;
--                        expld.dataseg.base = expld.result.value;
--                        expld.dataseg.pagesize = commonpage;
--                        expld.dataseg.maxpagesize = maxpage;
--                        expld.dataseg.relro_end = 0;
--                      }
-+                    expld.dataseg.phase = exp_dataseg_align_seen;
-+                    expld.dataseg.min_base = expld.dot;
-+                    expld.dataseg.base = expld.result.value;
-+                    expld.dataseg.pagesize = commonpage;
-+                    expld.dataseg.maxpagesize = maxpage;
-+                    expld.dataseg.relro_end = 0;
-                   }
--                else if (commonpage < maxpage)
--                  expld.result.value += ((expld.dot + commonpage - 1)
--                                         & (maxpage - commonpage));
-               }
--            else
--              expld.result.valid_p = FALSE;
--            break;
-+            else if (commonpage < maxpage)
-+              expld.result.value += ((expld.dot + commonpage - 1)
-+                                     & (maxpage - commonpage));
-+          }
-+        else
-+          expld.result.valid_p = FALSE;
-+        break;
--          case DATA_SEGMENT_RELRO_END:
--            expld.dataseg.relro = exp_dataseg_relro_end;
--            if (expld.phase != lang_first_phase_enum
--                && (expld.dataseg.phase == exp_dataseg_align_seen
--                    || expld.dataseg.phase == exp_dataseg_adjust
--                    || expld.dataseg.phase == exp_dataseg_relro_adjust
--                    || expld.phase == lang_final_phase_enum))
-+      case DATA_SEGMENT_RELRO_END:
-+        expld.dataseg.relro = exp_dataseg_relro_end;
-+        if (expld.phase != lang_first_phase_enum
-+            && (expld.dataseg.phase == exp_dataseg_align_seen
-+                || expld.dataseg.phase == exp_dataseg_adjust
-+                || expld.dataseg.phase == exp_dataseg_relro_adjust
-+                || expld.phase == lang_final_phase_enum))
-+          {
-+            if (expld.dataseg.phase == exp_dataseg_align_seen
-+                || expld.dataseg.phase == exp_dataseg_relro_adjust)
-+              expld.dataseg.relro_end = lhs.value + expld.result.value;
-+
-+            if (expld.dataseg.phase == exp_dataseg_relro_adjust
-+                && (expld.dataseg.relro_end
-+                    & (expld.dataseg.pagesize - 1)))
-               {
--                if (expld.dataseg.phase == exp_dataseg_align_seen
--                    || expld.dataseg.phase == exp_dataseg_relro_adjust)
--                  expld.dataseg.relro_end = lhs.value + expld.result.value;
--
--                if (expld.dataseg.phase == exp_dataseg_relro_adjust
--                    && (expld.dataseg.relro_end
--                        & (expld.dataseg.pagesize - 1)))
--                  {
--                    expld.dataseg.relro_end += expld.dataseg.pagesize - 1;
--                    expld.dataseg.relro_end &= ~(expld.dataseg.pagesize - 1);
--                    expld.result.value = (expld.dataseg.relro_end
--                                          - expld.result.value);
--                  }
--                else
--                  expld.result.value = lhs.value;
--
--                if (expld.dataseg.phase == exp_dataseg_align_seen)
--                  expld.dataseg.phase = exp_dataseg_relro_seen;
-+                expld.dataseg.relro_end += expld.dataseg.pagesize - 1;
-+                expld.dataseg.relro_end &= ~(expld.dataseg.pagesize - 1);
-+                expld.result.value = (expld.dataseg.relro_end
-+                                      - expld.result.value);
-               }
-             else
--              expld.result.valid_p = FALSE;
--            break;
-+              expld.result.value = lhs.value;
--          default:
--            FAIL ();
-+            if (expld.dataseg.phase == exp_dataseg_align_seen)
-+              expld.dataseg.phase = exp_dataseg_relro_seen;
-           }
-+        else
-+          expld.result.valid_p = FALSE;
-+        break;
-+
-+      default:
-+        FAIL ();
-       }
--      else
--      expld.result.valid_p = FALSE;
-     }
- }
-diff -Naur binutils-2.19.1.orig/ld/ldlang.c binutils-2.19.1/ld/ldlang.c
---- binutils-2.19.1.orig/ld/ldlang.c   2008-09-06 21:02:30.000000000 -0700
-+++ binutils-2.19.1/ld/ldlang.c        2009-03-02 05:56:19.000000000 -0800
-@@ -1,6 +1,6 @@
- /* Linker command language support.
-    Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
--   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-+   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-    Free Software Foundation, Inc.
-    This file is part of the GNU Binutils.
-@@ -64,6 +64,8 @@
- static const char *output_target;
- static lang_statement_list_type statement_list;
- static struct bfd_hash_table lang_definedness_table;
-+static lang_statement_list_type *stat_save[10];
-+static lang_statement_list_type **stat_save_ptr = &stat_save[0];
- /* Forward declarations.  */
- static void exp_init_os (etree_type *);
-@@ -193,7 +195,7 @@
-   return match;
- }
--bfd_boolean
-+static bfd_boolean
- unique_section_p (const asection *sec)
- {
-   struct unique_sections *unam;
-@@ -925,6 +927,23 @@
-   list->tail = &list->head;
- }
-+void
-+push_stat_ptr (lang_statement_list_type *new_ptr)
-+{
-+  if (stat_save_ptr >= stat_save + sizeof (stat_save) / sizeof (stat_save[0]))
-+    abort ();
-+  *stat_save_ptr++ = stat_ptr;
-+  stat_ptr = new_ptr;
-+}
-+
-+void
-+pop_stat_ptr (void)
-+{
-+  if (stat_save_ptr <= stat_save)
-+    abort ();
-+  stat_ptr = *--stat_save_ptr;
-+}
-+
- /* Build a new statement node for the parse tree.  */
- static lang_statement_union_type *
-@@ -1278,19 +1297,25 @@
-       struct out_section_hash_entry *last_ent;
-       unsigned long hash = entry->root.hash;
--      do
--      {
--        if (entry->s.output_section_statement.constraint >= 0
--            && (constraint == 0
--                || (constraint == entry->s.output_section_statement.constraint
--                    && constraint != SPECIAL)))
--          return &entry->s.output_section_statement;
--        last_ent = entry;
--        entry = (struct out_section_hash_entry *) entry->root.next;
--      }
--      while (entry != NULL
--           && entry->root.hash == hash
--           && strcmp (name, entry->s.output_section_statement.name) == 0);
-+      if (create && constraint == SPECIAL)
-+      /* Not traversing to the end reverses the order of the second
-+         and subsequent SPECIAL sections in the hash table chain,
-+         but that shouldn't matter.  */
-+      last_ent = entry;
-+      else
-+      do
-+        {
-+          if (entry->s.output_section_statement.constraint >= 0
-+              && (constraint == 0
-+                  || (constraint
-+                      == entry->s.output_section_statement.constraint)))
-+            return &entry->s.output_section_statement;
-+          last_ent = entry;
-+          entry = (struct out_section_hash_entry *) entry->root.next;
-+        }
-+      while (entry != NULL
-+             && entry->root.hash == hash
-+             && strcmp (name, entry->s.output_section_statement.name) == 0);
-       if (!create)
-       return NULL;
-@@ -1556,28 +1581,24 @@
- lang_output_section_statement_type *
- lang_insert_orphan (asection *s,
-                   const char *secname,
-+                  int constraint,
-                   lang_output_section_statement_type *after,
-                   struct orphan_save *place,
-                   etree_type *address,
-                   lang_statement_list_type *add_child)
- {
--  lang_statement_list_type *old;
-   lang_statement_list_type add;
-   const char *ps;
-   lang_output_section_statement_type *os;
-   lang_output_section_statement_type **os_tail;
--  /* Start building a list of statements for this section.
--     First save the current statement pointer.  */
--  old = stat_ptr;
--
-   /* If we have found an appropriate place for the output section
-      statements for this orphan, add them to our own private list,
-      inserting them later into the global statement list.  */
-   if (after != NULL)
-     {
--      stat_ptr = &add;
--      lang_list_init (stat_ptr);
-+      lang_list_init (&add);
-+      push_stat_ptr (&add);
-     }
-   ps = NULL;
-@@ -1611,7 +1632,7 @@
-   os_tail = ((lang_output_section_statement_type **)
-            lang_output_section_statement.tail);
-   os = lang_enter_output_section_statement (secname, address, 0, NULL, NULL,
--                                          NULL, 0);
-+                                          NULL, constraint);
-   if (add_child == NULL)
-     add_child = &os->children;
-@@ -1623,11 +1644,6 @@
-     {
-       char *symname;
--      /* lang_leave_ouput_section_statement resets stat_ptr.
--       Put stat_ptr back where we want it.  */
--      if (after != NULL)
--      stat_ptr = &add;
--
-       symname = (char *) xmalloc (ps - secname + sizeof "__stop_" + 1);
-       symname[0] = bfd_get_symbol_leading_char (link_info.output_bfd);
-       sprintf (symname + (symname[0] != 0), "__stop_%s", secname);
-@@ -1638,7 +1654,7 @@
-   /* Restore the global list pointer.  */
-   if (after != NULL)
--    stat_ptr = old;
-+    pop_stat_ptr ();
-   if (after != NULL && os->bfd_section != NULL)
-     {
-@@ -1724,8 +1740,8 @@
-         /* Fix the global list pointer if we happened to tack our
-            new list at the tail.  */
--        if (*old->tail == add.head)
--          old->tail = add.tail;
-+        if (*stat_ptr->tail == add.head)
-+          stat_ptr->tail = add.tail;
-         /* Save the end of this list.  */
-         place->stmt = add.tail;
-@@ -1914,10 +1930,11 @@
-   if (strcmp (s->name, DISCARD_SECTION_NAME) == 0)
-     einfo (_("%P%F: Illegal use of `%s' section\n"), DISCARD_SECTION_NAME);
--  s->bfd_section = bfd_get_section_by_name (link_info.output_bfd, s->name);
-+  if (s->constraint != SPECIAL)
-+    s->bfd_section = bfd_get_section_by_name (link_info.output_bfd, s->name);
-   if (s->bfd_section == NULL)
--    s->bfd_section = bfd_make_section_with_flags (link_info.output_bfd,
--                                                s->name, flags);
-+    s->bfd_section = bfd_make_section_anyway_with_flags (link_info.output_bfd,
-+                                                       s->name, flags);
-   if (s->bfd_section == NULL)
-     {
-       einfo (_("%P%F: output format %s cannot represent section called %s\n"),
-@@ -2455,8 +2472,6 @@
-       && ! bfd_check_format_matches (entry->the_bfd, bfd_object, &matching))
-     {
-       bfd_error_type err;
--      lang_statement_list_type *hold;
--      bfd_boolean bad_load = TRUE;
-       bfd_boolean save_ldlang_sysrooted_script;
-       bfd_boolean save_as_needed, save_add_needed;
-@@ -2479,8 +2494,6 @@
-       else if (err != bfd_error_file_not_recognized
-              || place == NULL)
-       einfo (_("%F%B: file not recognized: %E\n"), entry->the_bfd);
--      else
--      bad_load = FALSE;
-       bfd_close (entry->the_bfd);
-       entry->the_bfd = NULL;
-@@ -2488,8 +2501,7 @@
-       /* Try to interpret the file as a linker script.  */
-       ldfile_open_command_file (entry->filename);
--      hold = stat_ptr;
--      stat_ptr = place;
-+      push_stat_ptr (place);
-       save_ldlang_sysrooted_script = ldlang_sysrooted_script;
-       ldlang_sysrooted_script = entry->sysrooted;
-       save_as_needed = as_needed;
-@@ -2508,9 +2520,9 @@
-       ldlang_sysrooted_script = save_ldlang_sysrooted_script;
-       as_needed = save_as_needed;
-       add_needed = save_add_needed;
--      stat_ptr = hold;
-+      pop_stat_ptr ();
--      return ! bad_load;
-+      return TRUE;
-     }
-   if (ldemul_recognized_file (entry))
-@@ -2982,6 +2994,7 @@
-       case lang_input_statement_enum:
-         if (s->input_statement.real)
-           {
-+            lang_statement_union_type **os_tail;
-             lang_statement_list_type add;
-             s->input_statement.target = current_target;
-@@ -2997,6 +3010,7 @@
-                                      bfd_archive))
-               s->input_statement.loaded = FALSE;
-+            os_tail = lang_output_section_statement.tail;
-             lang_list_init (&add);
-             if (! load_symbols (&s->input_statement, &add))
-@@ -3004,8 +3018,25 @@
-             if (add.head != NULL)
-               {
--                *add.tail = s->header.next;
--                s->header.next = add.head;
-+                /* If this was a script with output sections then
-+                   tack any added statements on to the end of the
-+                   list.  This avoids having to reorder the output
-+                   section statement list.  Very likely the user
-+                   forgot -T, and whatever we do here will not meet
-+                   naive user expectations.  */
-+                if (os_tail != lang_output_section_statement.tail)
-+                  {
-+                    einfo (_("%P: warning: %s contains output sections;"
-+                             " did you forget -T?\n"),
-+                           s->input_statement.filename);
-+                    *stat_ptr->tail = add.head;
-+                    stat_ptr->tail = add.tail;
-+                  }
-+                else
-+                  {
-+                    *add.tail = s->header.next;
-+                    s->header.next = add.head;
-+                  }
-               }
-           }
-         break;
-@@ -5652,14 +5683,22 @@
-                                       default_common_section);
-                   }
-               }
--            else if (ldemul_place_orphan (s))
--              ;
-             else
-               {
--                lang_output_section_statement_type *os;
-+                const char *name = s->name;
-+                int constraint = 0;
--                os = lang_output_section_statement_lookup (s->name, 0, TRUE);
--                lang_add_section (&os->children, s, os);
-+                if (config.unique_orphan_sections || unique_section_p (s))
-+                  constraint = SPECIAL;
-+
-+                if (!ldemul_place_orphan (s, name, constraint))
-+                  {
-+                    lang_output_section_statement_type *os;
-+                    os = lang_output_section_statement_lookup (name,
-+                                                               constraint,
-+                                                               TRUE);
-+                    lang_add_section (&os->children, s, os);
-+                  }
-               }
-           }
-       }
-@@ -5821,7 +5860,7 @@
-   os->block_value = 1;
-   /* Make next things chain into subchain of this.  */
--  stat_ptr = &os->children;
-+  push_stat_ptr (&os->children);
-   os->subsection_alignment =
-     topower (exp_get_value_int (subalign, -1, "subsection alignment"));
-@@ -6430,7 +6469,7 @@
-                   current_section->addr_tree != NULL);
-   current_section->fill = fill;
-   current_section->phdrs = phdrs;
--  stat_ptr = &statement_list;
-+  pop_stat_ptr ();
- }
- /* Create an absolute symbol with the given name with the value of the
-@@ -6547,7 +6586,7 @@
-   g = new_stat (lang_group_statement, stat_ptr);
-   lang_list_init (&g->children);
--  stat_ptr = &g->children;
-+  push_stat_ptr (&g->children);
- }
- /* Leave a group.  This just resets stat_ptr to start writing to the
-@@ -6558,7 +6597,7 @@
- void
- lang_leave_group (void)
- {
--  stat_ptr = &statement_list;
-+  pop_stat_ptr ();
- }
- /* Add a new program header.  This is called for each entry in a PHDRS
-diff -Naur binutils-2.19.1.orig/ld/ldlang.h binutils-2.19.1/ld/ldlang.h
---- binutils-2.19.1.orig/ld/ldlang.h   2008-09-06 21:02:30.000000000 -0700
-+++ binutils-2.19.1/ld/ldlang.h        2009-03-02 05:56:19.000000000 -0800
-@@ -1,6 +1,6 @@
- /* ldlang.h - linker command language support
-    Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
--   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-+   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-    Free Software Foundation, Inc.
-    This file is part of the GNU Binutils.
-@@ -536,7 +536,7 @@
-   (const asection *, lang_output_section_statement_type **,
-    lang_match_sec_type_func);
- extern lang_output_section_statement_type *lang_insert_orphan
--  (asection *, const char *, lang_output_section_statement_type *,
-+  (asection *, const char *, int, lang_output_section_statement_type *,
-    struct orphan_save *, etree_type *, lang_statement_list_type *);
- extern lang_input_statement_type *lang_add_input_file
-   (const char *, lang_input_file_enum_type, const char *);
-@@ -550,6 +550,10 @@
-   (const char *, const char *, const char *, int);
- extern void lang_list_init
-   (lang_statement_list_type *);
-+extern void push_stat_ptr
-+  (lang_statement_list_type *);
-+extern void pop_stat_ptr
-+  (void);
- extern void lang_add_data
-   (int type, union etree_union *);
- extern void lang_add_reloc
-@@ -604,8 +608,6 @@
- extern void lang_append_dynamic_list (struct bfd_elf_version_expr *);
- extern void lang_append_dynamic_list_cpp_typeinfo (void);
- extern void lang_append_dynamic_list_cpp_new (void);
--bfd_boolean unique_section_p
--  (const asection *);
- extern void lang_add_unique
-   (const char *);
- extern const char *lang_get_output_target
-diff -Naur binutils-2.19.1.orig/ld/testsuite/ChangeLog binutils-2.19.1/ld/testsuite/ChangeLog
---- binutils-2.19.1.orig/ld/testsuite/ChangeLog        2009-01-14 01:04:14.000000000 -0800
-+++ binutils-2.19.1/ld/testsuite/ChangeLog     2009-03-02 05:53:31.000000000 -0800
-@@ -1,3 +1,26 @@
-+2009-03-02  Alan Modra  <amodra@bigpond.net.au>
-+
-+      2009-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
-+      * ld-elf/eh-group2.s: New `.cfi_lsda' referencing `.gcc_except_table'.
-+      * ld-elf/eh-group.exp: New test and conditional defininiton of `ELF64'.
-+
-+      2009-01-26  Nathan Sidwell  <nathan@codesourcery.com>
-+      * ld-powerpc/powerpc.exp: Add vxworks relax testcase.
-+      * ld-powerpc/vxworks-relax.s, ld-powerpc/vxworks-relax.rd: New.
-+      * ld-powerpc/vxworks1.ld: Add .pad and .far input sections.
-+      * ld-powerpc/vxworks1.rd: Correct regexp for undefined symbols.
-+
-+      2009-01-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
-+      * ld-elf/linkoncerdiff.d, ld-elf/linkoncerdiff1.s,
-+      ld-elf/linkoncerdiff2.s: New.
-+
-+      2008-10-10  Nathan Froyd  <froydnj@codesourcery.com>
-+      * ld-powerpc/attr-gnu-12-1.s: New file.
-+      * ld-powerpc/attr-gnu-12-2.s: New file.
-+      * ld-powerpc/attr-gnu-12-11.d: New file.
-+      * ld-powerpc/attr-gnu-12-21.d: New file.
-+      * ld-powerpc/powerpc.exp: Run new dump tests.
-+
- 2009-01-14  Joseph Myers  <joseph@codesourcery.com>
-       * ld-arm/thumb2-bl-undefweak.d, ld-arm/thumb2-bl-undefweak.s: New.
-diff -Naur binutils-2.19.1.orig/ld/testsuite/ld-elf/eh-group2.s binutils-2.19.1/ld/testsuite/ld-elf/eh-group2.s
---- binutils-2.19.1.orig/ld/testsuite/ld-elf/eh-group2.s       2008-10-02 03:10:26.000000000 -0700
-+++ binutils-2.19.1/ld/testsuite/ld-elf/eh-group2.s    2009-03-02 05:53:31.000000000 -0800
-@@ -1,4 +1,15 @@
-       .section        sect, "axG", %progbits, sectgroup, comdat
-       .cfi_startproc
-+# Test intention is that LSDA must be provided by the discarded FDE.
-+# DW_EH_PE_udata8 = 4
-+# DW_EH_PE_udata4 = 3
-+      .ifdef          ELF64
-+      .cfi_lsda 4, lsda
-+      .else
-+      .cfi_lsda 3, lsda
-+      .endif
-       .skip 16
-       .cfi_endproc
-+
-+      .section        .gcc_except_table, "a", %progbits
-+lsda:
-diff -Naur binutils-2.19.1.orig/ld/testsuite/ld-elf/eh-group.exp binutils-2.19.1/ld/testsuite/ld-elf/eh-group.exp
---- binutils-2.19.1.orig/ld/testsuite/ld-elf/eh-group.exp      2008-10-02 03:10:26.000000000 -0700
-+++ binutils-2.19.1/ld/testsuite/ld-elf/eh-group.exp   2009-03-02 05:53:31.000000000 -0800
-@@ -35,12 +35,28 @@
-     return
- }
--set build_tests_ld {
--  {"Build eh-group1.o"
--   "-r" ""
--   {eh-group1.s eh-group2.s} {} "eh-group.o"}
-+# alpha-linux-gnu does not support 64-bit relocations:
-+#   relocation truncated to fit: REFLONG against `.gcc_except_table'
-+# arm-eabi does not support 64-bit relocations:
-+#   bad relocation fixup type (1)
-+set testname "Guess the target size from eh-group1size.o"
-+if [ld_assemble $as "$srcdir/$subdir/eh-group1.s" "tmpdir/eh-group1size.o"] {
-+    pass $testname
-+} else {
-+    fail $testname
- }
-+set as_options ""
-+if [is_elf64 "tmpdir/eh-group1size.o"] {
-+    set as_options "$as_options --defsym ELF64=1"
-+}
-+
-+set build_tests_ld [list                      \
-+  [list "Build eh-group1.o"                   \
-+   "-r" "$as_options"                         \
-+   {eh-group1.s eh-group2.s} {} "eh-group.o"] \
-+]
-+
- run_ld_link_tests $build_tests_ld
- set testname "Link eh-group.o to eh-group"
-diff -Naur binutils-2.19.1.orig/ld/testsuite/ld-elf/linkoncerdiff1.s binutils-2.19.1/ld/testsuite/ld-elf/linkoncerdiff1.s
---- binutils-2.19.1.orig/ld/testsuite/ld-elf/linkoncerdiff1.s  1969-12-31 16:00:00.000000000 -0800
-+++ binutils-2.19.1/ld/testsuite/ld-elf/linkoncerdiff1.s       2009-03-02 05:48:42.000000000 -0800
-@@ -0,0 +1,7 @@
-+      .section        .gnu.linkonce.t.foo, "a", %progbits
-+      .globl  symfoo
-+symfoo:
-+
-+      .section        .gnu.linkonce.t.bar, "a", %progbits
-+      .globl  symbar
-+symbar:
-diff -Naur binutils-2.19.1.orig/ld/testsuite/ld-elf/linkoncerdiff2.s binutils-2.19.1/ld/testsuite/ld-elf/linkoncerdiff2.s
---- binutils-2.19.1.orig/ld/testsuite/ld-elf/linkoncerdiff2.s  1969-12-31 16:00:00.000000000 -0800
-+++ binutils-2.19.1/ld/testsuite/ld-elf/linkoncerdiff2.s       2009-03-02 05:48:42.000000000 -0800
-@@ -0,0 +1,22 @@
-+      .section        .gnu.linkonce.t.foo, "a", %progbits
-+1:
-+      .globl  symfoo
-+symfoo:
-+      .long   0
-+
-+      .section        .gnu.linkonce.t.bar, "a", %progbits
-+2:
-+      .globl  symbar
-+symbar:
-+      .long   0
-+
-+      .section        .gnu.linkonce.r.foo, "a", %progbits
-+      .long   1b
-+      .long   symfoo
-+/* ld currently incorrectly silently discards this relocation.  Just such
-+   relocations are never produced by g++-3.4 so this suppressed error message
-+   is not a problem:
-+   #error: `.gnu.linkonce.t.bar' referenced in section `.gnu.linkonce.r.foo' of tmpdir/dump1.o: defined in discarded section `.gnu.linkonce.t.bar' of tmpdir/dump1.o
-+   */
-+      .long   2b
-+      .long   symbar
-diff -Naur binutils-2.19.1.orig/ld/testsuite/ld-elf/linkoncerdiff.d binutils-2.19.1/ld/testsuite/ld-elf/linkoncerdiff.d
---- binutils-2.19.1.orig/ld/testsuite/ld-elf/linkoncerdiff.d   1969-12-31 16:00:00.000000000 -0800
-+++ binutils-2.19.1/ld/testsuite/ld-elf/linkoncerdiff.d        2009-03-02 05:48:42.000000000 -0800
-@@ -0,0 +1,6 @@
-+#source: linkoncerdiff1.s
-+#source: linkoncerdiff2.s
-+#ld: -r
-+#readelf: -r
-+There are no relocations in this file.
-+#pass
-diff -Naur binutils-2.19.1.orig/ld/testsuite/ld-powerpc/attr-gnu-12-11.d binutils-2.19.1/ld/testsuite/ld-powerpc/attr-gnu-12-11.d
---- binutils-2.19.1.orig/ld/testsuite/ld-powerpc/attr-gnu-12-11.d      1969-12-31 16:00:00.000000000 -0800
-+++ binutils-2.19.1/ld/testsuite/ld-powerpc/attr-gnu-12-11.d   2009-03-02 05:37:44.000000000 -0800
-@@ -0,0 +1,10 @@
-+#source: attr-gnu-12-1.s
-+#source: attr-gnu-12-1.s
-+#as: -a32
-+#ld: -r -melf32ppc
-+#readelf: -A
-+#target: powerpc*-*-*
-+
-+Attribute Section: gnu
-+File Attributes
-+  Tag_GNU_Power_ABI_Struct_Return: r3/r4
-diff -Naur binutils-2.19.1.orig/ld/testsuite/ld-powerpc/attr-gnu-12-1.s binutils-2.19.1/ld/testsuite/ld-powerpc/attr-gnu-12-1.s
---- binutils-2.19.1.orig/ld/testsuite/ld-powerpc/attr-gnu-12-1.s       1969-12-31 16:00:00.000000000 -0800
-+++ binutils-2.19.1/ld/testsuite/ld-powerpc/attr-gnu-12-1.s    2009-03-02 05:37:44.000000000 -0800
-@@ -0,0 +1 @@
-+.gnu_attribute 12,1
-diff -Naur binutils-2.19.1.orig/ld/testsuite/ld-powerpc/attr-gnu-12-21.d binutils-2.19.1/ld/testsuite/ld-powerpc/attr-gnu-12-21.d
---- binutils-2.19.1.orig/ld/testsuite/ld-powerpc/attr-gnu-12-21.d      1969-12-31 16:00:00.000000000 -0800
-+++ binutils-2.19.1/ld/testsuite/ld-powerpc/attr-gnu-12-21.d   2009-03-02 05:37:44.000000000 -0800
-@@ -0,0 +1,6 @@
-+#source: attr-gnu-12-2.s
-+#source: attr-gnu-12-1.s
-+#as: -a32
-+#ld: -r -melf32ppc
-+#warning: Warning: .* uses r3/r4 for small structure returns, .* uses memory
-+#target: powerpc*-*-*
-diff -Naur binutils-2.19.1.orig/ld/testsuite/ld-powerpc/attr-gnu-12-2.s binutils-2.19.1/ld/testsuite/ld-powerpc/attr-gnu-12-2.s
---- binutils-2.19.1.orig/ld/testsuite/ld-powerpc/attr-gnu-12-2.s       1969-12-31 16:00:00.000000000 -0800
-+++ binutils-2.19.1/ld/testsuite/ld-powerpc/attr-gnu-12-2.s    2009-03-02 05:37:44.000000000 -0800
-@@ -0,0 +1 @@
-+.gnu_attribute 12,2
-diff -Naur binutils-2.19.1.orig/ld/testsuite/ld-powerpc/powerpc.exp binutils-2.19.1/ld/testsuite/ld-powerpc/powerpc.exp
---- binutils-2.19.1.orig/ld/testsuite/ld-powerpc/powerpc.exp   2008-07-26 06:10:48.000000000 -0700
-+++ binutils-2.19.1/ld/testsuite/ld-powerpc/powerpc.exp        2009-03-02 05:52:34.000000000 -0800
-@@ -49,6 +49,11 @@
-        "-mregnames" {vxworks2.s}
-        {{readelf --segments vxworks2-static.sd}}
-        "vxworks2"}
-+      {"VxWorks relax test"
-+       "-Tvxworks1.ld --relax -q"
-+       "-mregnames" {vxworks-relax.s}
-+       {{readelf --relocs vxworks-relax.rd}}
-+       "vxworks-relax"}
-     }
-     run_ld_link_tests $ppcvxtests
-     run_dump_test "vxworks1-static"
-@@ -177,3 +182,6 @@
- run_dump_test "attr-gnu-8-11"
- run_dump_test "attr-gnu-8-23"
- run_dump_test "attr-gnu-8-31"
-+
-+run_dump_test "attr-gnu-12-11"
-+run_dump_test "attr-gnu-12-21"
-diff -Naur binutils-2.19.1.orig/ld/testsuite/ld-powerpc/vxworks1.ld binutils-2.19.1/ld/testsuite/ld-powerpc/vxworks1.ld
---- binutils-2.19.1.orig/ld/testsuite/ld-powerpc/vxworks1.ld   2007-05-15 05:22:34.000000000 -0700
-+++ binutils-2.19.1/ld/testsuite/ld-powerpc/vxworks1.ld        2009-03-02 05:52:34.000000000 -0800
-@@ -14,7 +14,7 @@
-   .plt : { *(.plt) }
-   . = ALIGN (0x400);
--  .text : { *(.text) }
-+  .text : { *(.text) *(.pad) *(.far) }
-   . = ALIGN (0x10000);
-   .dynamic : { *(.dynamic) }
-diff -Naur binutils-2.19.1.orig/ld/testsuite/ld-powerpc/vxworks1.rd binutils-2.19.1/ld/testsuite/ld-powerpc/vxworks1.rd
---- binutils-2.19.1.orig/ld/testsuite/ld-powerpc/vxworks1.rd   2006-03-02 07:16:27.000000000 -0800
-+++ binutils-2.19.1/ld/testsuite/ld-powerpc/vxworks1.rd        2009-03-02 05:52:34.000000000 -0800
-@@ -1,8 +1,8 @@
- Relocation section '\.rela\.plt' at offset .* contains 2 entries:
-  Offset     Info    Type            Sym\.Value  Sym\. Name \+ Addend
--0009040c  .*15 R_PPC_JMP_SLOT    00080820   sglobal \+ 0
--00090410  .*15 R_PPC_JMP_SLOT    00080840   foo \+ 0
-+0009040c  .*15 R_PPC_JMP_SLOT    00000000   sglobal \+ 0
-+00090410  .*15 R_PPC_JMP_SLOT    00000000   foo \+ 0
- Relocation section '\.rela\.text' at offset .* contains 3 entries:
-  Offset     Info    Type            Sym\.Value  Sym\. Name \+ Addend
-diff -Naur binutils-2.19.1.orig/ld/testsuite/ld-powerpc/vxworks-relax.rd binutils-2.19.1/ld/testsuite/ld-powerpc/vxworks-relax.rd
---- binutils-2.19.1.orig/ld/testsuite/ld-powerpc/vxworks-relax.rd      1969-12-31 16:00:00.000000000 -0800
-+++ binutils-2.19.1/ld/testsuite/ld-powerpc/vxworks-relax.rd   2009-03-02 05:52:34.000000000 -0800
-@@ -0,0 +1,9 @@
-+
-+Relocation section '.rela.text' at offset 0x4010150 contains 6 entries:
-+ Offset     Info    Type            Sym.Value  Sym. Name \+ Addend
-+00080012  00000106 R_PPC_ADDR16_HA   00080000   .text \+ 4000020
-+00080016  00000104 R_PPC_ADDR16_LO   00080000   .text \+ 4000020
-+00080006  00000106 R_PPC_ADDR16_HA   00080000   .text \+ 4000020
-+0008000a  00000104 R_PPC_ADDR16_LO   00080000   .text \+ 4000020
-+0408002a  00000306 R_PPC_ADDR16_HA   00080000   _start \+ 0
-+0408002e  00000304 R_PPC_ADDR16_LO   00080000   _start \+ 0
-diff -Naur binutils-2.19.1.orig/ld/testsuite/ld-powerpc/vxworks-relax.s binutils-2.19.1/ld/testsuite/ld-powerpc/vxworks-relax.s
---- binutils-2.19.1.orig/ld/testsuite/ld-powerpc/vxworks-relax.s       1969-12-31 16:00:00.000000000 -0800
-+++ binutils-2.19.1/ld/testsuite/ld-powerpc/vxworks-relax.s    2009-03-02 05:52:34.000000000 -0800
-@@ -0,0 +1,13 @@
-+      .globl  _start
-+_start:
-+      bl      elsewhere
-+      lis 9,elsewhere@ha
-+        la 0,elsewhere@l(9)
-+
-+
-+      .section .far,"ax",@progbits
-+elsewhere:
-+      bl      _start
-+
-+      .section .pad
-+      .space 0x4000000
-diff -Naur binutils-2.19.1.orig/opcodes/ChangeLog binutils-2.19.1/opcodes/ChangeLog
---- binutils-2.19.1.orig/opcodes/ChangeLog     2008-12-23 05:54:52.000000000 -0800
-+++ binutils-2.19.1/opcodes/ChangeLog  2009-03-03 17:08:22.000000000 -0800
-@@ -1,3 +1,93 @@
-+2009-03-03  Peter Bergner  <bergner@vnet.ibm.com>
-+
-+      * ppc-opc.c (powerpc_opcodes): Reorder the opcode table so that
-+      instructions from newer processors are listed before older ones.
-+
-+2009-03-02  Alan Modra  <amodra@bigpond.net.au>
-+
-+      2009-02-26  Peter Bergner  <bergner@vnet.ibm.com>
-+      * ppc-dis.c (powerpc_init_dialect): Extend -Mpower7 to disassemble
-+      the power7 and the isel instructions.
-+      * ppc-opc.c (insert_xc6, extract_xc6): New static functions.
-+      (insert_dm, extract_dm): Likewise.
-+      (XB6): Update comment to include XX2 form.
-+      (WC, XC6, SHW, DMEX, UIM, XX2, XX3RC, XX4, XX2_MASK, XX2UIM_MASK,
-+      XX2BF_MASK, XX3BF_MASK, XX3SHW_MASK, XX4_MASK, XWC_MASK, POWER7): New.
-+      (RemoveXX3DM): Delete.
-+      (powerpc_opcodes): <"lfdp", "lfdpx", "mcrxr", "mftb", "mffgpr",
-+      "mftgpr">: Deprecate for POWER7.
-+      <"fres", "fres.", "frsqrtes", "frsqrtes.", "fre", "fre.", "frsqrte",
-+      "frsqrte.">: Deprecate the three operand form and enable the two
-+      operand form for POWER7 and later.
-+      <"wait">: Extend to accept optional parameter.  Enable for POWER7.
-+      <"waitsrv", "waitimpl">: Add extended opcodes.
-+      <"ldbrx", "stdbrx">: Enable for POWER7.
-+      <"cdtbcd", "cbcdtd", "addg6s">: Add POWER6 opcodes.
-+      <"bpermd", "dcbtstt", "dcbtt", "dcffix.", "dcffix", "divde.", "divde",
-+      "divdeo.", "divdeo", "divdeu.", "divdeu", "divdeuo.", "divdeuo",
-+      "divwe.", "divwe", "divweo.", "divweo", "divweu.", "divweu", "divweuo.",
-+      "divweuo", "fcfids.", "fcfids", "fcfidu.", "fcfidu", "fcfidus.",
-+      "fcfidus", "fctidu.", "fctidu", "fctiduz.", "fctiduz", "fctiwu.",
-+      "fctiwu", "fctiwuz.", "fctiwuz", "ftdiv", "ftsqrt", "lbarx", "lfiwzx",
-+      "lharx", "popcntd", "popcntw", "stbcx.", "sthcx.">: Add POWER7 opcodes.
-+      <"lxsdux", "lxsdx", "lxvdsx", "lxvw4ux", "lxvw4x", "stxsdux", "stxsdx",
-+      "stxvw4ux", "stxvw4x", "xsabsdp", "xsadddp", "xscmpodp", "xscmpudp",
-+      "xscpsgndp", "xscvdpsp", "xscvdpsxds", "xscvdpsxws", "xscvdpuxds",
-+      "xscvdpuxws", "xscvspdp", "xscvsxddp", "xscvuxddp", "xsdivdp",
-+      "xsmaddadp", "xsmaddmdp", "xsmaxdp", "xsmindp", "xsmsubadp",
-+      "xsmsubmdp", "xsmuldp", "xsnabsdp", "xsnegdp", "xsnmaddadp",
-+      "xsnmaddmdp", "xsnmsubadp", "xsnmsubmdp", "xsrdpi", "xsrdpic",
-+      "xsrdpim", "xsrdpip", "xsrdpiz", "xsredp", "xsrsqrtedp", "xssqrtdp",
-+      "xssubdp", "xstdivdp", "xstsqrtdp", "xvabsdp", "xvabssp", "xvadddp",
-+      "xvaddsp", "xvcmpeqdp.", "xvcmpeqdp", "xvcmpeqsp.", "xvcmpeqsp",
-+      "xvcmpgedp.", "xvcmpgedp", "xvcmpgesp.", "xvcmpgesp", "xvcmpgtdp.",
-+      "xvcmpgtdp", "xvcmpgtsp.", "xvcmpgtsp", "xvcpsgnsp", "xvcvdpsp",
-+      "xvcvdpsxds", "xvcvdpsxws", "xvcvdpuxds", "xvcvdpuxws", "xvcvspdp",
-+      "xvcvspsxds", "xvcvspsxws", "xvcvspuxds", "xvcvspuxws", "xvcvsxddp",
-+      "xvcvsxdsp", "xvcvsxwdp", "xvcvsxwsp", "xvcvuxddp", "xvcvuxdsp",
-+      "xvcvuxwdp", "xvcvuxwsp", "xvdivdp", "xvdivsp", "xvmaddadp",
-+      "xvmaddasp", "xvmaddmdp", "xvmaddmsp", "xvmaxdp", "xvmaxsp",
-+      "xvmindp", "xvminsp", "xvmovsp", "xvmsubadp", "xvmsubasp", "xvmsubmdp",
-+      "xvmsubmsp", "xvmuldp", "xvmulsp", "xvnabsdp", "xvnabssp", "xvnegdp",
-+      "xvnegsp", "xvnmaddadp", "xvnmaddasp", "xvnmaddmdp", "xvnmaddmsp",
-+      "xvnmsubadp", "xvnmsubasp", "xvnmsubmdp", "xvnmsubmsp", "xvrdpi",
-+      "xvrdpic", "xvrdpim", "xvrdpip", "xvrdpiz", "xvredp", "xvresp",
-+      "xvrspi", "xvrspic", "xvrspim", "xvrspip", "xvrspiz", "xvrsqrtedp",
-+      "xvrsqrtesp", "xvsqrtdp", "xvsqrtsp", "xvsubdp", "xvsubsp", "xvtdivdp",
-+      "xvtdivsp", "xvtsqrtdp", "xvtsqrtsp", "xxland", "xxlandc", "xxlnor",
-+      "xxlor", "xxlxor", "xxmrghw", "xxmrglw", "xxsel", "xxsldwi", "xxspltd",
-+      "xxspltw", "xxswapd">: Add VSX opcodes.
-+
-+      2009-02-19  Peter Bergner  <bergner@vnet.ibm.com>
-+      * ppc-opc.c (powerpc_opcodes) <"lfdepx", "stfdepx">: Fix the first
-+      operand to be a float point register (FRT/FRS).
-+
-+      2009-02-05  Peter Bergner  <bergner@vnet.ibm.com>
-+      * ppc-opc.c: Update copyright year.
-+      (powerpc_opcodes) <"dcbt", "dcbtst">: Deprecate the Embedded operand
-+      ordering for POWER4 and later and use the correct Server ordering.
-+
-+      2009-01-14  Peter Bergner  <bergner@vnet.ibm.com>
-+      * ppc-dis.c (print_insn_powerpc): Skip insn if it is deprecated.
-+      * ppc-opc.c (powerpc_opcodes) <mtfsf, mtfsf.>: Deprecate the two
-+      operand form and enable the four operand form for POWER6 and later.
-+      <mtfsfi, mtfsfi.>: Deprecate the two operand form and enable the
-+      three operand form for POWER6 and later.
-+
-+      2009-01-09  Peter Bergner  <bergner@vnet.ibm.com>
-+      * ppc-opc.c (PPCNONE): Define.
-+      (NOPOWER4): Delete.
-+      (powerpc_opcodes): Initialize the new "deprecated" field.
-+
-+      2008-12-04  Ben Elliston  <bje@au.ibm.com>
-+      * ppc-dis.c (powerpc_init_dialect): Do not set PPC_OPCODE_BOOKE
-+      for -Mbooke.
-+      (print_ppc_disassembler_options): Update usage.
-+      * ppc-opc.c (DE, DES, DEO, DE_MASK): Remove.
-+      (BOOKE64): Remove.
-+      (PPCCHLK64): Likewise.
-+      (powerpc_opcodes): Remove all BOOKE64 instructions.
-+
- 2008-11-27  Alan Modra  <amodra@bigpond.net.au>
-       * ppc-opc.c (extract_sprg): Correct operand range check.
-diff -Naur binutils-2.19.1.orig/opcodes/ppc-dis.c binutils-2.19.1/opcodes/ppc-dis.c
---- binutils-2.19.1.orig/opcodes/ppc-dis.c     2008-08-01 21:38:51.000000000 -0700
-+++ binutils-2.19.1/opcodes/ppc-dis.c  2009-03-02 05:59:36.000000000 -0800
-@@ -63,7 +63,7 @@
-     dialect |= PPC_OPCODE_PPCPS;
-   else if (info->disassembler_options
-       && strstr (info->disassembler_options, "booke") != NULL)
--    dialect |= PPC_OPCODE_BOOKE | PPC_OPCODE_BOOKE64;
-+    dialect |= PPC_OPCODE_BOOKE;
-   else if ((info->mach == bfd_mach_ppc_e500mc)
-          || (info->disassembler_options
-              && strstr (info->disassembler_options, "e500mc") != NULL))
-@@ -112,8 +112,9 @@
-   if (info->disassembler_options
-       && strstr (info->disassembler_options, "power7") != NULL)
--    dialect |= PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6
--             | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX;
-+    dialect |= PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5
-+             | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7
-+             | PPC_OPCODE_ISEL | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX;
-   if (info->disassembler_options
-       && strstr (info->disassembler_options, "vsx") != NULL)
-@@ -266,7 +267,8 @@
-       continue;
-       if ((insn & opcode->mask) != opcode->opcode
--        || (opcode->flags & dialect) == 0)
-+        || (opcode->flags & dialect) == 0
-+        || (opcode->deprecated & dialect) != 0)
-       continue;
-       /* Make two passes over the operands.  First see if any of them
-@@ -402,7 +404,7 @@
- The following PPC specific disassembler options are supported for use with\n\
- the -M switch:\n");
--  fprintf (stream, "  booke|booke32|booke64    Disassemble the BookE instructions\n");
-+  fprintf (stream, "  booke                    Disassemble the BookE instructions\n");
-   fprintf (stream, "  e300                     Disassemble the e300 instructions\n");
-   fprintf (stream, "  e500|e500x2              Disassemble the e500 instructions\n");
-   fprintf (stream, "  e500mc                   Disassemble the e500mc instructions\n");
-diff -Naur binutils-2.19.1.orig/opcodes/ppc-opc.c binutils-2.19.1/opcodes/ppc-opc.c
---- binutils-2.19.1.orig/opcodes/ppc-opc.c     2008-12-23 05:54:52.000000000 -0800
-+++ binutils-2.19.1/opcodes/ppc-opc.c  2009-03-03 17:08:22.000000000 -0800
-@@ -1,6 +1,6 @@
- /* ppc-opc.c -- PowerPC opcode list
-    Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004,
--   2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-+   2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-    Written by Ian Lance Taylor, Cygnus Support
-    This file is part of the GNU opcodes library.
-@@ -81,6 +81,10 @@
- static long extract_xb6 (unsigned long, ppc_cpu_t, int *);
- static unsigned long insert_xb6s (unsigned long, long, ppc_cpu_t, const char **);
- static long extract_xb6s (unsigned long, ppc_cpu_t, int *);
-+static unsigned long insert_xc6 (unsigned long, long, ppc_cpu_t, const char **);
-+static long extract_xc6 (unsigned long, ppc_cpu_t, int *);
-+static unsigned long insert_dm (unsigned long, long, ppc_cpu_t, const char **);
-+static long extract_dm (unsigned long, ppc_cpu_t, int *);
\f
- /* The operands table.
-@@ -223,19 +227,9 @@
- #define D CT + 1
-   { 0xffff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
--  /* The DE field in a DE form instruction.  This is like D, but is 12
--     bits only.  */
--#define DE D + 1
--  { 0xfff, 4, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
--
--  /* The DES field in a DES form instruction.  This is like DS, but is 14
--     bits only (12 stored.)  */
--#define DES DE + 1
--  { 0x3ffc, 2, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
--
-   /* The DQ field in a DQ form instruction.  This is like D, but the
-      lower four bits are forced to zero. */
--#define DQ DES + 1
-+#define DQ D + 1
-   { 0xfff0, 0, NULL, NULL,
-     PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DQ },
-@@ -320,8 +314,9 @@
- #define LIA LI + 1
-   { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
--  /* The LS field in an X (sync) form instruction.  */
-+  /* The LS or WC field in an X (sync or wait) form instruction.  */
- #define LS LIA + 1
-+#define WC LS
-   { 0x3, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
-   /* The ME field in an M form instruction.  */
-@@ -617,7 +612,7 @@
- #define XA6 XT6 + 1
-   { 0x3f, -1, insert_xa6, extract_xa6, PPC_OPERAND_VSR },
--  /* The XB field in an XX3 form instruction.  This is split.  */
-+  /* The XB field in an XX2 or XX3 form instruction.  This is split.  */
- #define XB6 XA6 + 1
-   { 0x3f, -1, insert_xb6, extract_xb6, PPC_OPERAND_VSR },
-@@ -627,9 +622,22 @@
- #define XB6S XB6 + 1
-   { 0x3f, -1, insert_xb6s, extract_xb6s, PPC_OPERAND_FAKE },
--  /* The DM field in an XX3 form instruction.  */
--#define DM XB6S + 1
-+  /* The XC field in an XX4 form instruction.  This is split.  */
-+#define XC6 XB6S + 1
-+  { 0x3f, -1, insert_xc6, extract_xc6, PPC_OPERAND_VSR },
-+
-+  /* The DM or SHW field in an XX3 form instruction.  */
-+#define DM XC6 + 1
-+#define SHW DM
-   { 0x3, 8, NULL, NULL, 0 },
-+
-+  /* The DM field in an extended mnemonic XX3 form instruction.  */
-+#define DMEX DM + 1
-+  { 0x3, 8, insert_dm, extract_dm, 0 },
-+
-+  /* The UIM field in an XX2 form instruction.  */
-+#define UIM DMEX + 1
-+  { 0x3, 16, NULL, NULL, 0 },
- };
- const unsigned int num_powerpc_operands = (sizeof (powerpc_operands)
-@@ -1405,6 +1413,49 @@
-     *invalid = 1;
-   return 0;
- }
-+
-+/* The XC field in an XX4 form instruction.  This is split.  */
-+
-+static unsigned long
-+insert_xc6 (unsigned long insn,
-+          long value,
-+          ppc_cpu_t dialect ATTRIBUTE_UNUSED,
-+          const char **errmsg ATTRIBUTE_UNUSED)
-+{
-+  return insn | ((value & 0x1f) << 6) | ((value & 0x20) >> 2);
-+}
-+
-+static long
-+extract_xc6 (unsigned long insn,
-+           ppc_cpu_t dialect ATTRIBUTE_UNUSED,
-+           int *invalid ATTRIBUTE_UNUSED)
-+{
-+  return ((insn << 2) & 0x20) | ((insn >> 6) & 0x1f);
-+}
-+
-+static unsigned long
-+insert_dm (unsigned long insn,
-+         long value,
-+         ppc_cpu_t dialect ATTRIBUTE_UNUSED,
-+         const char **errmsg)
-+{
-+  if (value != 0 && value != 1)
-+    *errmsg = _("invalid constant");
-+  return insn | (((value) ? 3 : 0) << 8);
-+}
-+
-+static long
-+extract_dm (unsigned long insn,
-+          ppc_cpu_t dialect ATTRIBUTE_UNUSED,
-+          int *invalid)
-+{
-+  long value;
-+
-+  value = (insn >> 8) & 3;
-+  if (value != 0 && value != 3)
-+    *invalid = 1;
-+  return (value) ? 1 : 0;
-+}
\f
- /* Macros used to form opcodes.  */
-@@ -1487,10 +1538,6 @@
- #define DSO(op, xop) (OP (op) | ((xop) & 0x3))
- #define DS_MASK DSO (0x3f, 3)
--/* A DE form instruction.  */
--#define DEO(op, xop) (OP (op) | ((xop) & 0xf))
--#define DE_MASK DEO (0x3e, 0xf)
--
- /* An EVSEL form instruction.  */
- #define EVSEL(op, xop) (OP (op) | (((unsigned long)(xop)) & 0xff) << 3)
- #define EVSEL_MASK EVSEL(0x3f, 0xff)
-@@ -1550,11 +1597,17 @@
- /* An X form instruction.  */
- #define X(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1))
-+/* An XX2 form instruction.  */
-+#define XX2(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1ff) << 2))
-+
- /* An XX3 form instruction.  */
- #define XX3(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0xff) << 3))
--#define XX3DM(op, xop, dm) (XX3 (op, ((unsigned long)(xop) & 0x1f)) \
--  | ((((unsigned long)(dm)) & 0x3) << 8))
-+/* An XX3 form instruction with the RC bit specified.  */
-+#define XX3RC(op, xop, rc) (OP (op) | (((rc) & 1) << 10) | ((((unsigned long)(xop)) & 0x7f) << 3))
-+
-+/* An XX4 form instruction.  */
-+#define XX4(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x3) << 4))
- /* A Z form instruction.  */
- #define Z(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1ff) << 1))
-@@ -1571,11 +1624,30 @@
- /* The mask for an XX1 form instruction.  */
- #define XX1_MASK X (0x3f, 0x3ff)
-+/* The mask for an XX2 form instruction.  */
-+#define XX2_MASK (XX2 (0x3f, 0x1ff) | (0x1f << 16))
-+
-+/* The mask for an XX2 form instruction with the UIM bits specified.  */
-+#define XX2UIM_MASK (XX2 (0x3f, 0x1ff) | (7 << 18))
-+
-+/* The mask for an XX2 form instruction with the BF bits specified.  */
-+#define XX2BF_MASK (XX2_MASK | (3 << 21) | (1))
-+
- /* The mask for an XX3 form instruction.  */
- #define XX3_MASK XX3 (0x3f, 0xff)
--/* The mask for an XX3 form instruction with the DM bits specified.  */
-+/* The mask for an XX3 form instruction with the BF bits specified.  */
-+#define XX3BF_MASK (XX3 (0x3f, 0xff) | (3 << 21) | (1))
-+
-+/* The mask for an XX3 form instruction with the DM or SHW bits specified.  */
- #define XX3DM_MASK (XX3 (0x3f, 0x1f) | (1 << 10))
-+#define XX3SHW_MASK XX3DM_MASK
-+
-+/* The mask for an XX4 form instruction.  */
-+#define XX4_MASK XX4 (0x3f, 0x3)
-+
-+/* An X form wait instruction with everything filled in except the WC field.  */
-+#define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
- /* The mask for a Z form instruction.  */
- #define Z_MASK ZRC (0x3f, 0x1ff, 1)
-@@ -1810,13 +1882,14 @@
\f
- /* Smaller names for the flags so each entry in the opcodes table will
-    fit on a single line.  */
-+#define PPCNONE       0
- #undef        PPC
- #define PPC   PPC_OPCODE_PPC
- #define PPCCOM        PPC_OPCODE_PPC | PPC_OPCODE_COMMON
--#define NOPOWER4 PPC_OPCODE_NOPOWER4 | PPCCOM
- #define POWER4        PPC_OPCODE_POWER4
- #define POWER5        PPC_OPCODE_POWER5
- #define POWER6        PPC_OPCODE_POWER6
-+#define POWER7        PPC_OPCODE_POWER7
- #define CELL  PPC_OPCODE_CELL
- #define PPC32 PPC_OPCODE_32 | PPC_OPCODE_PPC
- #define PPC64 PPC_OPCODE_64 | PPC_OPCODE_PPC
-@@ -1841,7 +1914,6 @@
- #define MFDEC1        PPC_OPCODE_POWER
- #define MFDEC2        PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE
- #define BOOKE PPC_OPCODE_BOOKE
--#define BOOKE64 PPC_OPCODE_BOOKE64
- #define CLASSIC PPC_OPCODE_CLASSIC
- #define PPCE300 PPC_OPCODE_E300
- #define PPCSPE        PPC_OPCODE_SPE
-@@ -1850,7 +1922,6 @@
- #define PPCBRLK PPC_OPCODE_BRLOCK
- #define PPCPMR        PPC_OPCODE_PMR
- #define PPCCHLK PPC_OPCODE_CACHELCK
--#define PPCCHLK64     PPC_OPCODE_CACHELCK | PPC_OPCODE_BOOKE64
- #define PPCRFMCI      PPC_OPCODE_RFMCI
- #define E500MC  PPC_OPCODE_E500MC
\f
-@@ -1876,3253 +1947,3347 @@
-    constrained otherwise by disassembler operation.  */
- const struct powerpc_opcode powerpc_opcodes[] = {
--{"attn",      X(0,256),       X_MASK,      POWER4,    {0}},
--{"tdlgti",    OPTO(2,TOLGT),  OPTO_MASK,   PPC64,     {RA, SI}},
--{"tdllti",    OPTO(2,TOLLT),  OPTO_MASK,   PPC64,     {RA, SI}},
--{"tdeqi",     OPTO(2,TOEQ),   OPTO_MASK,   PPC64,     {RA, SI}},
--{"tdlgei",    OPTO(2,TOLGE),  OPTO_MASK,   PPC64,     {RA, SI}},
--{"tdlnli",    OPTO(2,TOLNL),  OPTO_MASK,   PPC64,     {RA, SI}},
--{"tdllei",    OPTO(2,TOLLE),  OPTO_MASK,   PPC64,     {RA, SI}},
--{"tdlngi",    OPTO(2,TOLNG),  OPTO_MASK,   PPC64,     {RA, SI}},
--{"tdgti",     OPTO(2,TOGT),   OPTO_MASK,   PPC64,     {RA, SI}},
--{"tdgei",     OPTO(2,TOGE),   OPTO_MASK,   PPC64,     {RA, SI}},
--{"tdnli",     OPTO(2,TONL),   OPTO_MASK,   PPC64,     {RA, SI}},
--{"tdlti",     OPTO(2,TOLT),   OPTO_MASK,   PPC64,     {RA, SI}},
--{"tdlei",     OPTO(2,TOLE),   OPTO_MASK,   PPC64,     {RA, SI}},
--{"tdngi",     OPTO(2,TONG),   OPTO_MASK,   PPC64,     {RA, SI}},
--{"tdnei",     OPTO(2,TONE),   OPTO_MASK,   PPC64,     {RA, SI}},
--{"tdi",               OP(2),          OP_MASK,     PPC64,     {TO, RA, SI}},
--
--{"twlgti",    OPTO(3,TOLGT),  OPTO_MASK,   PPCCOM,    {RA, SI}},
--{"tlgti",     OPTO(3,TOLGT),  OPTO_MASK,   PWRCOM,    {RA, SI}},
--{"twllti",    OPTO(3,TOLLT),  OPTO_MASK,   PPCCOM,    {RA, SI}},
--{"tllti",     OPTO(3,TOLLT),  OPTO_MASK,   PWRCOM,    {RA, SI}},
--{"tweqi",     OPTO(3,TOEQ),   OPTO_MASK,   PPCCOM,    {RA, SI}},
--{"teqi",      OPTO(3,TOEQ),   OPTO_MASK,   PWRCOM,    {RA, SI}},
--{"twlgei",    OPTO(3,TOLGE),  OPTO_MASK,   PPCCOM,    {RA, SI}},
--{"tlgei",     OPTO(3,TOLGE),  OPTO_MASK,   PWRCOM,    {RA, SI}},
--{"twlnli",    OPTO(3,TOLNL),  OPTO_MASK,   PPCCOM,    {RA, SI}},
--{"tlnli",     OPTO(3,TOLNL),  OPTO_MASK,   PWRCOM,    {RA, SI}},
--{"twllei",    OPTO(3,TOLLE),  OPTO_MASK,   PPCCOM,    {RA, SI}},
--{"tllei",     OPTO(3,TOLLE),  OPTO_MASK,   PWRCOM,    {RA, SI}},
--{"twlngi",    OPTO(3,TOLNG),  OPTO_MASK,   PPCCOM,    {RA, SI}},
--{"tlngi",     OPTO(3,TOLNG),  OPTO_MASK,   PWRCOM,    {RA, SI}},
--{"twgti",     OPTO(3,TOGT),   OPTO_MASK,   PPCCOM,    {RA, SI}},
--{"tgti",      OPTO(3,TOGT),   OPTO_MASK,   PWRCOM,    {RA, SI}},
--{"twgei",     OPTO(3,TOGE),   OPTO_MASK,   PPCCOM,    {RA, SI}},
--{"tgei",      OPTO(3,TOGE),   OPTO_MASK,   PWRCOM,    {RA, SI}},
--{"twnli",     OPTO(3,TONL),   OPTO_MASK,   PPCCOM,    {RA, SI}},
--{"tnli",      OPTO(3,TONL),   OPTO_MASK,   PWRCOM,    {RA, SI}},
--{"twlti",     OPTO(3,TOLT),   OPTO_MASK,   PPCCOM,    {RA, SI}},
--{"tlti",      OPTO(3,TOLT),   OPTO_MASK,   PWRCOM,    {RA, SI}},
--{"twlei",     OPTO(3,TOLE),   OPTO_MASK,   PPCCOM,    {RA, SI}},
--{"tlei",      OPTO(3,TOLE),   OPTO_MASK,   PWRCOM,    {RA, SI}},
--{"twngi",     OPTO(3,TONG),   OPTO_MASK,   PPCCOM,    {RA, SI}},
--{"tngi",      OPTO(3,TONG),   OPTO_MASK,   PWRCOM,    {RA, SI}},
--{"twnei",     OPTO(3,TONE),   OPTO_MASK,   PPCCOM,    {RA, SI}},
--{"tnei",      OPTO(3,TONE),   OPTO_MASK,   PWRCOM,    {RA, SI}},
--{"twi",               OP(3),          OP_MASK,     PPCCOM,    {TO, RA, SI}},
--{"ti",                OP(3),          OP_MASK,     PWRCOM,    {TO, RA, SI}},
--
--{"ps_cmpu0",  X  (4,   0), X_MASK|(3<<21), PPCPS,     {BF, FRA, FRB}},
--{"vaddubm",   VX (4,   0),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vmaxub",    VX (4,   2),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vrlb",      VX (4,   4),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcmpequb",  VXR(4,   6,0),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"vmuloub",   VX (4,   8),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vaddfp",    VX (4,  10),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"psq_lx",    XW (4,   6,0),  XW_MASK,     PPCPS,     {FRT,RA,RB,PSWM,PSQM}},
--{"vmrghb",    VX (4,  12),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"psq_stx",   XW (4,   7,0),  XW_MASK,     PPCPS,     {FRS,RA,RB,PSWM,PSQM}},
--{"vpkuhum",   VX (4,  14),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"mulhhwu",   XRC(4,   8,0),  X_MASK,  PPC405|PPC440, {RT, RA, RB}},
--{"mulhhwu.",  XRC(4,   8,1),  X_MASK,  PPC405|PPC440, {RT, RA, RB}},
--{"ps_sum0",   A  (4,  10,0),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"ps_sum0.",  A  (4,  10,1),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"ps_sum1",   A  (4,  11,0),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"ps_sum1.",  A  (4,  11,1),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"ps_muls0",  A  (4,  12,0),  AFRB_MASK,   PPCPS,     {FRT, FRA, FRC}},
--{"machhwu",   XO (4,  12,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"ps_muls0.", A  (4,  12,1),  AFRB_MASK,   PPCPS,     {FRT, FRA, FRC}},
--{"machhwu.",  XO (4,  12,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"ps_muls1",  A  (4,  13,0),  AFRB_MASK,   PPCPS,     {FRT, FRA, FRC}},
--{"ps_muls1.", A  (4,  13,1),  AFRB_MASK,   PPCPS,     {FRT, FRA, FRC}},
--{"ps_madds0", A  (4,  14,0),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"ps_madds0.",        A  (4,  14,1),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"ps_madds1", A  (4,  15,0),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"ps_madds1.",        A  (4,  15,1),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"vmhaddshs", VXA(4,  32),    VXA_MASK,    PPCVEC,    {VD, VA, VB, VC}},
--{"vmhraddshs",        VXA(4,  33),    VXA_MASK,    PPCVEC,    {VD, VA, VB, VC}},
--{"vmladduhm", VXA(4,  34),    VXA_MASK,    PPCVEC,    {VD, VA, VB, VC}},
--{"ps_div",    A  (4,  18,0),  AFRC_MASK,   PPCPS,     {FRT, FRA, FRB}},
--{"vmsumubm",  VXA(4,  36),    VXA_MASK,    PPCVEC,    {VD, VA, VB, VC}},
--{"ps_div.",   A  (4,  18,1),  AFRC_MASK,   PPCPS,     {FRT, FRA, FRB}},
--{"vmsummbm",  VXA(4,  37),    VXA_MASK,    PPCVEC,    {VD, VA, VB, VC}},
--{"vmsumuhm",  VXA(4,  38),    VXA_MASK,    PPCVEC,    {VD, VA, VB, VC}},
--{"vmsumuhs",  VXA(4,  39),    VXA_MASK,    PPCVEC,    {VD, VA, VB, VC}},
--{"ps_sub",    A  (4,  20,0),  AFRC_MASK,   PPCPS,     {FRT, FRA, FRB}},
--{"vmsumshm",  VXA(4,  40),    VXA_MASK,    PPCVEC,    {VD, VA, VB, VC}},
--{"ps_sub.",   A  (4,  20,1),  AFRC_MASK,   PPCPS,     {FRT, FRA, FRB}},
--{"vmsumshs",  VXA(4,  41),    VXA_MASK,    PPCVEC,    {VD, VA, VB, VC}},
--{"ps_add",    A  (4,  21,0),  AFRC_MASK,   PPCPS,     {FRT, FRA, FRB}},
--{"vsel",      VXA(4,  42),    VXA_MASK,    PPCVEC,    {VD, VA, VB, VC}},
--{"ps_add.",   A  (4,  21,1),  AFRC_MASK,   PPCPS,     {FRT, FRA, FRB}},
--{"vperm",     VXA(4,  43),    VXA_MASK,    PPCVEC,    {VD, VA, VB, VC}},
--{"vsldoi",    VXA(4,  44),    VXA_MASK,    PPCVEC,    {VD, VA, VB, SHB}},
--{"ps_sel",    A  (4,  23,0),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"vmaddfp",   VXA(4,  46),    VXA_MASK,    PPCVEC,    {VD, VA, VC, VB}},
--{"ps_sel.",   A  (4,  23,1),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"vnmsubfp",  VXA(4,  47),    VXA_MASK,    PPCVEC,    {VD, VA, VC, VB}},
--{"ps_res",    A  (4,  24,0), AFRAFRC_MASK, PPCPS,     {FRT, FRB}},
--{"ps_res.",   A  (4,  24,1), AFRAFRC_MASK, PPCPS,     {FRT, FRB}},
--{"ps_mul",    A  (4,  25,0), AFRB_MASK,    PPCPS,     {FRT, FRA, FRC}},
--{"ps_mul.",   A  (4,  25,1),  AFRB_MASK,   PPCPS,     {FRT, FRA, FRC}},
--{"ps_rsqrte", A  (4,  26,0), AFRAFRC_MASK, PPCPS,     {FRT, FRB}},
--{"ps_rsqrte.",        A  (4,  26,1), AFRAFRC_MASK, PPCPS,     {FRT, FRB}},
--{"ps_msub",   A  (4,  28,0),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"ps_msub.",  A  (4,  28,1),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"ps_madd",   A  (4,  29,0),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"ps_madd.",  A  (4,  29,1),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"ps_nmsub",  A  (4,  30,0),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"ps_nmsub.", A  (4,  30,1),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"ps_nmadd",  A  (4,  31,0),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"ps_nmadd.", A  (4,  31,1),  A_MASK,      PPCPS,     {FRT, FRA, FRC, FRB}},
--{"ps_cmpo0",  X  (4,  32), X_MASK|(3<<21), PPCPS,     {BF, FRA, FRB}},
--{"vadduhm",   VX (4,  64),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vmaxuh",    VX (4,  66),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vrlh",      VX (4,  68),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcmpequh",  VXR(4,  70,0),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"vmulouh",   VX (4,  72),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vsubfp",    VX (4,  74),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"psq_lux",   XW (4,  38,0),  XW_MASK,     PPCPS,     {FRT,RA,RB,PSWM,PSQM}},
--{"vmrghh",    VX (4,  76),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"psq_stux",  XW (4,  39,0),  XW_MASK,     PPCPS,     {FRS,RA,RB,PSWM,PSQM}},
--{"vpkuwum",   VX (4,  78),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"ps_neg",    XRC(4,  40,0),  XRA_MASK,    PPCPS,     {FRT, FRB}},
--{"mulhhw",    XRC(4,  40,0),  X_MASK,  PPC405|PPC440, {RT, RA, RB}},
--{"ps_neg.",   XRC(4,  40,1),  XRA_MASK,    PPCPS,     {FRT, FRB}},
--{"mulhhw.",   XRC(4,  40,1),  X_MASK,  PPC405|PPC440, {RT, RA, RB}},
--{"machhw",    XO (4,  44,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"machhw.",   XO (4,  44,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmachhw",   XO (4,  46,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmachhw.",  XO (4,  46,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"ps_cmpu1",  X  (4,  64), X_MASK|(3<<21), PPCPS,     {BF, FRA, FRB}},
--{"vadduwm",   VX (4,  128),   VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vmaxuw",    VX (4,  130),   VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vrlw",      VX (4,  132),   VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcmpequw",  VXR(4,  134,0), VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"vmrghw",    VX (4,  140),   VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vpkuhus",   VX (4,  142),   VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"ps_mr",     XRC(4,  72,0),  XRA_MASK,    PPCPS,     {FRT, FRB}},
--{"ps_mr.",    XRC(4,  72,1),  XRA_MASK,    PPCPS,     {FRT, FRB}},
--{"machhwsu",  XO (4,  76,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"machhwsu.", XO (4,  76,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"ps_cmpo1",  X  (4,  96), X_MASK|(3<<21), PPCPS,     {BF, FRA, FRB}},
--{"vcmpeqfp",  VXR(4, 198,0),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"vpkuwus",   VX (4, 206),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"machhws",   XO (4, 108,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"machhws.",  XO (4, 108,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmachhws",  XO (4, 110,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmachhws.", XO (4, 110,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"vmaxsb",    VX (4, 258),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vslb",      VX (4, 260),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vmulosb",   VX (4, 264),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vrefp",     VX (4, 266),    VX_MASK,     PPCVEC,    {VD, VB}},
--{"vmrglb",    VX (4, 268),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vpkshus",   VX (4, 270),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"ps_nabs",   XRC(4, 136,0),  XRA_MASK,    PPCPS,     {FRT, FRB}},
--{"mulchwu",   XRC(4, 136,0),  X_MASK,  PPC405|PPC440, {RT, RA, RB}},
--{"ps_nabs.",  XRC(4, 136,1),  XRA_MASK,    PPCPS,     {FRT, FRB}},
--{"mulchwu.",  XRC(4, 136,1),  X_MASK,  PPC405|PPC440, {RT, RA, RB}},
--{"macchwu",   XO (4, 140,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"macchwu.",  XO (4, 140,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"vmaxsh",    VX (4, 322),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vslh",      VX (4, 324),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vmulosh",   VX (4, 328),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vrsqrtefp", VX (4, 330),    VX_MASK,     PPCVEC,    {VD, VB}},
--{"vmrglh",    VX (4, 332),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vpkswus",   VX (4, 334),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"mulchw",    XRC(4, 168,0),  X_MASK,  PPC405|PPC440, {RT, RA, RB}},
--{"mulchw.",   XRC(4, 168,1),  X_MASK,  PPC405|PPC440, {RT, RA, RB}},
--{"macchw",    XO (4, 172,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"macchw.",   XO (4, 172,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmacchw",   XO (4, 174,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmacchw.",  XO (4, 174,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"vaddcuw",   VX (4, 384),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vmaxsw",    VX (4, 386),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vslw",      VX (4, 388),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vexptefp",  VX (4, 394),    VX_MASK,     PPCVEC,    {VD, VB}},
--{"vmrglw",    VX (4, 396),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vpkshss",   VX (4, 398),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"macchwsu",  XO (4, 204,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"macchwsu.", XO (4, 204,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"vsl",               VX (4, 452),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcmpgefp",  VXR(4, 454,0),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"vlogefp",   VX (4, 458),    VX_MASK,     PPCVEC,    {VD, VB}},
--{"vpkswss",   VX (4, 462),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"macchws",   XO (4, 236,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"macchws.",  XO (4, 236,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmacchws",  XO (4, 238,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmacchws.", XO (4, 238,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"evaddw",    VX (4, 512),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vaddubs",   VX (4, 512),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evaddiw",   VX (4, 514),    VX_MASK,     PPCSPE,    {RS, RB, UIMM}},
--{"vminub",    VX (4, 514),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evsubfw",   VX (4, 516),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evsubw",    VX (4, 516),    VX_MASK,     PPCSPE,    {RS, RB, RA}},
--{"vsrb",      VX (4, 516),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evsubifw",  VX (4, 518),    VX_MASK,     PPCSPE,    {RS, UIMM, RB}},
--{"evsubiw",   VX (4, 518),    VX_MASK,     PPCSPE,    {RS, RB, UIMM}},
--{"vcmpgtub",  VXR(4, 518,0),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"evabs",     VX (4, 520),    VX_MASK,     PPCSPE,    {RS, RA}},
--{"vmuleub",   VX (4, 520),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evneg",     VX (4, 521),    VX_MASK,     PPCSPE,    {RS, RA}},
--{"evextsb",   VX (4, 522),    VX_MASK,     PPCSPE,    {RS, RA}},
--{"vrfin",     VX (4, 522),    VX_MASK,     PPCVEC,    {VD, VB}},
--{"evextsh",   VX (4, 523),    VX_MASK,     PPCSPE,    {RS, RA}},
--{"evrndw",    VX (4, 524),    VX_MASK,     PPCSPE,    {RS, RA}},
--{"vspltb",    VX (4, 524),    VX_MASK,     PPCVEC,    {VD, VB, UIMM}},
--{"evcntlzw",  VX (4, 525),    VX_MASK,     PPCSPE,    {RS, RA}},
--{"evcntlsw",  VX (4, 526),    VX_MASK,     PPCSPE,    {RS, RA}},
--{"vupkhsb",   VX (4, 526),    VX_MASK,     PPCVEC,    {VD, VB}},
--{"brinc",     VX (4, 527),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"ps_abs",    XRC(4, 264,0),  XRA_MASK,    PPCPS,     {FRT, FRB}},
--{"ps_abs.",   XRC(4, 264,1),  XRA_MASK,    PPCPS,     {FRT, FRB}},
--{"evand",     VX (4, 529),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evandc",    VX (4, 530),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evxor",     VX (4, 534),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmr",      VX (4, 535),    VX_MASK,     PPCSPE,    {RS, RA, BBA}},
--{"evor",      VX (4, 535),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evnor",     VX (4, 536),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evnot",     VX (4, 536),    VX_MASK,     PPCSPE,    {RS, RA, BBA}},
--{"get",               APU(4, 268,0),  APU_RA_MASK, PPC405,    {RT, FSL}},
--{"eveqv",     VX (4, 537),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evorc",     VX (4, 539),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evnand",    VX (4, 542),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evsrwu",    VX (4, 544),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evsrws",    VX (4, 545),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evsrwiu",   VX (4, 546),    VX_MASK,     PPCSPE,    {RS, RA, EVUIMM}},
--{"evsrwis",   VX (4, 547),    VX_MASK,     PPCSPE,    {RS, RA, EVUIMM}},
--{"evslw",     VX (4, 548),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evslwi",    VX (4, 550),    VX_MASK,     PPCSPE,    {RS, RA, EVUIMM}},
--{"evrlw",     VX (4, 552),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evsplati",  VX (4, 553),    VX_MASK,     PPCSPE,    {RS, SIMM}},
--{"evrlwi",    VX (4, 554),    VX_MASK,     PPCSPE,    {RS, RA, EVUIMM}},
--{"evsplatfi", VX (4, 555),    VX_MASK,     PPCSPE,    {RS, SIMM}},
--{"evmergehi", VX (4, 556),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmergelo", VX (4, 557),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmergehilo",       VX (4, 558),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmergelohi",       VX (4, 559),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evcmpgtu",  VX (4, 560),    VX_MASK,     PPCSPE,    {CRFD, RA, RB}},
--{"evcmpgts",  VX (4, 561),    VX_MASK,     PPCSPE,    {CRFD, RA, RB}},
--{"evcmpltu",  VX (4, 562),    VX_MASK,     PPCSPE,    {CRFD, RA, RB}},
--{"evcmplts",  VX (4, 563),    VX_MASK,     PPCSPE,    {CRFD, RA, RB}},
--{"evcmpeq",   VX (4, 564),    VX_MASK,     PPCSPE,    {CRFD, RA, RB}},
--{"cget",      APU(4, 284,0),  APU_RA_MASK, PPC405,    {RT, FSL}},
--{"vadduhs",   VX (4, 576),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vminuh",    VX (4, 578),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vsrh",      VX (4, 580),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcmpgtuh",  VXR(4, 582,0),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"vmuleuh",   VX (4, 584),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vrfiz",     VX (4, 586),    VX_MASK,     PPCVEC,    {VD, VB}},
--{"vsplth",    VX (4, 588),    VX_MASK,     PPCVEC,    {VD, VB, UIMM}},
--{"vupkhsh",   VX (4, 590),    VX_MASK,     PPCVEC,    {VD, VB}},
--{"nget",      APU(4, 300,0),  APU_RA_MASK, PPC405,    {RT, FSL}},
--{"evsel",     EVSEL(4,79),    EVSEL_MASK,  PPCSPE,    {RS, RA, RB, CRFS}},
--{"ncget",     APU(4, 316,0),  APU_RA_MASK, PPC405,    {RT, FSL}},
--{"evfsadd",   VX (4, 640),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vadduws",   VX (4, 640),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evfssub",   VX (4, 641),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vminuw",    VX (4, 642),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evfsabs",   VX (4, 644),    VX_MASK,     PPCSPE,    {RS, RA}},
--{"vsrw",      VX (4, 644),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evfsnabs",  VX (4, 645),    VX_MASK,     PPCSPE,    {RS, RA}},
--{"evfsneg",   VX (4, 646),    VX_MASK,     PPCSPE,    {RS, RA}},
--{"vcmpgtuw",  VXR(4, 646,0),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"evfsmul",   VX (4, 648),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evfsdiv",   VX (4, 649),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vrfip",     VX (4, 650),    VX_MASK,     PPCVEC,    {VD, VB}},
--{"evfscmpgt", VX (4, 652),    VX_MASK,     PPCSPE,    {CRFD, RA, RB}},
--{"vspltw",    VX (4, 652),    VX_MASK,     PPCVEC,    {VD, VB, UIMM}},
--{"evfscmplt", VX (4, 653),    VX_MASK,     PPCSPE,    {CRFD, RA, RB}},
--{"evfscmpeq", VX (4, 654),    VX_MASK,     PPCSPE,    {CRFD, RA, RB}},
--{"vupklsb",   VX (4, 654),    VX_MASK,     PPCVEC,    {VD, VB}},
--{"evfscfui",  VX (4, 656),    VX_MASK,     PPCSPE,    {RS, RB}},
--{"evfscfsi",  VX (4, 657),    VX_MASK,     PPCSPE,    {RS, RB}},
--{"evfscfuf",  VX (4, 658),    VX_MASK,     PPCSPE,    {RS, RB}},
--{"evfscfsf",  VX (4, 659),    VX_MASK,     PPCSPE,    {RS, RB}},
--{"evfsctui",  VX (4, 660),    VX_MASK,     PPCSPE,    {RS, RB}},
--{"evfsctsi",  VX (4, 661),    VX_MASK,     PPCSPE,    {RS, RB}},
--{"evfsctuf",  VX (4, 662),    VX_MASK,     PPCSPE,    {RS, RB}},
--{"evfsctsf",  VX (4, 663),    VX_MASK,     PPCSPE,    {RS, RB}},
--{"evfsctuiz", VX (4, 664),    VX_MASK,     PPCSPE,    {RS, RB}},
--{"put",               APU(4, 332,0),  APU_RT_MASK, PPC405,    {RA, FSL}},
--{"evfsctsiz", VX (4, 666),    VX_MASK,     PPCSPE,    {RS, RB}},
--{"evfststgt", VX (4, 668),    VX_MASK,     PPCSPE,    {CRFD, RA, RB}},
--{"evfststlt", VX (4, 669),    VX_MASK,     PPCSPE,    {CRFD, RA, RB}},
--{"evfststeq", VX (4, 670),    VX_MASK,     PPCSPE,    {CRFD, RA, RB}},
--{"cput",      APU(4, 348,0),  APU_RT_MASK, PPC405,    {RA, FSL}},
--{"efsadd",    VX (4, 704),    VX_MASK,     PPCEFS,    {RS, RA, RB}},
--{"efssub",    VX (4, 705),    VX_MASK,     PPCEFS,    {RS, RA, RB}},
--{"efsabs",    VX (4, 708),    VX_MASK,     PPCEFS,    {RS, RA}},
--{"vsr",               VX (4, 708),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"efsnabs",   VX (4, 709),    VX_MASK,     PPCEFS,    {RS, RA}},
--{"efsneg",    VX (4, 710),    VX_MASK,     PPCEFS,    {RS, RA}},
--{"vcmpgtfp",  VXR(4, 710,0),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"efsmul",    VX (4, 712),    VX_MASK,     PPCEFS,    {RS, RA, RB}},
--{"efsdiv",    VX (4, 713),    VX_MASK,     PPCEFS,    {RS, RA, RB}},
--{"vrfim",     VX (4, 714),    VX_MASK,     PPCVEC,    {VD, VB}},
--{"efscmpgt",  VX (4, 716),    VX_MASK,     PPCEFS,    {CRFD, RA, RB}},
--{"efscmplt",  VX (4, 717),    VX_MASK,     PPCEFS,    {CRFD, RA, RB}},
--{"efscmpeq",  VX (4, 718),    VX_MASK,     PPCEFS,    {CRFD, RA, RB}},
--{"vupklsh",   VX (4, 718),    VX_MASK,     PPCVEC,    {VD, VB}},
--{"efscfd",    VX (4, 719),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efscfui",   VX (4, 720),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efscfsi",   VX (4, 721),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efscfuf",   VX (4, 722),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efscfsf",   VX (4, 723),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efsctui",   VX (4, 724),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efsctsi",   VX (4, 725),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efsctuf",   VX (4, 726),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efsctsf",   VX (4, 727),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efsctuiz",  VX (4, 728),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"nput",      APU(4, 364,0),  APU_RT_MASK, PPC405,    {RA, FSL}},
--{"efsctsiz",  VX (4, 730),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efststgt",  VX (4, 732),    VX_MASK,     PPCEFS,    {CRFD, RA, RB}},
--{"efststlt",  VX (4, 733),    VX_MASK,     PPCEFS,    {CRFD, RA, RB}},
--{"efststeq",  VX (4, 734),    VX_MASK,     PPCEFS,    {CRFD, RA, RB}},
--{"efdadd",    VX (4, 736),    VX_MASK,     PPCEFS,    {RS, RA, RB}},
--{"efdsub",    VX (4, 737),    VX_MASK,     PPCEFS,    {RS, RA, RB}},
--{"efdcfuid",  VX (4, 738),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efdcfsid",  VX (4, 739),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efdabs",    VX (4, 740),    VX_MASK,     PPCEFS,    {RS, RA}},
--{"efdnabs",   VX (4, 741),    VX_MASK,     PPCEFS,    {RS, RA}},
--{"efdneg",    VX (4, 742),    VX_MASK,     PPCEFS,    {RS, RA}},
--{"efdmul",    VX (4, 744),    VX_MASK,     PPCEFS,    {RS, RA, RB}},
--{"efddiv",    VX (4, 745),    VX_MASK,     PPCEFS,    {RS, RA, RB}},
--{"efdctuidz", VX (4, 746),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efdctsidz", VX (4, 747),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efdcmpgt",  VX (4, 748),    VX_MASK,     PPCEFS,    {CRFD, RA, RB}},
--{"efdcmplt",  VX (4, 749),    VX_MASK,     PPCEFS,    {CRFD, RA, RB}},
--{"efdcmpeq",  VX (4, 750),    VX_MASK,     PPCEFS,    {CRFD, RA, RB}},
--{"efdcfs",    VX (4, 751),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efdcfui",   VX (4, 752),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efdcfsi",   VX (4, 753),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efdcfuf",   VX (4, 754),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efdcfsf",   VX (4, 755),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efdctui",   VX (4, 756),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efdctsi",   VX (4, 757),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efdctuf",   VX (4, 758),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efdctsf",   VX (4, 759),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efdctuiz",  VX (4, 760),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"ncput",     APU(4, 380,0),  APU_RT_MASK, PPC405,    {RA, FSL}},
--{"efdctsiz",  VX (4, 762),    VX_MASK,     PPCEFS,    {RS, RB}},
--{"efdtstgt",  VX (4, 764),    VX_MASK,     PPCEFS,    {CRFD, RA, RB}},
--{"efdtstlt",  VX (4, 765),    VX_MASK,     PPCEFS,    {CRFD, RA, RB}},
--{"efdtsteq",  VX (4, 766),    VX_MASK,     PPCEFS,    {CRFD, RA, RB}},
--{"evlddx",    VX (4, 768),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vaddsbs",   VX (4, 768),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evldd",     VX (4, 769),    VX_MASK,     PPCSPE,    {RS, EVUIMM_8, RA}},
--{"evldwx",    VX (4, 770),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vminsb",    VX (4, 770),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evldw",     VX (4, 771),    VX_MASK,     PPCSPE,    {RS, EVUIMM_8, RA}},
--{"evldhx",    VX (4, 772),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vsrab",     VX (4, 772),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evldh",     VX (4, 773),    VX_MASK,     PPCSPE,    {RS, EVUIMM_8, RA}},
--{"vcmpgtsb",  VXR(4, 774,0),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"evlhhesplatx",VX (4, 776),  VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vmulesb",   VX (4, 776),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evlhhesplat",       VX (4, 777),    VX_MASK,     PPCSPE,    {RS, EVUIMM_2, RA}},
--{"vcfux",     VX (4, 778),    VX_MASK,     PPCVEC,    {VD, VB, UIMM}},
--{"evlhhousplatx",VX(4, 780),  VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vspltisb",  VX (4, 780),    VX_MASK,     PPCVEC,    {VD, SIMM}},
--{"evlhhousplat",VX (4, 781),  VX_MASK,     PPCSPE,    {RS, EVUIMM_2, RA}},
--{"evlhhossplatx",VX(4, 782),  VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vpkpx",     VX (4, 782),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evlhhossplat",VX (4, 783),  VX_MASK,     PPCSPE,    {RS, EVUIMM_2, RA}},
--{"mullhwu",   XRC(4, 392,0),  X_MASK,  PPC405|PPC440, {RT, RA, RB}},
--{"evlwhex",   VX (4, 784),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"mullhwu.",  XRC(4, 392,1),  X_MASK,  PPC405|PPC440, {RT, RA, RB}},
--{"evlwhe",    VX (4, 785),    VX_MASK,     PPCSPE,    {RS, EVUIMM_4, RA}},
--{"evlwhoux",  VX (4, 788),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evlwhou",   VX (4, 789),    VX_MASK,     PPCSPE,    {RS, EVUIMM_4, RA}},
--{"evlwhosx",  VX (4, 790),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evlwhos",   VX (4, 791),    VX_MASK,     PPCSPE,    {RS, EVUIMM_4, RA}},
--{"maclhwu",   XO (4, 396,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"evlwwsplatx",       VX (4, 792),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"maclhwu.",  XO (4, 396,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"evlwwsplat",        VX (4, 793),    VX_MASK,     PPCSPE,    {RS, EVUIMM_4, RA}},
--{"evlwhsplatx",       VX (4, 796),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evlwhsplat",        VX (4, 797),    VX_MASK,     PPCSPE,    {RS, EVUIMM_4, RA}},
--{"evstddx",   VX (4, 800),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evstdd",    VX (4, 801),    VX_MASK,     PPCSPE,    {RS, EVUIMM_8, RA}},
--{"evstdwx",   VX (4, 802),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evstdw",    VX (4, 803),    VX_MASK,     PPCSPE,    {RS, EVUIMM_8, RA}},
--{"evstdhx",   VX (4, 804),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evstdh",    VX (4, 805),    VX_MASK,     PPCSPE,    {RS, EVUIMM_8, RA}},
--{"evstwhex",  VX (4, 816),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evstwhe",   VX (4, 817),    VX_MASK,     PPCSPE,    {RS, EVUIMM_4, RA}},
--{"evstwhox",  VX (4, 820),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evstwho",   VX (4, 821),    VX_MASK,     PPCSPE,    {RS, EVUIMM_4, RA}},
--{"evstwwex",  VX (4, 824),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evstwwe",   VX (4, 825),    VX_MASK,     PPCSPE,    {RS, EVUIMM_4, RA}},
--{"evstwwox",  VX (4, 828),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evstwwo",   VX (4, 829),    VX_MASK,     PPCSPE,    {RS, EVUIMM_4, RA}},
--{"vaddshs",   VX (4, 832),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vminsh",    VX (4, 834),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vsrah",     VX (4, 836),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcmpgtsh",  VXR(4, 838,0),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"vmulesh",   VX (4, 840),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcfsx",     VX (4, 842),    VX_MASK,     PPCVEC,    {VD, VB, UIMM}},
--{"vspltish",  VX (4, 844),    VX_MASK,     PPCVEC,    {VD, SIMM}},
--{"vupkhpx",   VX (4, 846),    VX_MASK,     PPCVEC,    {VD, VB}},
--{"mullhw",    XRC(4, 424,0),  X_MASK,  PPC405|PPC440, {RT, RA, RB}},
--{"mullhw.",   XRC(4, 424,1),  X_MASK,  PPC405|PPC440, {RT, RA, RB}},
--{"maclhw",    XO (4, 428,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"maclhw.",   XO (4, 428,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmaclhw",   XO (4, 430,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmaclhw.",  XO (4, 430,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"vaddsws",   VX (4, 896),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vminsw",    VX (4, 898),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vsraw",     VX (4, 900),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcmpgtsw",  VXR(4, 902,0),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"vctuxs",    VX (4, 906),    VX_MASK,     PPCVEC,    {VD, VB, UIMM}},
--{"vspltisw",  VX (4, 908),    VX_MASK,     PPCVEC,    {VD, SIMM}},
--{"maclhwsu",  XO (4, 460,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"maclhwsu.", XO (4, 460,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"vcmpbfp",   VXR(4, 966,0),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"vctsxs",    VX (4, 970),    VX_MASK,     PPCVEC,    {VD, VB, UIMM}},
--{"vupklpx",   VX (4, 974),    VX_MASK,     PPCVEC,    {VD, VB}},
--{"maclhws",   XO (4, 492,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"maclhws.",  XO (4, 492,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmaclhws",  XO (4, 494,0,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmaclhws.", XO (4, 494,0,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"vsububm",   VX (4,1024),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vavgub",    VX (4,1026),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evmhessf",  VX (4,1027),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vand",      VX (4,1028),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcmpequb.", VXR(4,   6,1),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"udi0fcm.",  APU(4, 515,0), APU_MASK, PPC405|PPC440, {URT, URA, URB}},
--{"udi0fcm",   APU(4, 515,1), APU_MASK, PPC405|PPC440, {URT, URA, URB}},
--{"evmhossf",  VX (4,1031),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmheumi",  VX (4,1032),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhesmi",  VX (4,1033),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vmaxfp",    VX (4,1034),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evmhesmf",  VX (4,1035),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhoumi",  VX (4,1036),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vslo",      VX (4,1036),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evmhosmi",  VX (4,1037),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhosmf",  VX (4,1039),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"machhwuo",  XO (4,  12,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"machhwuo.", XO (4,  12,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"ps_merge00",        XOPS(4,528,0),  XOPS_MASK,   PPCPS,     {FRT, FRA, FRB}},
--{"ps_merge00.",       XOPS(4,528,1),  XOPS_MASK,   PPCPS,     {FRT, FRA, FRB}},
--{"evmhessfa", VX (4,1059),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhossfa", VX (4,1063),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmheumia", VX (4,1064),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhesmia", VX (4,1065),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhesmfa", VX (4,1067),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhoumia", VX (4,1068),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhosmia", VX (4,1069),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhosmfa", VX (4,1071),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vsubuhm",   VX (4,1088),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vavguh",    VX (4,1090),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vandc",     VX (4,1092),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcmpequh.", VXR(4,  70,1),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"udi1fcm.",  APU(4, 547,0), APU_MASK, PPC405|PPC440, {URT, URA, URB}},
--{"udi1fcm",   APU(4, 547,1), APU_MASK, PPC405|PPC440, {URT, URA, URB}},   
--{"evmwhssf",  VX (4,1095),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwlumi",  VX (4,1096),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vminfp",    VX (4,1098),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evmwhumi",  VX (4,1100),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vsro",      VX (4,1100),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evmwhsmi",  VX (4,1101),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwhsmf",  VX (4,1103),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwssf",   VX (4,1107),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"machhwo",   XO (4,  44,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"evmwumi",   VX (4,1112),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"machhwo.",  XO (4,  44,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"evmwsmi",   VX (4,1113),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwsmf",   VX (4,1115),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"nmachhwo",  XO (4,  46,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmachhwo.", XO (4,  46,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"ps_merge01",        XOPS(4,560,0),  XOPS_MASK,   PPCPS,     {FRT, FRA, FRB}},
--{"ps_merge01.",       XOPS(4,560,1),  XOPS_MASK,   PPCPS,     {FRT, FRA, FRB}},
--{"evmwhssfa", VX (4,1127),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwlumia", VX (4,1128),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwhumia", VX (4,1132),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwhsmia", VX (4,1133),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwhsmfa", VX (4,1135),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwssfa",  VX (4,1139),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwumia",  VX (4,1144),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwsmia",  VX (4,1145),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwsmfa",  VX (4,1147),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vsubuwm",   VX (4,1152),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vavguw",    VX (4,1154),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vor",               VX (4,1156),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcmpequw.", VXR(4, 134,1),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"udi2fcm.",  APU(4, 579,0), APU_MASK, PPC405|PPC440, {URT, URA, URB}},
--{"udi2fcm",   APU(4, 579,1), APU_MASK, PPC405|PPC440, {URT, URA, URB}},   
--{"machhwsuo", XO (4,  76,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"machhwsuo.",        XO (4,  76,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"ps_merge10",        XOPS(4,592,0),  XOPS_MASK,   PPCPS,     {FRT, FRA, FRB}},
--{"ps_merge10.",       XOPS(4,592,1),  XOPS_MASK,   PPCPS,     {FRT, FRA, FRB}},
--{"evaddusiaaw",       VX (4,1216),    VX_MASK,     PPCSPE,    {RS, RA}},
--{"evaddssiaaw",       VX (4,1217),    VX_MASK,     PPCSPE,    {RS, RA}},
--{"evsubfusiaaw",VX (4,1218),  VX_MASK,     PPCSPE,    {RS, RA}},
--{"evsubfssiaaw",VX (4,1219),  VX_MASK,     PPCSPE,    {RS, RA}},
--{"evmra",     VX (4,1220),    VX_MASK,     PPCSPE,    {RS, RA}},
--{"vxor",      VX (4,1220),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evdivws",   VX (4,1222),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vcmpeqfp.", VXR(4, 198,1),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"udi3fcm.",  APU(4, 611,0), APU_MASK, PPC405|PPC440, {URT, URA, URB}},
--{"udi3fcm",   APU(4, 611,1), APU_MASK, PPC405|PPC440, {URT, URA, URB}},   
--{"evdivwu",   VX (4,1223),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evaddumiaaw",       VX (4,1224),    VX_MASK,     PPCSPE,    {RS, RA}},
--{"evaddsmiaaw",       VX (4,1225),    VX_MASK,     PPCSPE,    {RS, RA}},
--{"evsubfumiaaw",VX (4,1226),  VX_MASK,     PPCSPE,    {RS, RA}},
--{"evsubfsmiaaw",VX (4,1227),  VX_MASK,     PPCSPE,    {RS, RA}},
--{"machhwso",  XO (4, 108,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"machhwso.", XO (4, 108,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmachhwso", XO (4, 110,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmachhwso.",        XO (4, 110,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"ps_merge11",        XOPS(4,624,0),  XOPS_MASK,   PPCPS,     {FRT, FRA, FRB}},
--{"ps_merge11.",       XOPS(4,624,1),  XOPS_MASK,   PPCPS,     {FRT, FRA, FRB}},
--{"evmheusiaaw",       VX (4,1280),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhessiaaw",       VX (4,1281),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vavgsb",    VX (4,1282),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evmhessfaaw",       VX (4,1283),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhousiaaw",       VX (4,1284),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vnor",      VX (4,1284),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evmhossiaaw",       VX (4,1285),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"udi4fcm.",  APU(4, 643,0), APU_MASK, PPC405|PPC440, {URT, URA, URB}},
--{"udi4fcm",   APU(4, 643,1), APU_MASK, PPC405|PPC440, {URT, URA, URB}},
--{"evmhossfaaw",       VX (4,1287),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmheumiaaw",       VX (4,1288),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhesmiaaw",       VX (4,1289),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhesmfaaw",       VX (4,1291),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhoumiaaw",       VX (4,1292),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhosmiaaw",       VX (4,1293),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhosmfaaw",       VX (4,1295),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"macchwuo",  XO (4, 140,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"macchwuo.", XO (4, 140,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"evmhegumiaa",       VX (4,1320),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhegsmiaa",       VX (4,1321),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhegsmfaa",       VX (4,1323),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhogumiaa",       VX (4,1324),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhogsmiaa",       VX (4,1325),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhogsmfaa",       VX (4,1327),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwlusiaaw",       VX (4,1344),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwlssiaaw",       VX (4,1345),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vavgsh",    VX (4,1346),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"udi5fcm.",  APU(4, 675,0), APU_MASK, PPC405|PPC440, {URT, URA, URB}},
--{"udi5fcm",   APU(4, 675,1), APU_MASK, PPC405|PPC440, {URT, URA, URB}},
--{"evmwlumiaaw",       VX (4,1352),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwlsmiaaw",       VX (4,1353),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwssfaa", VX (4,1363),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"macchwo",   XO (4, 172,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"evmwumiaa", VX (4,1368),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"macchwo.",  XO (4, 172,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"evmwsmiaa", VX (4,1369),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwsmfaa", VX (4,1371),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"nmacchwo",  XO (4, 174,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmacchwo.", XO (4, 174,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"evmheusianw",       VX (4,1408),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vsubcuw",   VX (4,1408),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evmhessianw",       VX (4,1409),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vavgsw",    VX (4,1410),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"evmhessfanw",       VX (4,1411),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhousianw",       VX (4,1412),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhossianw",       VX (4,1413),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"udi6fcm.",  APU(4, 707,0), APU_MASK, PPC405|PPC440, {URT, URA, URB}},
--{"udi6fcm",   APU(4, 707,1), APU_MASK, PPC405|PPC440, {URT, URA, URB}},
--{"evmhossfanw",       VX (4,1415),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmheumianw",       VX (4,1416),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhesmianw",       VX (4,1417),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhesmfanw",       VX (4,1419),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhoumianw",       VX (4,1420),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhosmianw",       VX (4,1421),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhosmfanw",       VX (4,1423),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"macchwsuo", XO (4, 204,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"macchwsuo.",        XO (4, 204,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"evmhegumian",       VX (4,1448),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhegsmian",       VX (4,1449),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhegsmfan",       VX (4,1451),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhogumian",       VX (4,1452),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhogsmian",       VX (4,1453),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmhogsmfan",       VX (4,1455),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwlusianw",       VX (4,1472),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwlssianw",       VX (4,1473),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"vcmpgefp.", VXR(4, 454,1),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"udi7fcm.",  APU(4, 739,0), APU_MASK, PPC405|PPC440, {URT, URA, URB}},
--{"udi7fcm",   APU(4, 739,1), APU_MASK, PPC405|PPC440, {URT, URA, URB}},
--{"evmwlumianw",       VX (4,1480),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwlsmianw",       VX (4,1481),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwssfan", VX (4,1491),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"macchwso",  XO (4, 236,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"evmwumian", VX (4,1496),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"macchwso.", XO (4, 236,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"evmwsmian", VX (4,1497),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"evmwsmfan", VX (4,1499),    VX_MASK,     PPCSPE,    {RS, RA, RB}},
--{"nmacchwso", XO (4, 238,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmacchwso.",        XO (4, 238,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"vsububs",   VX (4,1536),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"mfvscr",    VX (4,1540),    VX_MASK,     PPCVEC,    {VD}},
--{"vcmpgtub.", VXR(4, 518,1),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"udi8fcm.",  APU(4, 771,0),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"udi8fcm",   APU(4, 771,1),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"vsum4ubs",  VX (4,1544),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vsubuhs",   VX (4,1600),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"mtvscr",    VX (4,1604),    VX_MASK,     PPCVEC,    {VB}},
--{"vcmpgtuh.", VXR(4, 582,1),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"vsum4shs",  VX (4,1608),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"udi9fcm.",  APU(4, 804,0),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"udi9fcm",   APU(4, 804,1),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"vsubuws",   VX (4,1664),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcmpgtuw.", VXR(4, 646,1),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"udi10fcm.", APU(4, 835,0),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"udi10fcm",  APU(4, 835,1),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"vsum2sws",  VX (4,1672),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcmpgtfp.", VXR(4, 710,1),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"udi11fcm.", APU(4, 867,0),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"udi11fcm",  APU(4, 867,1),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"vsubsbs",   VX (4,1792),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcmpgtsb.", VXR(4, 774,1),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"udi12fcm.", APU(4, 899,0),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"udi12fcm",  APU(4, 899,1),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"vsum4sbs",  VX (4,1800),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"maclhwuo",  XO (4, 396,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"maclhwuo.", XO (4, 396,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"vsubshs",   VX (4,1856),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcmpgtsh.", VXR(4, 838,1),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"udi13fcm.", APU(4, 931,0),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"udi13fcm",  APU(4, 931,1),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"maclhwo",   XO (4, 428,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"maclhwo.",  XO (4, 428,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmaclhwo",  XO (4, 430,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmaclhwo.", XO (4, 430,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"vsubsws",   VX (4,1920),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"vcmpgtsw.", VXR(4, 902,1),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"udi14fcm.", APU(4, 963,0),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"udi14fcm",  APU(4, 963,1),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"vsumsws",   VX (4,1928),    VX_MASK,     PPCVEC,    {VD, VA, VB}},
--{"maclhwsuo", XO (4, 460,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"maclhwsuo.",        XO (4, 460,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"vcmpbfp.",  VXR(4, 966,1),  VXR_MASK,    PPCVEC,    {VD, VA, VB}},
--{"udi15fcm.", APU(4, 995,0),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"udi15fcm",  APU(4, 995,1),  APU_MASK,    PPC440,    {URT, URA, URB}},
--{"maclhwso",  XO (4, 492,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"maclhwso.", XO (4, 492,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmaclhwso", XO (4, 494,1,0),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"nmaclhwso.",        XO (4, 494,1,1),XO_MASK, PPC405|PPC440, {RT, RA, RB}},
--{"dcbz_l",    X  (4,1014),    XRT_MASK,    PPCPS,     {RA, RB}},
--
--{"mulli",     OP(7),          OP_MASK,     PPCCOM,    {RT, RA, SI}},
--{"muli",      OP(7),          OP_MASK,     PWRCOM,    {RT, RA, SI}},
--
--{"subfic",    OP(8),          OP_MASK,     PPCCOM,    {RT, RA, SI}},
--{"sfi",               OP(8),          OP_MASK,     PWRCOM,    {RT, RA, SI}},
--
--{"dozi",      OP(9),          OP_MASK,     M601,      {RT, RA, SI}},
--
--{"bce",               B(9,0,0),       B_MASK,      BOOKE64,   {BO, BI, BD}},
--{"bcel",      B(9,0,1),       B_MASK,      BOOKE64,   {BO, BI, BD}},
--{"bcea",      B(9,1,0),       B_MASK,      BOOKE64,   {BO, BI, BDA}},
--{"bcela",     B(9,1,1),       B_MASK,      BOOKE64,   {BO, BI, BDA}},
--
--{"cmplwi",    OPL(10,0),      OPL_MASK,    PPCCOM,    {OBF, RA, UI}},
--{"cmpldi",    OPL(10,1),      OPL_MASK,    PPC64,     {OBF, RA, UI}},
--{"cmpli",     OP(10),         OP_MASK,     PPC,       {BF, L, RA, UI}},
--{"cmpli",     OP(10),         OP_MASK,     PWRCOM,    {BF, RA, UI}},
--
--{"cmpwi",     OPL(11,0),      OPL_MASK,    PPCCOM,    {OBF, RA, SI}},
--{"cmpdi",     OPL(11,1),      OPL_MASK,    PPC64,     {OBF, RA, SI}},
--{"cmpi",      OP(11),         OP_MASK,     PPC,       {BF, L, RA, SI}},
--{"cmpi",      OP(11),         OP_MASK,     PWRCOM,    {BF, RA, SI}},
--
--{"addic",     OP(12),         OP_MASK,     PPCCOM,    {RT, RA, SI}},
--{"ai",                OP(12),         OP_MASK,     PWRCOM,    {RT, RA, SI}},
--{"subic",     OP(12),         OP_MASK,     PPCCOM,    {RT, RA, NSI}},
--
--{"addic.",    OP(13),         OP_MASK,     PPCCOM,    {RT, RA, SI}},
--{"ai.",               OP(13),         OP_MASK,     PWRCOM,    {RT, RA, SI}},
--{"subic.",    OP(13),         OP_MASK,     PPCCOM,    {RT, RA, NSI}},
--
--{"li",                OP(14),         DRA_MASK,    PPCCOM,    {RT, SI}},
--{"lil",               OP(14),         DRA_MASK,    PWRCOM,    {RT, SI}},
--{"addi",      OP(14),         OP_MASK,     PPCCOM,    {RT, RA0, SI}},
--{"cal",               OP(14),         OP_MASK,     PWRCOM,    {RT, D, RA0}},
--{"subi",      OP(14),         OP_MASK,     PPCCOM,    {RT, RA0, NSI}},
--{"la",                OP(14),         OP_MASK,     PPCCOM,    {RT, D, RA0}},
--
--{"lis",               OP(15),         DRA_MASK,    PPCCOM,    {RT, SISIGNOPT}},
--{"liu",               OP(15),         DRA_MASK,    PWRCOM,    {RT, SISIGNOPT}},
--{"addis",     OP(15),         OP_MASK,     PPCCOM,    {RT, RA0, SISIGNOPT}},
--{"cau",               OP(15),         OP_MASK,     PWRCOM,    {RT, RA0, SISIGNOPT}},
--{"subis",     OP(15),         OP_MASK,     PPCCOM,    {RT, RA0, NSI}},
--
--{"bdnz-",    BBO(16,BODNZ,0,0),               BBOATBI_MASK,  PPCCOM,   {BDM}},
--{"bdnz+",    BBO(16,BODNZ,0,0),               BBOATBI_MASK,  PPCCOM,   {BDP}},
--{"bdnz",     BBO(16,BODNZ,0,0),               BBOATBI_MASK,  PPCCOM,   {BD}},
--{"bdn",      BBO(16,BODNZ,0,0),               BBOATBI_MASK,  PWRCOM,   {BD}},
--{"bdnzl-",   BBO(16,BODNZ,0,1),               BBOATBI_MASK,  PPCCOM,   {BDM}},
--{"bdnzl+",   BBO(16,BODNZ,0,1),               BBOATBI_MASK,  PPCCOM,   {BDP}},
--{"bdnzl",    BBO(16,BODNZ,0,1),               BBOATBI_MASK,  PPCCOM,   {BD}},
--{"bdnl",     BBO(16,BODNZ,0,1),               BBOATBI_MASK,  PWRCOM,   {BD}},
--{"bdnza-",   BBO(16,BODNZ,1,0),               BBOATBI_MASK,  PPCCOM,   {BDMA}},
--{"bdnza+",   BBO(16,BODNZ,1,0),               BBOATBI_MASK,  PPCCOM,   {BDPA}},
--{"bdnza",    BBO(16,BODNZ,1,0),               BBOATBI_MASK,  PPCCOM,   {BDA}},
--{"bdna",     BBO(16,BODNZ,1,0),               BBOATBI_MASK,  PWRCOM,   {BDA}},
--{"bdnzla-",  BBO(16,BODNZ,1,1),               BBOATBI_MASK,  PPCCOM,   {BDMA}},
--{"bdnzla+",  BBO(16,BODNZ,1,1),               BBOATBI_MASK,  PPCCOM,   {BDPA}},
--{"bdnzla",   BBO(16,BODNZ,1,1),               BBOATBI_MASK,  PPCCOM,   {BDA}},
--{"bdnla",    BBO(16,BODNZ,1,1),               BBOATBI_MASK,  PWRCOM,   {BDA}},
--{"bdz-",     BBO(16,BODZ,0,0),                BBOATBI_MASK,  PPCCOM,   {BDM}},
--{"bdz+",     BBO(16,BODZ,0,0),                BBOATBI_MASK,  PPCCOM,   {BDP}},
--{"bdz",      BBO(16,BODZ,0,0),                BBOATBI_MASK,  COM,      {BD}},
--{"bdzl-",    BBO(16,BODZ,0,1),                BBOATBI_MASK,  PPCCOM,   {BDM}},
--{"bdzl+",    BBO(16,BODZ,0,1),                BBOATBI_MASK,  PPCCOM,   {BDP}},
--{"bdzl",     BBO(16,BODZ,0,1),                BBOATBI_MASK,  COM,      {BD}},
--{"bdza-",    BBO(16,BODZ,1,0),                BBOATBI_MASK,  PPCCOM,   {BDMA}},
--{"bdza+",    BBO(16,BODZ,1,0),                BBOATBI_MASK,  PPCCOM,   {BDPA}},
--{"bdza",     BBO(16,BODZ,1,0),                BBOATBI_MASK,  COM,      {BDA}},
--{"bdzla-",   BBO(16,BODZ,1,1),                BBOATBI_MASK,  PPCCOM,   {BDMA}},
--{"bdzla+",   BBO(16,BODZ,1,1),                BBOATBI_MASK,  PPCCOM,   {BDPA}},
--{"bdzla",    BBO(16,BODZ,1,1),                BBOATBI_MASK,  COM,      {BDA}},
--
--{"bge-",     BBOCB(16,BOF,CBLT,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bge+",     BBOCB(16,BOF,CBLT,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bge",      BBOCB(16,BOF,CBLT,0,0),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"bnl-",     BBOCB(16,BOF,CBLT,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bnl+",     BBOCB(16,BOF,CBLT,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bnl",      BBOCB(16,BOF,CBLT,0,0),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"bgel-",    BBOCB(16,BOF,CBLT,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bgel+",    BBOCB(16,BOF,CBLT,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bgel",     BBOCB(16,BOF,CBLT,0,1),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"bnll-",    BBOCB(16,BOF,CBLT,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bnll+",    BBOCB(16,BOF,CBLT,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bnll",     BBOCB(16,BOF,CBLT,0,1),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"bgea-",    BBOCB(16,BOF,CBLT,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bgea+",    BBOCB(16,BOF,CBLT,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bgea",     BBOCB(16,BOF,CBLT,1,0),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"bnla-",    BBOCB(16,BOF,CBLT,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bnla+",    BBOCB(16,BOF,CBLT,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bnla",     BBOCB(16,BOF,CBLT,1,0),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"bgela-",   BBOCB(16,BOF,CBLT,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bgela+",   BBOCB(16,BOF,CBLT,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bgela",    BBOCB(16,BOF,CBLT,1,1),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"bnlla-",   BBOCB(16,BOF,CBLT,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bnlla+",   BBOCB(16,BOF,CBLT,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bnlla",    BBOCB(16,BOF,CBLT,1,1),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"ble-",     BBOCB(16,BOF,CBGT,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"ble+",     BBOCB(16,BOF,CBGT,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"ble",      BBOCB(16,BOF,CBGT,0,0),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"bng-",     BBOCB(16,BOF,CBGT,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bng+",     BBOCB(16,BOF,CBGT,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bng",      BBOCB(16,BOF,CBGT,0,0),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"blel-",    BBOCB(16,BOF,CBGT,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"blel+",    BBOCB(16,BOF,CBGT,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"blel",     BBOCB(16,BOF,CBGT,0,1),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"bngl-",    BBOCB(16,BOF,CBGT,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bngl+",    BBOCB(16,BOF,CBGT,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bngl",     BBOCB(16,BOF,CBGT,0,1),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"blea-",    BBOCB(16,BOF,CBGT,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"blea+",    BBOCB(16,BOF,CBGT,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"blea",     BBOCB(16,BOF,CBGT,1,0),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"bnga-",    BBOCB(16,BOF,CBGT,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bnga+",    BBOCB(16,BOF,CBGT,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bnga",     BBOCB(16,BOF,CBGT,1,0),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"blela-",   BBOCB(16,BOF,CBGT,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"blela+",   BBOCB(16,BOF,CBGT,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"blela",    BBOCB(16,BOF,CBGT,1,1),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"bngla-",   BBOCB(16,BOF,CBGT,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bngla+",   BBOCB(16,BOF,CBGT,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bngla",    BBOCB(16,BOF,CBGT,1,1),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"bne-",     BBOCB(16,BOF,CBEQ,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bne+",     BBOCB(16,BOF,CBEQ,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bne",      BBOCB(16,BOF,CBEQ,0,0),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"bnel-",    BBOCB(16,BOF,CBEQ,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bnel+",    BBOCB(16,BOF,CBEQ,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bnel",     BBOCB(16,BOF,CBEQ,0,1),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"bnea-",    BBOCB(16,BOF,CBEQ,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bnea+",    BBOCB(16,BOF,CBEQ,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bnea",     BBOCB(16,BOF,CBEQ,1,0),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"bnela-",   BBOCB(16,BOF,CBEQ,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bnela+",   BBOCB(16,BOF,CBEQ,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bnela",    BBOCB(16,BOF,CBEQ,1,1),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"bns-",     BBOCB(16,BOF,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bns+",     BBOCB(16,BOF,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bns",      BBOCB(16,BOF,CBSO,0,0),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"bnu-",     BBOCB(16,BOF,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bnu+",     BBOCB(16,BOF,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bnu",      BBOCB(16,BOF,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BD}},
--{"bnsl-",    BBOCB(16,BOF,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bnsl+",    BBOCB(16,BOF,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bnsl",     BBOCB(16,BOF,CBSO,0,1),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"bnul-",    BBOCB(16,BOF,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bnul+",    BBOCB(16,BOF,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bnul",     BBOCB(16,BOF,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BD}},
--{"bnsa-",    BBOCB(16,BOF,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bnsa+",    BBOCB(16,BOF,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bnsa",     BBOCB(16,BOF,CBSO,1,0),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"bnua-",    BBOCB(16,BOF,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bnua+",    BBOCB(16,BOF,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bnua",     BBOCB(16,BOF,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDA}},
--{"bnsla-",   BBOCB(16,BOF,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bnsla+",   BBOCB(16,BOF,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bnsla",    BBOCB(16,BOF,CBSO,1,1),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"bnula-",   BBOCB(16,BOF,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bnula+",   BBOCB(16,BOF,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bnula",    BBOCB(16,BOF,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDA}},
--
--{"blt-",     BBOCB(16,BOT,CBLT,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"blt+",     BBOCB(16,BOT,CBLT,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"blt",      BBOCB(16,BOT,CBLT,0,0),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"bltl-",    BBOCB(16,BOT,CBLT,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bltl+",    BBOCB(16,BOT,CBLT,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bltl",     BBOCB(16,BOT,CBLT,0,1),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"blta-",    BBOCB(16,BOT,CBLT,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"blta+",    BBOCB(16,BOT,CBLT,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"blta",     BBOCB(16,BOT,CBLT,1,0),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"bltla-",   BBOCB(16,BOT,CBLT,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bltla+",   BBOCB(16,BOT,CBLT,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bltla",    BBOCB(16,BOT,CBLT,1,1),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"bgt-",     BBOCB(16,BOT,CBGT,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bgt+",     BBOCB(16,BOT,CBGT,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bgt",      BBOCB(16,BOT,CBGT,0,0),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"bgtl-",    BBOCB(16,BOT,CBGT,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bgtl+",    BBOCB(16,BOT,CBGT,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bgtl",     BBOCB(16,BOT,CBGT,0,1),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"bgta-",    BBOCB(16,BOT,CBGT,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bgta+",    BBOCB(16,BOT,CBGT,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bgta",     BBOCB(16,BOT,CBGT,1,0),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"bgtla-",   BBOCB(16,BOT,CBGT,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bgtla+",   BBOCB(16,BOT,CBGT,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bgtla",    BBOCB(16,BOT,CBGT,1,1),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"beq-",     BBOCB(16,BOT,CBEQ,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"beq+",     BBOCB(16,BOT,CBEQ,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"beq",      BBOCB(16,BOT,CBEQ,0,0),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"beql-",    BBOCB(16,BOT,CBEQ,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"beql+",    BBOCB(16,BOT,CBEQ,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"beql",     BBOCB(16,BOT,CBEQ,0,1),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"beqa-",    BBOCB(16,BOT,CBEQ,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"beqa+",    BBOCB(16,BOT,CBEQ,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"beqa",     BBOCB(16,BOT,CBEQ,1,0),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"beqla-",   BBOCB(16,BOT,CBEQ,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"beqla+",   BBOCB(16,BOT,CBEQ,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"beqla",    BBOCB(16,BOT,CBEQ,1,1),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"bso-",     BBOCB(16,BOT,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bso+",     BBOCB(16,BOT,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bso",      BBOCB(16,BOT,CBSO,0,0),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"bun-",     BBOCB(16,BOT,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bun+",     BBOCB(16,BOT,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bun",      BBOCB(16,BOT,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   {CR, BD}},
--{"bsol-",    BBOCB(16,BOT,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bsol+",    BBOCB(16,BOT,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bsol",     BBOCB(16,BOT,CBSO,0,1),  BBOATCB_MASK,  COM,      {CR, BD}},
--{"bunl-",    BBOCB(16,BOT,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDM}},
--{"bunl+",    BBOCB(16,BOT,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDP}},
--{"bunl",     BBOCB(16,BOT,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   {CR, BD}},
--{"bsoa-",    BBOCB(16,BOT,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bsoa+",    BBOCB(16,BOT,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bsoa",     BBOCB(16,BOT,CBSO,1,0),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"buna-",    BBOCB(16,BOT,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"buna+",    BBOCB(16,BOT,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"buna",     BBOCB(16,BOT,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   {CR, BDA}},
--{"bsola-",   BBOCB(16,BOT,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bsola+",   BBOCB(16,BOT,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bsola",    BBOCB(16,BOT,CBSO,1,1),  BBOATCB_MASK,  COM,      {CR, BDA}},
--{"bunla-",   BBOCB(16,BOT,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDMA}},
--{"bunla+",   BBOCB(16,BOT,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDPA}},
--{"bunla",    BBOCB(16,BOT,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   {CR, BDA}},
--
--{"bdnzf-",   BBO(16,BODNZF,0,0),      BBOY_MASK,     NOPOWER4, {BI, BDM}},
--{"bdnzf+",   BBO(16,BODNZF,0,0),      BBOY_MASK,     NOPOWER4, {BI, BDP}},
--{"bdnzf",    BBO(16,BODNZF,0,0),      BBOY_MASK,     PPCCOM,   {BI, BD}},
--{"bdnzfl-",  BBO(16,BODNZF,0,1),      BBOY_MASK,     NOPOWER4, {BI, BDM}},
--{"bdnzfl+",  BBO(16,BODNZF,0,1),      BBOY_MASK,     NOPOWER4, {BI, BDP}},
--{"bdnzfl",   BBO(16,BODNZF,0,1),      BBOY_MASK,     PPCCOM,   {BI, BD}},
--{"bdnzfa-",  BBO(16,BODNZF,1,0),      BBOY_MASK,     NOPOWER4, {BI, BDMA}},
--{"bdnzfa+",  BBO(16,BODNZF,1,0),      BBOY_MASK,     NOPOWER4, {BI, BDPA}},
--{"bdnzfa",   BBO(16,BODNZF,1,0),      BBOY_MASK,     PPCCOM,   {BI, BDA}},
--{"bdnzfla-", BBO(16,BODNZF,1,1),      BBOY_MASK,     NOPOWER4, {BI, BDMA}},
--{"bdnzfla+", BBO(16,BODNZF,1,1),      BBOY_MASK,     NOPOWER4, {BI, BDPA}},
--{"bdnzfla",  BBO(16,BODNZF,1,1),      BBOY_MASK,     PPCCOM,   {BI, BDA}},
--{"bdzf-",    BBO(16,BODZF,0,0),               BBOY_MASK,     NOPOWER4, {BI, BDM}},
--{"bdzf+",    BBO(16,BODZF,0,0),               BBOY_MASK,     NOPOWER4, {BI, BDP}},
--{"bdzf",     BBO(16,BODZF,0,0),               BBOY_MASK,     PPCCOM,   {BI, BD}},
--{"bdzfl-",   BBO(16,BODZF,0,1),               BBOY_MASK,     NOPOWER4, {BI, BDM}},
--{"bdzfl+",   BBO(16,BODZF,0,1),               BBOY_MASK,     NOPOWER4, {BI, BDP}},
--{"bdzfl",    BBO(16,BODZF,0,1),               BBOY_MASK,     PPCCOM,   {BI, BD}},
--{"bdzfa-",   BBO(16,BODZF,1,0),               BBOY_MASK,     NOPOWER4, {BI, BDMA}},
--{"bdzfa+",   BBO(16,BODZF,1,0),               BBOY_MASK,     NOPOWER4, {BI, BDPA}},
--{"bdzfa",    BBO(16,BODZF,1,0),               BBOY_MASK,     PPCCOM,   {BI, BDA}},
--{"bdzfla-",  BBO(16,BODZF,1,1),               BBOY_MASK,     NOPOWER4, {BI, BDMA}},
--{"bdzfla+",  BBO(16,BODZF,1,1),               BBOY_MASK,     NOPOWER4, {BI, BDPA}},
--{"bdzfla",   BBO(16,BODZF,1,1),               BBOY_MASK,     PPCCOM,   {BI, BDA}},
--
--{"bf-",      BBO(16,BOF,0,0),         BBOAT_MASK,    PPCCOM,   {BI, BDM}},
--{"bf+",      BBO(16,BOF,0,0),         BBOAT_MASK,    PPCCOM,   {BI, BDP}},
--{"bf",             BBO(16,BOF,0,0),           BBOAT_MASK,    PPCCOM,   {BI, BD}},
--{"bbf",      BBO(16,BOF,0,0),         BBOAT_MASK,    PWRCOM,   {BI, BD}},
--{"bfl-",     BBO(16,BOF,0,1),         BBOAT_MASK,    PPCCOM,   {BI, BDM}},
--{"bfl+",     BBO(16,BOF,0,1),         BBOAT_MASK,    PPCCOM,   {BI, BDP}},
--{"bfl",      BBO(16,BOF,0,1),         BBOAT_MASK,    PPCCOM,   {BI, BD}},
--{"bbfl",     BBO(16,BOF,0,1),         BBOAT_MASK,    PWRCOM,   {BI, BD}},
--{"bfa-",     BBO(16,BOF,1,0),         BBOAT_MASK,    PPCCOM,   {BI, BDMA}},
--{"bfa+",     BBO(16,BOF,1,0),         BBOAT_MASK,    PPCCOM,   {BI, BDPA}},
--{"bfa",      BBO(16,BOF,1,0),         BBOAT_MASK,    PPCCOM,   {BI, BDA}},
--{"bbfa",     BBO(16,BOF,1,0),         BBOAT_MASK,    PWRCOM,   {BI, BDA}},
--{"bfla-",    BBO(16,BOF,1,1),         BBOAT_MASK,    PPCCOM,   {BI, BDMA}},
--{"bfla+",    BBO(16,BOF,1,1),         BBOAT_MASK,    PPCCOM,   {BI, BDPA}},
--{"bfla",     BBO(16,BOF,1,1),         BBOAT_MASK,    PPCCOM,   {BI, BDA}},
--{"bbfla",    BBO(16,BOF,1,1),         BBOAT_MASK,    PWRCOM,   {BI, BDA}},
--
--{"bdnzt-",   BBO(16,BODNZT,0,0),      BBOY_MASK,     NOPOWER4, {BI, BDM}},
--{"bdnzt+",   BBO(16,BODNZT,0,0),      BBOY_MASK,     NOPOWER4, {BI, BDP}},
--{"bdnzt",    BBO(16,BODNZT,0,0),      BBOY_MASK,     PPCCOM,   {BI, BD}},
--{"bdnztl-",  BBO(16,BODNZT,0,1),      BBOY_MASK,     NOPOWER4, {BI, BDM}},
--{"bdnztl+",  BBO(16,BODNZT,0,1),      BBOY_MASK,     NOPOWER4, {BI, BDP}},
--{"bdnztl",   BBO(16,BODNZT,0,1),      BBOY_MASK,     PPCCOM,   {BI, BD}},
--{"bdnzta-",  BBO(16,BODNZT,1,0),      BBOY_MASK,     NOPOWER4, {BI, BDMA}},
--{"bdnzta+",  BBO(16,BODNZT,1,0),      BBOY_MASK,     NOPOWER4, {BI, BDPA}},
--{"bdnzta",   BBO(16,BODNZT,1,0),      BBOY_MASK,     PPCCOM,   {BI, BDA}},
--{"bdnztla-", BBO(16,BODNZT,1,1),      BBOY_MASK,     NOPOWER4, {BI, BDMA}},
--{"bdnztla+", BBO(16,BODNZT,1,1),      BBOY_MASK,     NOPOWER4, {BI, BDPA}},
--{"bdnztla",  BBO(16,BODNZT,1,1),      BBOY_MASK,     PPCCOM,   {BI, BDA}},
--{"bdzt-",    BBO(16,BODZT,0,0),               BBOY_MASK,     NOPOWER4, {BI, BDM}},
--{"bdzt+",    BBO(16,BODZT,0,0),               BBOY_MASK,     NOPOWER4, {BI, BDP}},
--{"bdzt",     BBO(16,BODZT,0,0),               BBOY_MASK,     PPCCOM,   {BI, BD}},
--{"bdztl-",   BBO(16,BODZT,0,1),               BBOY_MASK,     NOPOWER4, {BI, BDM}},
--{"bdztl+",   BBO(16,BODZT,0,1),               BBOY_MASK,     NOPOWER4, {BI, BDP}},
--{"bdztl",    BBO(16,BODZT,0,1),               BBOY_MASK,     PPCCOM,   {BI, BD}},
--{"bdzta-",   BBO(16,BODZT,1,0),               BBOY_MASK,     NOPOWER4, {BI, BDMA}},
--{"bdzta+",   BBO(16,BODZT,1,0),               BBOY_MASK,     NOPOWER4, {BI, BDPA}},
--{"bdzta",    BBO(16,BODZT,1,0),               BBOY_MASK,     PPCCOM,   {BI, BDA}},
--{"bdztla-",  BBO(16,BODZT,1,1),               BBOY_MASK,     NOPOWER4, {BI, BDMA}},
--{"bdztla+",  BBO(16,BODZT,1,1),               BBOY_MASK,     NOPOWER4, {BI, BDPA}},
--{"bdztla",   BBO(16,BODZT,1,1),               BBOY_MASK,     PPCCOM,   {BI, BDA}},
--
--{"bt-",      BBO(16,BOT,0,0),         BBOAT_MASK,    PPCCOM,   {BI, BDM}},
--{"bt+",      BBO(16,BOT,0,0),         BBOAT_MASK,    PPCCOM,   {BI, BDP}},
--{"bt",             BBO(16,BOT,0,0),           BBOAT_MASK,    PPCCOM,   {BI, BD}},
--{"bbt",      BBO(16,BOT,0,0),         BBOAT_MASK,    PWRCOM,   {BI, BD}},
--{"btl-",     BBO(16,BOT,0,1),         BBOAT_MASK,    PPCCOM,   {BI, BDM}},
--{"btl+",     BBO(16,BOT,0,1),         BBOAT_MASK,    PPCCOM,   {BI, BDP}},
--{"btl",      BBO(16,BOT,0,1),         BBOAT_MASK,    PPCCOM,   {BI, BD}},
--{"bbtl",     BBO(16,BOT,0,1),         BBOAT_MASK,    PWRCOM,   {BI, BD}},
--{"bta-",     BBO(16,BOT,1,0),         BBOAT_MASK,    PPCCOM,   {BI, BDMA}},
--{"bta+",     BBO(16,BOT,1,0),         BBOAT_MASK,    PPCCOM,   {BI, BDPA}},
--{"bta",      BBO(16,BOT,1,0),         BBOAT_MASK,    PPCCOM,   {BI, BDA}},
--{"bbta",     BBO(16,BOT,1,0),         BBOAT_MASK,    PWRCOM,   {BI, BDA}},
--{"btla-",    BBO(16,BOT,1,1),         BBOAT_MASK,    PPCCOM,   {BI, BDMA}},
--{"btla+",    BBO(16,BOT,1,1),         BBOAT_MASK,    PPCCOM,   {BI, BDPA}},
--{"btla",     BBO(16,BOT,1,1),         BBOAT_MASK,    PPCCOM,   {BI, BDA}},
--{"bbtla",    BBO(16,BOT,1,1),         BBOAT_MASK,    PWRCOM,   {BI, BDA}},
--
--{"bc-",               B(16,0,0),      B_MASK,      PPCCOM,    {BOE, BI, BDM}},
--{"bc+",               B(16,0,0),      B_MASK,      PPCCOM,    {BOE, BI, BDP}},
--{"bc",                B(16,0,0),      B_MASK,      COM,       {BO, BI, BD}},
--{"bcl-",      B(16,0,1),      B_MASK,      PPCCOM,    {BOE, BI, BDM}},
--{"bcl+",      B(16,0,1),      B_MASK,      PPCCOM,    {BOE, BI, BDP}},
--{"bcl",               B(16,0,1),      B_MASK,      COM,       {BO, BI, BD}},
--{"bca-",      B(16,1,0),      B_MASK,      PPCCOM,    {BOE, BI, BDMA}},
--{"bca+",      B(16,1,0),      B_MASK,      PPCCOM,    {BOE, BI, BDPA}},
--{"bca",               B(16,1,0),      B_MASK,      COM,       {BO, BI, BDA}},
--{"bcla-",     B(16,1,1),      B_MASK,      PPCCOM,    {BOE, BI, BDMA}},
--{"bcla+",     B(16,1,1),      B_MASK,      PPCCOM,    {BOE, BI, BDPA}},
--{"bcla",      B(16,1,1),      B_MASK,      COM,       {BO, BI, BDA}},
--
--{"svc",               SC(17,0,0),     SC_MASK,     POWER,     {SVC_LEV, FL1, FL2}},
--{"svcl",      SC(17,0,1),     SC_MASK,     POWER,     {SVC_LEV, FL1, FL2}},
--{"sc",                SC(17,1,0),     SC_MASK,     PPC,       {LEV}},
--{"svca",      SC(17,1,0),     SC_MASK,     PWRCOM,    {SV}},
--{"svcla",     SC(17,1,1),     SC_MASK,     POWER,     {SV}},
--
--{"b",         B(18,0,0),      B_MASK,      COM,       {LI}},
--{"bl",                B(18,0,1),      B_MASK,      COM,       {LI}},
--{"ba",                B(18,1,0),      B_MASK,      COM,       {LIA}},
--{"bla",               B(18,1,1),      B_MASK,      COM,       {LIA}},
--
--{"mcrf",      XL(19,0), XLBB_MASK|(3<<21)|(3<<16), COM,       {BF, BFA}},
--
--{"bdnzlr",   XLO(19,BODNZ,16,0),      XLBOBIBB_MASK, PPCCOM,   {0}},
--{"bdnzlr-",  XLO(19,BODNZ,16,0),      XLBOBIBB_MASK, NOPOWER4, {0}},
--{"bdnzlrl",  XLO(19,BODNZ,16,1),      XLBOBIBB_MASK, PPCCOM,   {0}},
--{"bdnzlrl-", XLO(19,BODNZ,16,1),      XLBOBIBB_MASK, NOPOWER4, {0}},
--{"bdnzlr+",  XLO(19,BODNZP,16,0),     XLBOBIBB_MASK, NOPOWER4, {0}},
--{"bdnzlrl+", XLO(19,BODNZP,16,1),     XLBOBIBB_MASK, NOPOWER4, {0}},
--{"bdzlr",    XLO(19,BODZ,16,0),               XLBOBIBB_MASK, PPCCOM,   {0}},
--{"bdzlr-",   XLO(19,BODZ,16,0),               XLBOBIBB_MASK, NOPOWER4, {0}},
--{"bdzlrl",   XLO(19,BODZ,16,1),               XLBOBIBB_MASK, PPCCOM,   {0}},
--{"bdzlrl-",  XLO(19,BODZ,16,1),               XLBOBIBB_MASK, NOPOWER4, {0}},
--{"bdzlr+",   XLO(19,BODZP,16,0),      XLBOBIBB_MASK, NOPOWER4, {0}},
--{"bdzlrl+",  XLO(19,BODZP,16,1),      XLBOBIBB_MASK, NOPOWER4, {0}},
--{"blr",      XLO(19,BOU,16,0),                XLBOBIBB_MASK, PPCCOM,   {0}},
--{"br",             XLO(19,BOU,16,0),          XLBOBIBB_MASK, PWRCOM,   {0}},
--{"blrl",     XLO(19,BOU,16,1),                XLBOBIBB_MASK, PPCCOM,   {0}},
--{"brl",      XLO(19,BOU,16,1),                XLBOBIBB_MASK, PWRCOM,   {0}},
--{"bdnzlr-",  XLO(19,BODNZM4,16,0),    XLBOBIBB_MASK, POWER4,   {0}},
--{"bdnzlrl-", XLO(19,BODNZM4,16,1),    XLBOBIBB_MASK, POWER4,   {0}},
--{"bdnzlr+",  XLO(19,BODNZP4,16,0),    XLBOBIBB_MASK, POWER4,   {0}},
--{"bdnzlrl+", XLO(19,BODNZP4,16,1),    XLBOBIBB_MASK, POWER4,   {0}},
--{"bdzlr-",   XLO(19,BODZM4,16,0),     XLBOBIBB_MASK, POWER4,   {0}},
--{"bdzlrl-",  XLO(19,BODZM4,16,1),     XLBOBIBB_MASK, POWER4,   {0}},
--{"bdzlr+",   XLO(19,BODZP4,16,0),     XLBOBIBB_MASK, POWER4,   {0}},
--{"bdzlrl+",  XLO(19,BODZP4,16,1),     XLBOBIBB_MASK, POWER4,   {0}},
--
--{"bgelr",    XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bgelr-",   XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bger",     XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bnllr",    XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnllr-",   XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnlr",     XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bgelrl",   XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bgelrl-",  XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgerl",    XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bnllrl",   XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnllrl-",  XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnlrl",    XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"blelr",    XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"blelr-",   XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bler",     XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bnglr",    XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnglr-",   XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bngr",     XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"blelrl",   XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"blelrl-",  XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"blerl",    XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bnglrl",   XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnglrl-",  XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bngrl",    XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bnelr",    XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnelr-",   XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bner",     XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bnelrl",   XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnelrl-",  XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnerl",    XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bnslr",    XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnslr-",   XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnsr",     XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bnulr",    XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnulr-",   XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnslrl",   XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnslrl-",  XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnsrl",    XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bnulrl",   XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnulrl-",  XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgelr+",   XLOCB(19,BOFP,CBLT,16,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnllr+",   XLOCB(19,BOFP,CBLT,16,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgelrl+",  XLOCB(19,BOFP,CBLT,16,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnllrl+",  XLOCB(19,BOFP,CBLT,16,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"blelr+",   XLOCB(19,BOFP,CBGT,16,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnglr+",   XLOCB(19,BOFP,CBGT,16,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"blelrl+",  XLOCB(19,BOFP,CBGT,16,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnglrl+",  XLOCB(19,BOFP,CBGT,16,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnelr+",   XLOCB(19,BOFP,CBEQ,16,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnelrl+",  XLOCB(19,BOFP,CBEQ,16,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnslr+",   XLOCB(19,BOFP,CBSO,16,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnulr+",   XLOCB(19,BOFP,CBSO,16,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnslrl+",  XLOCB(19,BOFP,CBSO,16,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnulrl+",  XLOCB(19,BOFP,CBSO,16,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgelr-",   XLOCB(19,BOFM4,CBLT,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnllr-",   XLOCB(19,BOFM4,CBLT,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bgelrl-",  XLOCB(19,BOFM4,CBLT,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnllrl-",  XLOCB(19,BOFM4,CBLT,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"blelr-",   XLOCB(19,BOFM4,CBGT,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnglr-",   XLOCB(19,BOFM4,CBGT,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"blelrl-",  XLOCB(19,BOFM4,CBGT,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnglrl-",  XLOCB(19,BOFM4,CBGT,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnelr-",   XLOCB(19,BOFM4,CBEQ,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnelrl-",  XLOCB(19,BOFM4,CBEQ,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnslr-",   XLOCB(19,BOFM4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnulr-",   XLOCB(19,BOFM4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnslrl-",  XLOCB(19,BOFM4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnulrl-",  XLOCB(19,BOFM4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bgelr+",   XLOCB(19,BOFP4,CBLT,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnllr+",   XLOCB(19,BOFP4,CBLT,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bgelrl+",  XLOCB(19,BOFP4,CBLT,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnllrl+",  XLOCB(19,BOFP4,CBLT,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"blelr+",   XLOCB(19,BOFP4,CBGT,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnglr+",   XLOCB(19,BOFP4,CBGT,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"blelrl+",  XLOCB(19,BOFP4,CBGT,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnglrl+",  XLOCB(19,BOFP4,CBGT,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnelr+",   XLOCB(19,BOFP4,CBEQ,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnelrl+",  XLOCB(19,BOFP4,CBEQ,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnslr+",   XLOCB(19,BOFP4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnulr+",   XLOCB(19,BOFP4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnslrl+",  XLOCB(19,BOFP4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnulrl+",  XLOCB(19,BOFP4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bltlr",    XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bltlr-",   XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bltr",     XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bltlrl",   XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bltlrl-",  XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bltrl",    XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bgtlr",    XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bgtlr-",   XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgtr",     XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bgtlrl",   XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bgtlrl-",  XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgtrl",    XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"beqlr",    XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"beqlr-",   XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"beqr",     XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"beqlrl",   XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"beqlrl-",  XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"beqrl",    XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bsolr",    XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bsolr-",   XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bsor",     XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bunlr",    XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bunlr-",   XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bsolrl",   XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bsolrl-",  XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bsorl",    XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PWRCOM,   {CR}},
--{"bunlrl",   XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bunlrl-",  XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bltlr+",   XLOCB(19,BOTP,CBLT,16,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bltlrl+",  XLOCB(19,BOTP,CBLT,16,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgtlr+",   XLOCB(19,BOTP,CBGT,16,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgtlrl+",  XLOCB(19,BOTP,CBGT,16,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"beqlr+",   XLOCB(19,BOTP,CBEQ,16,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"beqlrl+",  XLOCB(19,BOTP,CBEQ,16,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bsolr+",   XLOCB(19,BOTP,CBSO,16,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bunlr+",   XLOCB(19,BOTP,CBSO,16,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bsolrl+",  XLOCB(19,BOTP,CBSO,16,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bunlrl+",  XLOCB(19,BOTP,CBSO,16,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bltlr-",   XLOCB(19,BOTM4,CBLT,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bltlrl-",  XLOCB(19,BOTM4,CBLT,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bgtlr-",   XLOCB(19,BOTM4,CBGT,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bgtlrl-",  XLOCB(19,BOTM4,CBGT,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"beqlr-",   XLOCB(19,BOTM4,CBEQ,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"beqlrl-",  XLOCB(19,BOTM4,CBEQ,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bsolr-",   XLOCB(19,BOTM4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bunlr-",   XLOCB(19,BOTM4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bsolrl-",  XLOCB(19,BOTM4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bunlrl-",  XLOCB(19,BOTM4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bltlr+",   XLOCB(19,BOTP4,CBLT,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bltlrl+",  XLOCB(19,BOTP4,CBLT,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bgtlr+",   XLOCB(19,BOTP4,CBGT,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bgtlrl+",  XLOCB(19,BOTP4,CBGT,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"beqlr+",   XLOCB(19,BOTP4,CBEQ,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"beqlrl+",  XLOCB(19,BOTP4,CBEQ,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bsolr+",   XLOCB(19,BOTP4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bunlr+",   XLOCB(19,BOTP4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bsolrl+",  XLOCB(19,BOTP4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bunlrl+",  XLOCB(19,BOTP4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--
--{"bdnzflr",  XLO(19,BODNZF,16,0),     XLBOBB_MASK,   PPCCOM,   {BI}},
--{"bdnzflr-", XLO(19,BODNZF,16,0),     XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bdnzflrl", XLO(19,BODNZF,16,1),     XLBOBB_MASK,   PPCCOM,   {BI}},
--{"bdnzflrl-",XLO(19,BODNZF,16,1),     XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bdnzflr+", XLO(19,BODNZFP,16,0),    XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bdnzflrl+",XLO(19,BODNZFP,16,1),    XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bdzflr",   XLO(19,BODZF,16,0),      XLBOBB_MASK,   PPCCOM,   {BI}},
--{"bdzflr-",  XLO(19,BODZF,16,0),      XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bdzflrl",  XLO(19,BODZF,16,1),      XLBOBB_MASK,   PPCCOM,   {BI}},
--{"bdzflrl-", XLO(19,BODZF,16,1),      XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bdzflr+",  XLO(19,BODZFP,16,0),     XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bdzflrl+", XLO(19,BODZFP,16,1),     XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bflr",     XLO(19,BOF,16,0),                XLBOBB_MASK,   PPCCOM,   {BI}},
--{"bflr-",    XLO(19,BOF,16,0),                XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bbfr",     XLO(19,BOF,16,0),                XLBOBB_MASK,   PWRCOM,   {BI}},
--{"bflrl",    XLO(19,BOF,16,1),                XLBOBB_MASK,   PPCCOM,   {BI}},
--{"bflrl-",   XLO(19,BOF,16,1),                XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bbfrl",    XLO(19,BOF,16,1),                XLBOBB_MASK,   PWRCOM,   {BI}},
--{"bflr+",    XLO(19,BOFP,16,0),               XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bflrl+",   XLO(19,BOFP,16,1),               XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bflr-",    XLO(19,BOFM4,16,0),      XLBOBB_MASK,   POWER4,   {BI}},
--{"bflrl-",   XLO(19,BOFM4,16,1),      XLBOBB_MASK,   POWER4,   {BI}},
--{"bflr+",    XLO(19,BOFP4,16,0),      XLBOBB_MASK,   POWER4,   {BI}},
--{"bflrl+",   XLO(19,BOFP4,16,1),      XLBOBB_MASK,   POWER4,   {BI}},
--{"bdnztlr",  XLO(19,BODNZT,16,0),     XLBOBB_MASK,   PPCCOM,   {BI}},
--{"bdnztlr-", XLO(19,BODNZT,16,0),     XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bdnztlrl", XLO(19,BODNZT,16,1),     XLBOBB_MASK,   PPCCOM,   {BI}},
--{"bdnztlrl-",XLO(19,BODNZT,16,1),     XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bdnztlr+", XLO(19,BODNZTP,16,0),    XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bdnztlrl+",XLO(19,BODNZTP,16,1),    XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bdztlr",   XLO(19,BODZT,16,0),      XLBOBB_MASK,   PPCCOM,   {BI}},
--{"bdztlr-",  XLO(19,BODZT,16,0),      XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bdztlrl",  XLO(19,BODZT,16,1),      XLBOBB_MASK,   PPCCOM,   {BI}},
--{"bdztlrl-", XLO(19,BODZT,16,1),      XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bdztlr+",  XLO(19,BODZTP,16,0),     XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bdztlrl+", XLO(19,BODZTP,16,1),     XLBOBB_MASK,   NOPOWER4, {BI}},
--{"btlr",     XLO(19,BOT,16,0),                XLBOBB_MASK,   PPCCOM,   {BI}},
--{"btlr-",    XLO(19,BOT,16,0),                XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bbtr",     XLO(19,BOT,16,0),                XLBOBB_MASK,   PWRCOM,   {BI}},
--{"btlrl",    XLO(19,BOT,16,1),                XLBOBB_MASK,   PPCCOM,   {BI}},
--{"btlrl-",   XLO(19,BOT,16,1),                XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bbtrl",    XLO(19,BOT,16,1),                XLBOBB_MASK,   PWRCOM,   {BI}},
--{"btlr+",    XLO(19,BOTP,16,0),               XLBOBB_MASK,   NOPOWER4, {BI}},
--{"btlrl+",   XLO(19,BOTP,16,1),               XLBOBB_MASK,   NOPOWER4, {BI}},
--{"btlr-",    XLO(19,BOTM4,16,0),      XLBOBB_MASK,   POWER4,   {BI}},
--{"btlrl-",   XLO(19,BOTM4,16,1),      XLBOBB_MASK,   POWER4,   {BI}},
--{"btlr+",    XLO(19,BOTP4,16,0),      XLBOBB_MASK,   POWER4,   {BI}},
--{"btlrl+",   XLO(19,BOTP4,16,1),      XLBOBB_MASK,   POWER4,   {BI}},
--
--{"bclr-",    XLYLK(19,16,0,0),                XLYBB_MASK,    PPCCOM,   {BOE, BI}},
--{"bclrl-",   XLYLK(19,16,0,1),                XLYBB_MASK,    PPCCOM,   {BOE, BI}},
--{"bclr+",    XLYLK(19,16,1,0),                XLYBB_MASK,    PPCCOM,   {BOE, BI}},
--{"bclrl+",   XLYLK(19,16,1,1),                XLYBB_MASK,    PPCCOM,   {BOE, BI}},
--{"bclr",     XLLK(19,16,0),           XLBH_MASK,     PPCCOM,   {BO, BI, BH}},
--{"bcr",      XLLK(19,16,0),           XLBB_MASK,     PWRCOM,   {BO, BI}},
--{"bclrl",    XLLK(19,16,1),           XLBH_MASK,     PPCCOM,   {BO, BI, BH}},
--{"bcrl",     XLLK(19,16,1),           XLBB_MASK,     PWRCOM,   {BO, BI}},
--
--{"bclre",    XLLK(19,17,0),           XLBB_MASK,     BOOKE64,  {BO, BI}},
--{"bclrel",   XLLK(19,17,1),           XLBB_MASK,     BOOKE64,  {BO, BI}},
--
--{"rfid",      XL(19,18),      0xffffffff,  PPC64,     {0}},
--
--{"crnot",     XL(19,33),      XL_MASK,     PPCCOM,    {BT, BA, BBA}},
--{"crnor",     XL(19,33),      XL_MASK,     COM,       {BT, BA, BB}},
--{"rfmci",     X(19,38),       0xffffffff,  PPCRFMCI,  {0}},
--
--{"rfdi",      XL(19,39),      0xffffffff,  E500MC,    {0}},
--{"rfi",               XL(19,50),      0xffffffff,  COM,       {0}},
--{"rfci",      XL(19,51), 0xffffffff, PPC403|BOOKE|PPCE300, {0}},
--
--{"rfsvc",     XL(19,82),      0xffffffff,  POWER,     {0}},
--
--{"rfgi",      XL(19,102),     0xffffffff,  E500MC,    {0}},
--
--{"crandc",    XL(19,129),     XL_MASK,     COM,       {BT, BA, BB}},
--
--{"isync",     XL(19,150),     0xffffffff,  PPCCOM,    {0}},
--{"ics",               XL(19,150),     0xffffffff,  PWRCOM,    {0}},
--
--{"crclr",     XL(19,193),     XL_MASK,     PPCCOM,    {BT, BAT, BBA}},
--{"crxor",     XL(19,193),     XL_MASK,     COM,       {BT, BA, BB}},
--
--{"dnh",               X(19,198),      X_MASK,      E500MC,    {DUI, DUIS}},
--
--{"crnand",    XL(19,225),     XL_MASK,     COM,       {BT, BA, BB}},
--
--{"crand",     XL(19,257),     XL_MASK,     COM,       {BT, BA, BB}},
--
--{"hrfid",     XL(19,274),     0xffffffff, POWER5|CELL, {0}},
--
--{"crset",     XL(19,289),     XL_MASK,     PPCCOM,    {BT, BAT, BBA}},
--{"creqv",     XL(19,289),     XL_MASK,     COM,       {BT, BA, BB}},
--
--{"doze",      XL(19,402),     0xffffffff,  POWER6,    {0}},
--
--{"crorc",     XL(19,417),     XL_MASK,     COM,       {BT, BA, BB}},
--
--{"nap",               XL(19,434),     0xffffffff,  POWER6,    {0}},
--
--{"crmove",    XL(19,449),     XL_MASK,     PPCCOM,    {BT, BA, BBA}},
--{"cror",      XL(19,449),     XL_MASK,     COM,       {BT, BA, BB}},
--
--{"sleep",     XL(19,466),     0xffffffff,  POWER6,    {0}},
--{"rvwinkle",  XL(19,498),     0xffffffff,  POWER6,    {0}},
--
--{"bctr",    XLO(19,BOU,528,0),                XLBOBIBB_MASK, COM,      {0}},
--{"bctrl",   XLO(19,BOU,528,1),                XLBOBIBB_MASK, COM,      {0}},
--
--{"bgectr",  XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bgectr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnlctr",  XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnlctr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgectrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bgectrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnlctrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnlctrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"blectr",  XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"blectr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bngctr",  XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bngctr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"blectrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"blectrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bngctrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bngctrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnectr",  XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnectr-", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnectrl", XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnectrl-",XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnsctr",  XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnsctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnuctr",  XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnuctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnsctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnsctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnuctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bnuctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgectr+", XLOCB(19,BOFP,CBLT,528,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnlctr+", XLOCB(19,BOFP,CBLT,528,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgectrl+",XLOCB(19,BOFP,CBLT,528,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnlctrl+",XLOCB(19,BOFP,CBLT,528,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"blectr+", XLOCB(19,BOFP,CBGT,528,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bngctr+", XLOCB(19,BOFP,CBGT,528,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"blectrl+",XLOCB(19,BOFP,CBGT,528,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bngctrl+",XLOCB(19,BOFP,CBGT,528,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnectr+", XLOCB(19,BOFP,CBEQ,528,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnectrl+",XLOCB(19,BOFP,CBEQ,528,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnsctr+", XLOCB(19,BOFP,CBSO,528,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnuctr+", XLOCB(19,BOFP,CBSO,528,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnsctrl+",XLOCB(19,BOFP,CBSO,528,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bnuctrl+",XLOCB(19,BOFP,CBSO,528,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgectr-", XLOCB(19,BOFM4,CBLT,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnlctr-", XLOCB(19,BOFM4,CBLT,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bgectrl-",XLOCB(19,BOFM4,CBLT,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnlctrl-",XLOCB(19,BOFM4,CBLT,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"blectr-", XLOCB(19,BOFM4,CBGT,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bngctr-", XLOCB(19,BOFM4,CBGT,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"blectrl-",XLOCB(19,BOFM4,CBGT,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bngctrl-",XLOCB(19,BOFM4,CBGT,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnectr-", XLOCB(19,BOFM4,CBEQ,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnectrl-",XLOCB(19,BOFM4,CBEQ,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnsctr-", XLOCB(19,BOFM4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnuctr-", XLOCB(19,BOFM4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnsctrl-",XLOCB(19,BOFM4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnuctrl-",XLOCB(19,BOFM4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bgectr+", XLOCB(19,BOFP4,CBLT,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnlctr+", XLOCB(19,BOFP4,CBLT,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bgectrl+",XLOCB(19,BOFP4,CBLT,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnlctrl+",XLOCB(19,BOFP4,CBLT,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"blectr+", XLOCB(19,BOFP4,CBGT,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bngctr+", XLOCB(19,BOFP4,CBGT,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"blectrl+",XLOCB(19,BOFP4,CBGT,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bngctrl+",XLOCB(19,BOFP4,CBGT,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnectr+", XLOCB(19,BOFP4,CBEQ,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnectrl+",XLOCB(19,BOFP4,CBEQ,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnsctr+", XLOCB(19,BOFP4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnuctr+", XLOCB(19,BOFP4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnsctrl+",XLOCB(19,BOFP4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bnuctrl+",XLOCB(19,BOFP4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bltctr",  XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bltctr-", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bltctrl", XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bltctrl-",XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgtctr",  XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bgtctr-", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgtctrl", XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bgtctrl-",XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"beqctr",  XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"beqctr-", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"beqctrl", XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"beqctrl-",XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bsoctr",  XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bsoctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bunctr",  XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bunctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bsoctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bsoctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bunctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,   {CR}},
--{"bunctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bltctr+", XLOCB(19,BOTP,CBLT,528,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bltctrl+",XLOCB(19,BOTP,CBLT,528,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgtctr+", XLOCB(19,BOTP,CBGT,528,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bgtctrl+",XLOCB(19,BOTP,CBGT,528,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"beqctr+", XLOCB(19,BOTP,CBEQ,528,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"beqctrl+",XLOCB(19,BOTP,CBEQ,528,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bsoctr+", XLOCB(19,BOTP,CBSO,528,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bunctr+", XLOCB(19,BOTP,CBSO,528,0),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bsoctrl+",XLOCB(19,BOTP,CBSO,528,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bunctrl+",XLOCB(19,BOTP,CBSO,528,1),        XLBOCBBB_MASK, NOPOWER4, {CR}},
--{"bltctr-", XLOCB(19,BOTM4,CBLT,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bltctrl-",XLOCB(19,BOTM4,CBLT,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bgtctr-", XLOCB(19,BOTM4,CBGT,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bgtctrl-",XLOCB(19,BOTM4,CBGT,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"beqctr-", XLOCB(19,BOTM4,CBEQ,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"beqctrl-",XLOCB(19,BOTM4,CBEQ,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bsoctr-", XLOCB(19,BOTM4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bunctr-", XLOCB(19,BOTM4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bsoctrl-",XLOCB(19,BOTM4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bunctrl-",XLOCB(19,BOTM4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bltctr+", XLOCB(19,BOTP4,CBLT,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bltctrl+",XLOCB(19,BOTP4,CBLT,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bgtctr+", XLOCB(19,BOTP4,CBGT,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bgtctrl+",XLOCB(19,BOTP4,CBGT,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"beqctr+", XLOCB(19,BOTP4,CBEQ,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"beqctrl+",XLOCB(19,BOTP4,CBEQ,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bsoctr+", XLOCB(19,BOTP4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bunctr+", XLOCB(19,BOTP4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bsoctrl+",XLOCB(19,BOTP4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--{"bunctrl+",XLOCB(19,BOTP4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   {CR}},
--
--{"bfctr",   XLO(19,BOF,528,0),                XLBOBB_MASK,   PPCCOM,   {BI}},
--{"bfctr-",  XLO(19,BOF,528,0),                XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bfctrl",  XLO(19,BOF,528,1),                XLBOBB_MASK,   PPCCOM,   {BI}},
--{"bfctrl-", XLO(19,BOF,528,1),                XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bfctr+",  XLO(19,BOFP,528,0),               XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bfctrl+", XLO(19,BOFP,528,1),               XLBOBB_MASK,   NOPOWER4, {BI}},
--{"bfctr-",  XLO(19,BOFM4,528,0),      XLBOBB_MASK,   POWER4,   {BI}},
--{"bfctrl-", XLO(19,BOFM4,528,1),      XLBOBB_MASK,   POWER4,   {BI}},
--{"bfctr+",  XLO(19,BOFP4,528,0),      XLBOBB_MASK,   POWER4,   {BI}},
--{"bfctrl+", XLO(19,BOFP4,528,1),      XLBOBB_MASK,   POWER4,   {BI}},
--{"btctr",   XLO(19,BOT,528,0),                XLBOBB_MASK,   PPCCOM,   {BI}},
--{"btctr-",  XLO(19,BOT,528,0),                XLBOBB_MASK,   NOPOWER4, {BI}},
--{"btctrl",  XLO(19,BOT,528,1),                XLBOBB_MASK,   PPCCOM,   {BI}},
--{"btctrl-", XLO(19,BOT,528,1),                XLBOBB_MASK,   NOPOWER4, {BI}},
--{"btctr+",  XLO(19,BOTP,528,0),               XLBOBB_MASK,   NOPOWER4, {BI}},
--{"btctrl+", XLO(19,BOTP,528,1),               XLBOBB_MASK,   NOPOWER4, {BI}},
--{"btctr-",  XLO(19,BOTM4,528,0),      XLBOBB_MASK,   POWER4,   {BI}},
--{"btctrl-", XLO(19,BOTM4,528,1),      XLBOBB_MASK,   POWER4,   {BI}},
--{"btctr+",  XLO(19,BOTP4,528,0),      XLBOBB_MASK,   POWER4,   {BI}},
--{"btctrl+", XLO(19,BOTP4,528,1),      XLBOBB_MASK,   POWER4,   {BI}},
--
--{"bcctr-",  XLYLK(19,528,0,0),                XLYBB_MASK,    PPCCOM,   {BOE, BI}},
--{"bcctrl-", XLYLK(19,528,0,1),                XLYBB_MASK,    PPCCOM,   {BOE, BI}},
--{"bcctr+",  XLYLK(19,528,1,0),                XLYBB_MASK,    PPCCOM,   {BOE, BI}},
--{"bcctrl+", XLYLK(19,528,1,1),                XLYBB_MASK,    PPCCOM,   {BOE, BI}},
--{"bcctr",   XLLK(19,528,0),           XLBH_MASK,     PPCCOM,   {BO, BI, BH}},
--{"bcc",     XLLK(19,528,0),           XLBB_MASK,     PWRCOM,   {BO, BI}},
--{"bcctrl",  XLLK(19,528,1),           XLBH_MASK,     PPCCOM,   {BO, BI, BH}},
--{"bccl",    XLLK(19,528,1),           XLBB_MASK,     PWRCOM,   {BO, BI}},
--
--{"bcctre",  XLLK(19,529,0),           XLBB_MASK,     BOOKE64,  {BO, BI}},
--{"bcctrel", XLLK(19,529,1),           XLBB_MASK,     BOOKE64,  {BO, BI}},
--
--{"rlwimi",    M(20,0),        M_MASK,      PPCCOM,    {RA, RS, SH, MBE, ME}},
--{"rlimi",     M(20,0),        M_MASK,      PWRCOM,    {RA, RS, SH, MBE, ME}},
--
--{"rlwimi.",   M(20,1),        M_MASK,      PPCCOM,    {RA, RS, SH, MBE, ME}},
--{"rlimi.",    M(20,1),        M_MASK,      PWRCOM,    {RA, RS, SH, MBE, ME}},
--
--{"rotlwi",    MME(21,31,0),   MMBME_MASK,  PPCCOM,    {RA, RS, SH}},
--{"clrlwi",    MME(21,31,0),   MSHME_MASK,  PPCCOM,    {RA, RS, MB}},
--{"rlwinm",    M(21,0),        M_MASK,      PPCCOM,    {RA, RS, SH, MBE, ME}},
--{"rlinm",     M(21,0),        M_MASK,      PWRCOM,    {RA, RS, SH, MBE, ME}},
--{"rotlwi.",   MME(21,31,1),   MMBME_MASK,  PPCCOM,    {RA, RS, SH}},
--{"clrlwi.",   MME(21,31,1),   MSHME_MASK,  PPCCOM,    {RA, RS, MB}},
--{"rlwinm.",   M(21,1),        M_MASK,      PPCCOM,    {RA, RS, SH, MBE, ME}},
--{"rlinm.",    M(21,1),        M_MASK,      PWRCOM,    {RA, RS, SH, MBE, ME}},
--
--{"rlmi",      M(22,0),        M_MASK,      M601,      {RA, RS, RB, MBE, ME}},
--{"be",                B(22,0,0),      B_MASK,      BOOKE64,   {LI}},
--{"bel",               B(22,0,1),      B_MASK,      BOOKE64,   {LI}},
--{"rlmi.",     M(22,1),        M_MASK,      M601,      {RA, RS, RB, MBE, ME}},
--{"bea",               B(22,1,0),      B_MASK,      BOOKE64,   {LIA}},
--{"bela",      B(22,1,1),      B_MASK,      BOOKE64,   {LIA}},
--
--{"rotlw",     MME(23,31,0),   MMBME_MASK,  PPCCOM,    {RA, RS, RB}},
--{"rlwnm",     M(23,0),        M_MASK,      PPCCOM,    {RA, RS, RB, MBE, ME}},
--{"rlnm",      M(23,0),        M_MASK,      PWRCOM,    {RA, RS, RB, MBE, ME}},
--{"rotlw.",    MME(23,31,1),   MMBME_MASK,  PPCCOM,    {RA, RS, RB}},
--{"rlwnm.",    M(23,1),        M_MASK,      PPCCOM,    {RA, RS, RB, MBE, ME}},
--{"rlnm.",     M(23,1),        M_MASK,      PWRCOM,    {RA, RS, RB, MBE, ME}},
--
--{"nop",               OP(24),         0xffffffff,  PPCCOM,    {0}},
--{"ori",               OP(24),         OP_MASK,     PPCCOM,    {RA, RS, UI}},
--{"oril",      OP(24),         OP_MASK,     PWRCOM,    {RA, RS, UI}},
--
--{"oris",      OP(25),         OP_MASK,     PPCCOM,    {RA, RS, UI}},
--{"oriu",      OP(25),         OP_MASK,     PWRCOM,    {RA, RS, UI}},
--
--{"xori",      OP(26),         OP_MASK,     PPCCOM,    {RA, RS, UI}},
--{"xoril",     OP(26),         OP_MASK,     PWRCOM,    {RA, RS, UI}},
--
--{"xoris",     OP(27),         OP_MASK,     PPCCOM,    {RA, RS, UI}},
--{"xoriu",     OP(27),         OP_MASK,     PWRCOM,    {RA, RS, UI}},
--
--{"andi.",     OP(28),         OP_MASK,     PPCCOM,    {RA, RS, UI}},
--{"andil.",    OP(28),         OP_MASK,     PWRCOM,    {RA, RS, UI}},
--
--{"andis.",    OP(29),         OP_MASK,     PPCCOM,    {RA, RS, UI}},
--{"andiu.",    OP(29),         OP_MASK,     PWRCOM,    {RA, RS, UI}},
--
--{"rotldi",    MD(30,0,0),     MDMB_MASK,   PPC64,     {RA, RS, SH6}},
--{"clrldi",    MD(30,0,0),     MDSH_MASK,   PPC64,     {RA, RS, MB6}},
--{"rldicl",    MD(30,0,0),     MD_MASK,     PPC64,     {RA, RS, SH6, MB6}},
--{"rotldi.",   MD(30,0,1),     MDMB_MASK,   PPC64,     {RA, RS, SH6}},
--{"clrldi.",   MD(30,0,1),     MDSH_MASK,   PPC64,     {RA, RS, MB6}},
--{"rldicl.",   MD(30,0,1),     MD_MASK,     PPC64,     {RA, RS, SH6, MB6}},
--
--{"rldicr",    MD(30,1,0),     MD_MASK,     PPC64,     {RA, RS, SH6, ME6}},
--{"rldicr.",   MD(30,1,1),     MD_MASK,     PPC64,     {RA, RS, SH6, ME6}},
--
--{"rldic",     MD(30,2,0),     MD_MASK,     PPC64,     {RA, RS, SH6, MB6}},
--{"rldic.",    MD(30,2,1),     MD_MASK,     PPC64,     {RA, RS, SH6, MB6}},
--
--{"rldimi",    MD(30,3,0),     MD_MASK,     PPC64,     {RA, RS, SH6, MB6}},
--{"rldimi.",   MD(30,3,1),     MD_MASK,     PPC64,     {RA, RS, SH6, MB6}},
--
--{"rotld",     MDS(30,8,0),    MDSMB_MASK,  PPC64,     {RA, RS, RB}},
--{"rldcl",     MDS(30,8,0),    MDS_MASK,    PPC64,     {RA, RS, RB, MB6}},
--{"rotld.",    MDS(30,8,1),    MDSMB_MASK,  PPC64,     {RA, RS, RB}},
--{"rldcl.",    MDS(30,8,1),    MDS_MASK,    PPC64,     {RA, RS, RB, MB6}},
--
--{"rldcr",     MDS(30,9,0),    MDS_MASK,    PPC64,     {RA, RS, RB, ME6}},
--{"rldcr.",    MDS(30,9,1),    MDS_MASK,    PPC64,     {RA, RS, RB, ME6}},
--
--{"cmpw",      XOPL(31,0,0),   XCMPL_MASK,  PPCCOM,    {OBF, RA, RB}},
--{"cmpd",      XOPL(31,0,1),   XCMPL_MASK,  PPC64,     {OBF, RA, RB}},
--{"cmp",               X(31,0),        XCMP_MASK,   PPC,       {BF, L, RA, RB}},
--{"cmp",               X(31,0),        XCMPL_MASK,  PWRCOM,    {BF, RA, RB}},
--
--{"twlgt",     XTO(31,4,TOLGT), XTO_MASK,   PPCCOM,    {RA, RB}},
--{"tlgt",      XTO(31,4,TOLGT), XTO_MASK,   PWRCOM,    {RA, RB}},
--{"twllt",     XTO(31,4,TOLLT), XTO_MASK,   PPCCOM,    {RA, RB}},
--{"tllt",      XTO(31,4,TOLLT), XTO_MASK,   PWRCOM,    {RA, RB}},
--{"tweq",      XTO(31,4,TOEQ),  XTO_MASK,   PPCCOM,    {RA, RB}},
--{"teq",               XTO(31,4,TOEQ),  XTO_MASK,   PWRCOM,    {RA, RB}},
--{"twlge",     XTO(31,4,TOLGE), XTO_MASK,   PPCCOM,    {RA, RB}},
--{"tlge",      XTO(31,4,TOLGE), XTO_MASK,   PWRCOM,    {RA, RB}},
--{"twlnl",     XTO(31,4,TOLNL), XTO_MASK,   PPCCOM,    {RA, RB}},
--{"tlnl",      XTO(31,4,TOLNL), XTO_MASK,   PWRCOM,    {RA, RB}},
--{"twlle",     XTO(31,4,TOLLE), XTO_MASK,   PPCCOM,    {RA, RB}},
--{"tlle",      XTO(31,4,TOLLE), XTO_MASK,   PWRCOM,    {RA, RB}},
--{"twlng",     XTO(31,4,TOLNG), XTO_MASK,   PPCCOM,    {RA, RB}},
--{"tlng",      XTO(31,4,TOLNG), XTO_MASK,   PWRCOM,    {RA, RB}},
--{"twgt",      XTO(31,4,TOGT),  XTO_MASK,   PPCCOM,    {RA, RB}},
--{"tgt",               XTO(31,4,TOGT),  XTO_MASK,   PWRCOM,    {RA, RB}},
--{"twge",      XTO(31,4,TOGE),  XTO_MASK,   PPCCOM,    {RA, RB}},
--{"tge",               XTO(31,4,TOGE),  XTO_MASK,   PWRCOM,    {RA, RB}},
--{"twnl",      XTO(31,4,TONL),  XTO_MASK,   PPCCOM,    {RA, RB}},
--{"tnl",               XTO(31,4,TONL),  XTO_MASK,   PWRCOM,    {RA, RB}},
--{"twlt",      XTO(31,4,TOLT),  XTO_MASK,   PPCCOM,    {RA, RB}},
--{"tlt",               XTO(31,4,TOLT),  XTO_MASK,   PWRCOM,    {RA, RB}},
--{"twle",      XTO(31,4,TOLE),  XTO_MASK,   PPCCOM,    {RA, RB}},
--{"tle",               XTO(31,4,TOLE),  XTO_MASK,   PWRCOM,    {RA, RB}},
--{"twng",      XTO(31,4,TONG),  XTO_MASK,   PPCCOM,    {RA, RB}},
--{"tng",               XTO(31,4,TONG),  XTO_MASK,   PWRCOM,    {RA, RB}},
--{"twne",      XTO(31,4,TONE),  XTO_MASK,   PPCCOM,    {RA, RB}},
--{"tne",               XTO(31,4,TONE),  XTO_MASK,   PWRCOM,    {RA, RB}},
--{"trap",      XTO(31,4,TOU),   0xffffffff, PPCCOM,    {0}},
--{"tw",                X(31,4),         X_MASK,     PPCCOM,    {TO, RA, RB}},
--{"t",         X(31,4),         X_MASK,     PWRCOM,    {TO, RA, RB}},
--
--{"lvsl",      X(31,6),        X_MASK,      PPCVEC,    {VD, RA, RB}},
--{"lvebx",     X(31,7),        X_MASK,      PPCVEC,    {VD, RA, RB}},
--{"lbfcmx",    APU(31,7,0),    APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"subfc",     XO(31,8,0,0),   XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"sf",                XO(31,8,0,0),   XO_MASK,     PWRCOM,    {RT, RA, RB}},
--{"subc",      XO(31,8,0,0),   XO_MASK,     PPC,       {RT, RB, RA}},
--{"subfc.",    XO(31,8,0,1),   XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"sf.",               XO(31,8,0,1),   XO_MASK,     PWRCOM,    {RT, RA, RB}},
--{"subc.",     XO(31,8,0,1),   XO_MASK,     PPCCOM,    {RT, RB, RA}},
--
--{"mulhdu",    XO(31,9,0,0),   XO_MASK,     PPC64,     {RT, RA, RB}},
--{"mulhdu.",   XO(31,9,0,1),   XO_MASK,     PPC64,     {RT, RA, RB}},
--
--{"addc",      XO(31,10,0,0),  XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"a",         XO(31,10,0,0),  XO_MASK,     PWRCOM,    {RT, RA, RB}},
--{"addc.",     XO(31,10,0,1),  XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"a.",                XO(31,10,0,1),  XO_MASK,     PWRCOM,    {RT, RA, RB}},
--
--{"mulhwu",    XO(31,11,0,0),  XO_MASK,     PPC,       {RT, RA, RB}},
--{"mulhwu.",   XO(31,11,0,1),  XO_MASK,     PPC,       {RT, RA, RB}},
--
--{"isellt",    X(31,15),       X_MASK,      PPCISEL,   {RT, RA, RB}},
--
--{"mfcr",      XFXM(31,19,0,0), XRARB_MASK, NOPOWER4|COM, {RT}},
--{"mfcr",      XFXM(31,19,0,0), XFXFXM_MASK, POWER4,   {RT, FXM4}},
--{"mfocrf",    XFXM(31,19,0,1), XFXFXM_MASK, COM,      {RT, FXM}},
--
--{"lwarx",     X(31,20),       XEH_MASK,    PPC,       {RT, RA0, RB, EH}},
--
--{"ldx",               X(31,21),       X_MASK,      PPC64,     {RT, RA0, RB}},
--
--{"icbt",      X(31,22),       X_MASK,  BOOKE|PPCE300, {CT, RA, RB}},
--
--{"lwzx",      X(31,23),       X_MASK,      PPCCOM,    {RT, RA0, RB}},
--{"lx",                X(31,23),       X_MASK,      PWRCOM,    {RT, RA, RB}},
--
--{"slw",               XRC(31,24,0),   X_MASK,      PPCCOM,    {RA, RS, RB}},
--{"sl",                XRC(31,24,0),   X_MASK,      PWRCOM,    {RA, RS, RB}},
--{"slw.",      XRC(31,24,1),   X_MASK,      PPCCOM,    {RA, RS, RB}},
--{"sl.",               XRC(31,24,1),   X_MASK,      PWRCOM,    {RA, RS, RB}},
--
--{"cntlzw",    XRC(31,26,0),   XRB_MASK,    PPCCOM,    {RA, RS}},
--{"cntlz",     XRC(31,26,0),   XRB_MASK,    PWRCOM,    {RA, RS}},
--{"cntlzw.",   XRC(31,26,1),   XRB_MASK,    PPCCOM,    {RA, RS}},
--{"cntlz.",    XRC(31,26,1),   XRB_MASK,    PWRCOM,    {RA, RS}},
--
--{"sld",               XRC(31,27,0),   X_MASK,      PPC64,     {RA, RS, RB}},
--{"sld.",      XRC(31,27,1),   X_MASK,      PPC64,     {RA, RS, RB}},
--
--{"and",               XRC(31,28,0),   X_MASK,      COM,       {RA, RS, RB}},
--{"and.",      XRC(31,28,1),   X_MASK,      COM,       {RA, RS, RB}},
--
--{"maskg",     XRC(31,29,0),   X_MASK,      M601,      {RA, RS, RB}},
--{"maskg.",    XRC(31,29,1),   X_MASK,      M601,      {RA, RS, RB}},
--
--{"ldepx",     X(31,29),       X_MASK,      E500MC,    {RT, RA, RB}},
--
--{"icbte",     X(31,30),       X_MASK,      BOOKE64,   {CT, RA, RB}},
--
--{"lwzxe",     X(31,31),       X_MASK,      BOOKE64,   {RT, RA0, RB}},
--{"lwepx",     X(31,31),       X_MASK,      E500MC,    {RT, RA, RB}},
--
--{"cmplw",     XOPL(31,32,0),  XCMPL_MASK,  PPCCOM,    {OBF, RA, RB}},
--{"cmpld",     XOPL(31,32,1),  XCMPL_MASK,  PPC64,     {OBF, RA, RB}},
--{"cmpl",      X(31,32),       XCMP_MASK,   PPC,       {BF, L, RA, RB}},
--{"cmpl",      X(31,32),       XCMPL_MASK,  PWRCOM,    {BF, RA, RB}},
--
--{"lvsr",      X(31,38),       X_MASK,      PPCVEC,    {VD, RA, RB}},
--{"lvehx",     X(31,39),       X_MASK,      PPCVEC,    {VD, RA, RB}},
--{"lhfcmx",    APU(31,39,0),   APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"iselgt",    X(31,47),       X_MASK,      PPCISEL,   {RT, RA, RB}},
--
--{"lvewx",     X(31,71),       X_MASK,      PPCVEC,    {VD, RA, RB}},
--
--{"iseleq",    X(31,79),       X_MASK,      PPCISEL,   {RT, RA, RB}},
--
--{"isel",      XISEL(31,15),   XISEL_MASK,  PPCISEL,   {RT, RA, RB, CRB}},
--
--{"subf",      XO(31,40,0,0),  XO_MASK,     PPC,       {RT, RA, RB}},
--{"sub",               XO(31,40,0,0),  XO_MASK,     PPC,       {RT, RB, RA}},
--{"subf.",     XO(31,40,0,1),  XO_MASK,     PPC,       {RT, RA, RB}},
--{"sub.",      XO(31,40,0,1),  XO_MASK,     PPC,       {RT, RB, RA}},
--
--{"ldux",      X(31,53),       X_MASK,      PPC64,     {RT, RAL, RB}},
--
--{"dcbst",     X(31,54),       XRT_MASK,    PPC,       {RA, RB}},
--
--{"lwzux",     X(31,55),       X_MASK,      PPCCOM,    {RT, RAL, RB}},
--{"lux",               X(31,55),       X_MASK,      PWRCOM,    {RT, RA, RB}},
--
--{"cntlzd",    XRC(31,58,0),   XRB_MASK,    PPC64,     {RA, RS}},
--{"cntlzd.",   XRC(31,58,1),   XRB_MASK,    PPC64,     {RA, RS}},
--
--{"andc",      XRC(31,60,0),   X_MASK,      COM,       {RA, RS, RB}},
--{"andc.",     XRC(31,60,1),   X_MASK,      COM,       {RA, RS, RB}},
--
--{"dcbste",    X(31,62),       XRT_MASK,    BOOKE64,   {RA, RB}},
--
--{"wait",      X(31,62),       0xffffffff,  E500MC,    {0}},
--
--{"lwzuxe",    X(31,63),       X_MASK,      BOOKE64,   {RT, RAL, RB}},
--
--{"dcbstep",   XRT(31,63,0),   XRT_MASK,    E500MC,    {RA, RB}},
--
--{"tdlgt",     XTO(31,68,TOLGT), XTO_MASK,  PPC64,     {RA, RB}},
--{"tdllt",     XTO(31,68,TOLLT), XTO_MASK,  PPC64,     {RA, RB}},
--{"tdeq",      XTO(31,68,TOEQ),  XTO_MASK,  PPC64,     {RA, RB}},
--{"tdlge",     XTO(31,68,TOLGE), XTO_MASK,  PPC64,     {RA, RB}},
--{"tdlnl",     XTO(31,68,TOLNL), XTO_MASK,  PPC64,     {RA, RB}},
--{"tdlle",     XTO(31,68,TOLLE), XTO_MASK,  PPC64,     {RA, RB}},
--{"tdlng",     XTO(31,68,TOLNG), XTO_MASK,  PPC64,     {RA, RB}},
--{"tdgt",      XTO(31,68,TOGT),  XTO_MASK,  PPC64,     {RA, RB}},
--{"tdge",      XTO(31,68,TOGE),  XTO_MASK,  PPC64,     {RA, RB}},
--{"tdnl",      XTO(31,68,TONL),  XTO_MASK,  PPC64,     {RA, RB}},
--{"tdlt",      XTO(31,68,TOLT),  XTO_MASK,  PPC64,     {RA, RB}},
--{"tdle",      XTO(31,68,TOLE),  XTO_MASK,  PPC64,     {RA, RB}},
--{"tdng",      XTO(31,68,TONG),  XTO_MASK,  PPC64,     {RA, RB}},
--{"tdne",      XTO(31,68,TONE),  XTO_MASK,  PPC64,     {RA, RB}},
--{"td",                X(31,68),       X_MASK,      PPC64,     {TO, RA, RB}},
--
--{"lwfcmx",    APU(31,71,0),   APU_MASK,    PPC405,    {FCRT, RA, RB}},
--{"mulhd",     XO(31,73,0,0),  XO_MASK,     PPC64,     {RT, RA, RB}},
--{"mulhd.",    XO(31,73,0,1),  XO_MASK,     PPC64,     {RT, RA, RB}},
--
--{"mulhw",     XO(31,75,0,0),  XO_MASK,     PPC,       {RT, RA, RB}},
--{"mulhw.",    XO(31,75,0,1),  XO_MASK,     PPC,       {RT, RA, RB}},
--
--{"dlmzb",     XRC(31,78,0),   X_MASK,  PPC403|PPC440, {RA, RS, RB}},
--{"dlmzb.",    XRC(31,78,1),   X_MASK,  PPC403|PPC440, {RA, RS, RB}},
--
--{"mtsrd",     X(31,82),  XRB_MASK|(1<<20), PPC64,     {SR, RS}},
--
--{"mfmsr",     X(31,83),       XRARB_MASK,  COM,       {RT}},
--
--{"ldarx",     X(31,84),       XEH_MASK,    PPC64,     {RT, RA0, RB, EH}},
--
--{"dcbfl",     XOPL(31,86,1),  XRT_MASK,    POWER5,    {RA, RB}},
--{"dcbf",      X(31,86),       XLRT_MASK,   PPC,       {RA, RB, L}},
--
--{"lbzx",      X(31,87),       X_MASK,      COM,       {RT, RA0, RB}},
--
--{"dcbfe",     X(31,94),       XRT_MASK,    BOOKE64,   {RA, RB}},
--
--{"lbzxe",     X(31,95),       X_MASK,      BOOKE64,   {RT, RA0, RB}},
--{"lbepx",     X(31,95),       X_MASK,      E500MC,    {RT, RA, RB}},
--
--{"lvx",               X(31,103),      X_MASK,      PPCVEC,    {VD, RA, RB}},
--{"lqfcmx",    APU(31,103,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"neg",               XO(31,104,0,0), XORB_MASK,   COM,       {RT, RA}},
--{"neg.",      XO(31,104,0,1), XORB_MASK,   COM,       {RT, RA}},
--
--{"mul",               XO(31,107,0,0), XO_MASK,     M601,      {RT, RA, RB}},
--{"mul.",      XO(31,107,0,1), XO_MASK,     M601,      {RT, RA, RB}},
--
--{"mtsrdin",   X(31,114),      XRA_MASK,    PPC64,     {RS, RB}},
--
--{"clf",               X(31,118),      XTO_MASK,    POWER,     {RA, RB}},
--
--{"lbzux",     X(31,119),      X_MASK,      COM,       {RT, RAL, RB}},
--
--{"popcntb",   X(31,122),      XRB_MASK,    POWER5,    {RA, RS}},
--
--{"not",               XRC(31,124,0),  X_MASK,      COM,       {RA, RS, RBS}},
--{"nor",               XRC(31,124,0),  X_MASK,      COM,       {RA, RS, RB}},
--{"not.",      XRC(31,124,1),  X_MASK,      COM,       {RA, RS, RBS}},
--{"nor.",      XRC(31,124,1),  X_MASK,      COM,       {RA, RS, RB}},
--
--{"lwarxe",    X(31,126),      X_MASK,      BOOKE64,   {RT, RA0, RB}},
--
--{"lbzuxe",    X(31,127),      X_MASK,      BOOKE64,   {RT, RAL, RB}},
--
--{"dcbfep",    XRT(31,127,0),  XRT_MASK,    E500MC,    {RA, RB}},
--
--{"wrtee",     X(31,131),      XRARB_MASK, PPC403|BOOKE, {RS}},
--
--{"dcbtstls",  X(31,134),      X_MASK,      PPCCHLK,   {CT, RA, RB}},
--
--{"stvebx",    X(31,135),      X_MASK,      PPCVEC,    {VS, RA, RB}},
--{"stbfcmx",   APU(31,135,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"subfe",     XO(31,136,0,0), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"sfe",               XO(31,136,0,0), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--{"subfe.",    XO(31,136,0,1), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"sfe.",      XO(31,136,0,1), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--
--{"adde",      XO(31,138,0,0), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"ae",                XO(31,138,0,0), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--{"adde.",     XO(31,138,0,1), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"ae.",               XO(31,138,0,1), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--
--{"dcbtstlse", X(31,142),      X_MASK,      PPCCHLK64, {CT, RA, RB}},
--
--{"mtcr",      XFXM(31,144,0xff,0), XRARB_MASK, COM,   {RS}},
--{"mtcrf",     XFXM(31,144,0,0), XFXFXM_MASK, COM,     {FXM, RS}},
--{"mtocrf",    XFXM(31,144,0,1), XFXFXM_MASK, COM,     {FXM, RS}},
--
--{"mtmsr",     X(31,146),      XRLARB_MASK, COM,       {RS, A_L}},
--
--{"stdx",      X(31,149),      X_MASK,      PPC64,     {RS, RA0, RB}},
--
--{"stwcx.",    XRC(31,150,1),  X_MASK,      PPC,       {RS, RA0, RB}},
--
--{"stwx",      X(31,151),      X_MASK,      PPCCOM,    {RS, RA0, RB}},
--{"stx",               X(31,151),      X_MASK,      PWRCOM,    {RS, RA, RB}},
--
--{"slq",               XRC(31,152,0),  X_MASK,      M601,      {RA, RS, RB}},
--{"slq.",      XRC(31,152,1),  X_MASK,      M601,      {RA, RS, RB}},
--
--{"sle",               XRC(31,153,0),  X_MASK,      M601,      {RA, RS, RB}},
--{"sle.",      XRC(31,153,1),  X_MASK,      M601,      {RA, RS, RB}},
--
--{"prtyw",     X(31,154),      XRB_MASK,    POWER6,    {RA, RS}},
--
--{"stdepx",    X(31,157),      X_MASK,      E500MC,    {RS, RA, RB}},
--
--{"stwcxe.",   XRC(31,158,1),  X_MASK,      BOOKE64,   {RS, RA0, RB}},
--
--{"stwxe",     X(31,159),      X_MASK,      BOOKE64,   {RS, RA0, RB}},
--{"stwepx",    X(31,159),      X_MASK,      E500MC,    {RS, RA, RB}},
--
--{"wrteei",    X(31,163),      XE_MASK,  PPC403|BOOKE, {E}},
--
--{"dcbtls",    X(31,166),      X_MASK,      PPCCHLK,   {CT, RA, RB}},
--
--{"stvehx",    X(31,167),      X_MASK,      PPCVEC,    {VS, RA, RB}},
--{"sthfcmx",   APU(31,167,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"dcbtlse",   X(31,174),      X_MASK,      PPCCHLK64, {CT, RA, RB}},
--
--{"mtmsrd",    X(31,178),      XRLARB_MASK, PPC64,     {RS, A_L}},
--
--{"stdux",     X(31,181),      X_MASK,      PPC64,     {RS, RAS, RB}},
--
--{"stwux",     X(31,183),      X_MASK,      PPCCOM,    {RS, RAS, RB}},
--{"stux",      X(31,183),      X_MASK,      PWRCOM,    {RS, RA0, RB}},
--
--{"sliq",      XRC(31,184,0),  X_MASK,      M601,      {RA, RS, SH}},
--{"sliq.",     XRC(31,184,1),  X_MASK,      M601,      {RA, RS, SH}},
--
--{"prtyd",     X(31,186),      XRB_MASK,    POWER6,    {RA, RS}},
--
--{"stwuxe",    X(31,191),      X_MASK,      BOOKE64,   {RS, RAS, RB}},
--
--{"stvewx",    X(31,199),      X_MASK,      PPCVEC,    {VS, RA, RB}},
--{"stwfcmx",   APU(31,199,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"subfze",    XO(31,200,0,0), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"sfze",      XO(31,200,0,0), XORB_MASK,   PWRCOM,    {RT, RA}},
--{"subfze.",   XO(31,200,0,1), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"sfze.",     XO(31,200,0,1), XORB_MASK,   PWRCOM,    {RT, RA}},
--
--{"addze",     XO(31,202,0,0), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"aze",               XO(31,202,0,0), XORB_MASK,   PWRCOM,    {RT, RA}},
--{"addze.",    XO(31,202,0,1), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"aze.",      XO(31,202,0,1), XORB_MASK,   PWRCOM,    {RT, RA}},
--
--{"msgsnd",    XRTRA(31,206,0,0),XRTRA_MASK,E500MC,    {RB}},
--
--{"mtsr",      X(31,210), XRB_MASK|(1<<20), COM32,     {SR, RS}},
--
--{"stdcx.",    XRC(31,214,1),  X_MASK,      PPC64,     {RS, RA0, RB}},
--
--{"stbx",      X(31,215),      X_MASK,      COM,       {RS, RA0, RB}},
--
--{"sllq",      XRC(31,216,0),  X_MASK,      M601,      {RA, RS, RB}},
--{"sllq.",     XRC(31,216,1),  X_MASK,      M601,      {RA, RS, RB}},
--
--{"sleq",      XRC(31,217,0),  X_MASK,      M601,      {RA, RS, RB}},
--{"sleq.",     XRC(31,217,1),  X_MASK,      M601,      {RA, RS, RB}},
--
--{"stbxe",     X(31,223),      X_MASK,      BOOKE64,   {RS, RA0, RB}},
--{"stbepx",    X(31,223),      X_MASK,      E500MC,    {RS, RA, RB}},
--
--{"icblc",     X(31,230),      X_MASK,      PPCCHLK,   {CT, RA, RB}},
--
--{"stvx",      X(31,231),      X_MASK,      PPCVEC,    {VS, RA, RB}},
--{"stqfcmx",   APU(31,231,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"subfme",    XO(31,232,0,0), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"sfme",      XO(31,232,0,0), XORB_MASK,   PWRCOM,    {RT, RA}},
--{"subfme.",   XO(31,232,0,1), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"sfme.",     XO(31,232,0,1), XORB_MASK,   PWRCOM,    {RT, RA}},
--
--{"mulld",     XO(31,233,0,0), XO_MASK,     PPC64,     {RT, RA, RB}},
--{"mulld.",    XO(31,233,0,1), XO_MASK,     PPC64,     {RT, RA, RB}},
--
--{"addme",     XO(31,234,0,0), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"ame",               XO(31,234,0,0), XORB_MASK,   PWRCOM,    {RT, RA}},
--{"addme.",    XO(31,234,0,1), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"ame.",      XO(31,234,0,1), XORB_MASK,   PWRCOM,    {RT, RA}},
--
--{"mullw",     XO(31,235,0,0), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"muls",      XO(31,235,0,0), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--{"mullw.",    XO(31,235,0,1), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"muls.",     XO(31,235,0,1), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--
--{"msgclr",    XRTRA(31,238,0,0),XRTRA_MASK,E500MC,    {RB}},
--{"icblce",    X(31,238),      X_MASK,      PPCCHLK64, {CT, RA, RB}},
--{"mtsrin",    X(31,242),      XRA_MASK,    PPC32,     {RS, RB}},
--{"mtsri",     X(31,242),      XRA_MASK,    POWER32,   {RS, RB}},
--
--{"dcbtst",    X(31,246),      X_MASK,      PPC,       {CT, RA, RB}},
--
--{"stbux",     X(31,247),      X_MASK,      COM,       {RS, RAS, RB}},
--
--{"slliq",     XRC(31,248,0),  X_MASK,      M601,      {RA, RS, SH}},
--{"slliq.",    XRC(31,248,1),  X_MASK,      M601,      {RA, RS, SH}},
--
--{"dcbtste",   X(31,253),      X_MASK,      BOOKE64,   {CT, RA, RB}},
--
--{"stbuxe",    X(31,255),      X_MASK,      BOOKE64,   {RS, RAS, RB}},
--
--{"dcbtstep",  XRT(31,255,0),  X_MASK,      E500MC,    {RT, RA, RB}},
--
--{"mfdcrx",    X(31,259),      X_MASK,      BOOKE,     {RS, RA}},
--
--{"icbt",      X(31,262),      XRT_MASK,    PPC403,    {RA, RB}},
--
--{"ldfcmx",    APU(31,263,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--{"doz",               XO(31,264,0,0), XO_MASK,     M601,      {RT, RA, RB}},
--{"doz.",      XO(31,264,0,1), XO_MASK,     M601,      {RT, RA, RB}},
--
--{"add",               XO(31,266,0,0), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"cax",               XO(31,266,0,0), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--{"add.",      XO(31,266,0,1), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"cax.",      XO(31,266,0,1), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--
--{"ehpriv",    X(31,270),      0xffffffff,  E500MC,    {0}},
--
--{"tlbiel",    X(31,274),      XRTLRA_MASK, POWER4,    {RB, L}},
--
--{"mfapidi",   X(31,275),      X_MASK,      BOOKE,     {RT, RA}},
--
--{"lscbx",     XRC(31,277,0),  X_MASK,      M601,      {RT, RA, RB}},
--{"lscbx.",    XRC(31,277,1),  X_MASK,      M601,      {RT, RA, RB}},
--
--{"dcbt",      X(31,278),      X_MASK,      PPC,       {CT, RA, RB}},
--
--{"lhzx",      X(31,279),      X_MASK,      COM,       {RT, RA0, RB}},
--
--{"eqv",               XRC(31,284,0),  X_MASK,      COM,       {RA, RS, RB}},
--{"eqv.",      XRC(31,284,1),  X_MASK,      COM,       {RA, RS, RB}},
--
--{"dcbte",     X(31,286),      X_MASK,      BOOKE64,   {CT, RA, RB}},
--
--{"lhzxe",     X(31,287),      X_MASK,      BOOKE64,   {RT, RA0, RB}},
--{"lhepx",     X(31,287),      X_MASK,      E500MC,    {RT, RA, RB}},
--
--{"mfdcrux",   X(31,291),      X_MASK,      PPC464,    {RS, RA}},
--
--{"tlbie",     X(31,306),      XRTLRA_MASK, PPC,       {RB, L}},
--{"tlbi",      X(31,306),      XRT_MASK,    POWER,     {RA0, RB}},
--
--{"eciwx",     X(31,310),      X_MASK,      PPC,       {RT, RA, RB}},
--
--{"lhzux",     X(31,311),      X_MASK,      COM,       {RT, RAL, RB}},
--
--{"xor",               XRC(31,316,0),  X_MASK,      COM,       {RA, RS, RB}},
--{"xor.",      XRC(31,316,1),  X_MASK,      COM,       {RA, RS, RB}},
--
--{"lhzuxe",    X(31,319),      X_MASK,      BOOKE64,   {RT, RAL, RB}},
--
--{"dcbtep",    XRT(31,319,0),  X_MASK,      E500MC,    {RT, RA, RB}},
--
--{"mfexisr",   XSPR(31,323, 64), XSPR_MASK, PPC403,    {RT}},
--{"mfexier",   XSPR(31,323, 66), XSPR_MASK, PPC403,    {RT}},
--{"mfbr0",     XSPR(31,323,128), XSPR_MASK, PPC403,    {RT}},
--{"mfbr1",     XSPR(31,323,129), XSPR_MASK, PPC403,    {RT}},
--{"mfbr2",     XSPR(31,323,130), XSPR_MASK, PPC403,    {RT}},
--{"mfbr3",     XSPR(31,323,131), XSPR_MASK, PPC403,    {RT}},
--{"mfbr4",     XSPR(31,323,132), XSPR_MASK, PPC403,    {RT}},
--{"mfbr5",     XSPR(31,323,133), XSPR_MASK, PPC403,    {RT}},
--{"mfbr6",     XSPR(31,323,134), XSPR_MASK, PPC403,    {RT}},
--{"mfbr7",     XSPR(31,323,135), XSPR_MASK, PPC403,    {RT}},
--{"mfbear",    XSPR(31,323,144), XSPR_MASK, PPC403,    {RT}},
--{"mfbesr",    XSPR(31,323,145), XSPR_MASK, PPC403,    {RT}},
--{"mfiocr",    XSPR(31,323,160), XSPR_MASK, PPC403,    {RT}},
--{"mfdmacr0",  XSPR(31,323,192), XSPR_MASK, PPC403,    {RT}},
--{"mfdmact0",  XSPR(31,323,193), XSPR_MASK, PPC403,    {RT}},
--{"mfdmada0",  XSPR(31,323,194), XSPR_MASK, PPC403,    {RT}},
--{"mfdmasa0",  XSPR(31,323,195), XSPR_MASK, PPC403,    {RT}},
--{"mfdmacc0",  XSPR(31,323,196), XSPR_MASK, PPC403,    {RT}},
--{"mfdmacr1",  XSPR(31,323,200), XSPR_MASK, PPC403,    {RT}},
--{"mfdmact1",  XSPR(31,323,201), XSPR_MASK, PPC403,    {RT}},
--{"mfdmada1",  XSPR(31,323,202), XSPR_MASK, PPC403,    {RT}},
--{"mfdmasa1",  XSPR(31,323,203), XSPR_MASK, PPC403,    {RT}},
--{"mfdmacc1",  XSPR(31,323,204), XSPR_MASK, PPC403,    {RT}},
--{"mfdmacr2",  XSPR(31,323,208), XSPR_MASK, PPC403,    {RT}},
--{"mfdmact2",  XSPR(31,323,209), XSPR_MASK, PPC403,    {RT}},
--{"mfdmada2",  XSPR(31,323,210), XSPR_MASK, PPC403,    {RT}},
--{"mfdmasa2",  XSPR(31,323,211), XSPR_MASK, PPC403,    {RT}},
--{"mfdmacc2",  XSPR(31,323,212), XSPR_MASK, PPC403,    {RT}},
--{"mfdmacr3",  XSPR(31,323,216), XSPR_MASK, PPC403,    {RT}},
--{"mfdmact3",  XSPR(31,323,217), XSPR_MASK, PPC403,    {RT}},
--{"mfdmada3",  XSPR(31,323,218), XSPR_MASK, PPC403,    {RT}},
--{"mfdmasa3",  XSPR(31,323,219), XSPR_MASK, PPC403,    {RT}},
--{"mfdmacc3",  XSPR(31,323,220), XSPR_MASK, PPC403,    {RT}},
--{"mfdmasr",   XSPR(31,323,224), XSPR_MASK, PPC403,    {RT}},
--{"mfdcr",     X(31,323),      X_MASK,   PPC403|BOOKE, {RT, SPR}},
--
--{"div",               XO(31,331,0,0), XO_MASK,     M601,      {RT, RA, RB}},
--{"div.",      XO(31,331,0,1), XO_MASK,     M601,      {RT, RA, RB}},
--
--{"mfpmr",     X(31,334),      X_MASK, PPCPMR|PPCE300, {RT, PMR}},
--
--{"mfmq",      XSPR(31,339,  0), XSPR_MASK, M601,      {RT}},
--{"mfxer",     XSPR(31,339,  1), XSPR_MASK, COM,       {RT}},
--{"mfrtcu",    XSPR(31,339,  4), XSPR_MASK, COM,       {RT}},
--{"mfrtcl",    XSPR(31,339,  5), XSPR_MASK, COM,       {RT}},
--{"mfdec",     XSPR(31,339,  6), XSPR_MASK, MFDEC1,    {RT}},
--{"mflr",      XSPR(31,339,  8), XSPR_MASK, COM,       {RT}},
--{"mfctr",     XSPR(31,339,  9), XSPR_MASK, COM,       {RT}},
--{"mftid",     XSPR(31,339, 17), XSPR_MASK, POWER,     {RT}},
--{"mfdsisr",   XSPR(31,339, 18), XSPR_MASK, COM,       {RT}},
--{"mfdar",     XSPR(31,339, 19), XSPR_MASK, COM,       {RT}},
--{"mfdec",     XSPR(31,339, 22), XSPR_MASK, MFDEC2,    {RT}},
--{"mfsdr0",    XSPR(31,339, 24), XSPR_MASK, POWER,     {RT}},
--{"mfsdr1",    XSPR(31,339, 25), XSPR_MASK, COM,       {RT}},
--{"mfsrr0",    XSPR(31,339, 26), XSPR_MASK, COM,       {RT}},
--{"mfsrr1",    XSPR(31,339, 27), XSPR_MASK, COM,       {RT}},
--{"mfcfar",    XSPR(31,339, 28), XSPR_MASK, POWER6,    {RT}},
--{"mfpid",     XSPR(31,339, 48), XSPR_MASK, BOOKE,     {RT}},
--{"mfcsrr0",   XSPR(31,339, 58), XSPR_MASK, BOOKE,     {RT}},
--{"mfcsrr1",   XSPR(31,339, 59), XSPR_MASK, BOOKE,     {RT}},
--{"mfdear",    XSPR(31,339, 61), XSPR_MASK, BOOKE,     {RT}},
--{"mfesr",     XSPR(31,339, 62), XSPR_MASK, BOOKE,     {RT}},
--{"mfivpr",    XSPR(31,339, 63), XSPR_MASK, BOOKE,     {RT}},
--{"mfcmpa",    XSPR(31,339,144), XSPR_MASK, PPC860,    {RT}},
--{"mfcmpb",    XSPR(31,339,145), XSPR_MASK, PPC860,    {RT}},
--{"mfcmpc",    XSPR(31,339,146), XSPR_MASK, PPC860,    {RT}},
--{"mfcmpd",    XSPR(31,339,147), XSPR_MASK, PPC860,    {RT}},
--{"mficr",     XSPR(31,339,148), XSPR_MASK, PPC860,    {RT}},
--{"mfder",     XSPR(31,339,149), XSPR_MASK, PPC860,    {RT}},
--{"mfcounta",  XSPR(31,339,150), XSPR_MASK, PPC860,    {RT}},
--{"mfcountb",  XSPR(31,339,151), XSPR_MASK, PPC860,    {RT}},
--{"mfcmpe",    XSPR(31,339,152), XSPR_MASK, PPC860,    {RT}},
--{"mfcmpf",    XSPR(31,339,153), XSPR_MASK, PPC860,    {RT}},
--{"mfcmpg",    XSPR(31,339,154), XSPR_MASK, PPC860,    {RT}},
--{"mfcmph",    XSPR(31,339,155), XSPR_MASK, PPC860,    {RT}},
--{"mflctrl1",  XSPR(31,339,156), XSPR_MASK, PPC860,    {RT}},
--{"mflctrl2",  XSPR(31,339,157), XSPR_MASK, PPC860,    {RT}},
--{"mfictrl",   XSPR(31,339,158), XSPR_MASK, PPC860,    {RT}},
--{"mfbar",     XSPR(31,339,159), XSPR_MASK, PPC860,    {RT}},
--{"mfvrsave",  XSPR(31,339,256), XSPR_MASK, PPCVEC,    {RT}},
--{"mfusprg0",  XSPR(31,339,256), XSPR_MASK, BOOKE,     {RT}},
--{"mfsprg",    XSPR(31,339,256), XSPRG_MASK, PPC,      {RT, SPRG}},
--{"mfsprg4",   XSPR(31,339,260), XSPR_MASK, PPC405|BOOKE, {RT}},
--{"mfsprg5",   XSPR(31,339,261), XSPR_MASK, PPC405|BOOKE, {RT}},
--{"mfsprg6",   XSPR(31,339,262), XSPR_MASK, PPC405|BOOKE, {RT}},
--{"mfsprg7",   XSPR(31,339,263), XSPR_MASK, PPC405|BOOKE, {RT}},
--{"mftb",      XSPR(31,339,268), XSPR_MASK, BOOKE,     {RT}},
--{"mftbl",     XSPR(31,339,268), XSPR_MASK, BOOKE,     {RT}},
--{"mftbu",     XSPR(31,339,269), XSPR_MASK, BOOKE,     {RT}},
--{"mfsprg0",   XSPR(31,339,272), XSPR_MASK, PPC,       {RT}},
--{"mfsprg1",   XSPR(31,339,273), XSPR_MASK, PPC,       {RT}},
--{"mfsprg2",   XSPR(31,339,274), XSPR_MASK, PPC,       {RT}},
--{"mfsprg3",   XSPR(31,339,275), XSPR_MASK, PPC,       {RT}},
--{"mfasr",     XSPR(31,339,280), XSPR_MASK, PPC64,     {RT}},
--{"mfear",     XSPR(31,339,282), XSPR_MASK, PPC,       {RT}},
--{"mfpir",     XSPR(31,339,286), XSPR_MASK, BOOKE,     {RT}},
--{"mfpvr",     XSPR(31,339,287), XSPR_MASK, PPC,       {RT}},
--{"mfdbsr",    XSPR(31,339,304), XSPR_MASK, BOOKE,     {RT}},
--{"mfdbcr0",   XSPR(31,339,308), XSPR_MASK, BOOKE,     {RT}},
--{"mfdbcr1",   XSPR(31,339,309), XSPR_MASK, BOOKE,     {RT}},
--{"mfdbcr2",   XSPR(31,339,310), XSPR_MASK, BOOKE,     {RT}},
--{"mfiac1",    XSPR(31,339,312), XSPR_MASK, BOOKE,     {RT}},
--{"mfiac2",    XSPR(31,339,313), XSPR_MASK, BOOKE,     {RT}},
--{"mfiac3",    XSPR(31,339,314), XSPR_MASK, BOOKE,     {RT}},
--{"mfiac4",    XSPR(31,339,315), XSPR_MASK, BOOKE,     {RT}},
--{"mfdac1",    XSPR(31,339,316), XSPR_MASK, BOOKE,     {RT}},
--{"mfdac2",    XSPR(31,339,317), XSPR_MASK, BOOKE,     {RT}},
--{"mfdvc1",    XSPR(31,339,318), XSPR_MASK, BOOKE,     {RT}},
--{"mfdvc2",    XSPR(31,339,319), XSPR_MASK, BOOKE,     {RT}},
--{"mftsr",     XSPR(31,339,336), XSPR_MASK, BOOKE,     {RT}},
--{"mftcr",     XSPR(31,339,340), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor0",   XSPR(31,339,400), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor1",   XSPR(31,339,401), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor2",   XSPR(31,339,402), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor3",   XSPR(31,339,403), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor4",   XSPR(31,339,404), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor5",   XSPR(31,339,405), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor6",   XSPR(31,339,406), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor7",   XSPR(31,339,407), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor8",   XSPR(31,339,408), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor9",   XSPR(31,339,409), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor10",  XSPR(31,339,410), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor11",  XSPR(31,339,411), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor12",  XSPR(31,339,412), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor13",  XSPR(31,339,413), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor14",  XSPR(31,339,414), XSPR_MASK, BOOKE,     {RT}},
--{"mfivor15",  XSPR(31,339,415), XSPR_MASK, BOOKE,     {RT}},
--{"mfspefscr", XSPR(31,339,512), XSPR_MASK, PPCSPE,    {RT}},
--{"mfbbear",   XSPR(31,339,513), XSPR_MASK, PPCBRLK,   {RT}},
--{"mfbbtar",   XSPR(31,339,514), XSPR_MASK, PPCBRLK,   {RT}},
--{"mfivor32",  XSPR(31,339,528), XSPR_MASK, PPCSPE,    {RT}},
--{"mfibatu",   XSPR(31,339,528), XSPRBAT_MASK, PPC,    {RT, SPRBAT}},
--{"mfivor33",  XSPR(31,339,529), XSPR_MASK, PPCSPE,    {RT}},
--{"mfibatl",   XSPR(31,339,529), XSPRBAT_MASK, PPC,    {RT, SPRBAT}},
--{"mfivor34",  XSPR(31,339,530), XSPR_MASK, PPCSPE,    {RT}},
--{"mfivor35",  XSPR(31,339,531), XSPR_MASK, PPCPMR,    {RT}},
--{"mfdbatu",   XSPR(31,339,536), XSPRBAT_MASK, PPC,    {RT, SPRBAT}},
--{"mfdbatl",   XSPR(31,339,537), XSPRBAT_MASK, PPC,    {RT, SPRBAT}},
--{"mfic_cst",  XSPR(31,339,560), XSPR_MASK, PPC860,    {RT}},
--{"mfic_adr",  XSPR(31,339,561), XSPR_MASK, PPC860,    {RT}},
--{"mfic_dat",  XSPR(31,339,562), XSPR_MASK, PPC860,    {RT}},
--{"mfdc_cst",  XSPR(31,339,568), XSPR_MASK, PPC860,    {RT}},
--{"mfdc_adr",  XSPR(31,339,569), XSPR_MASK, PPC860,    {RT}},
--{"mfdc_dat",  XSPR(31,339,570), XSPR_MASK, PPC860,    {RT}},
--{"mfmcsrr0",  XSPR(31,339,570), XSPR_MASK, PPCRFMCI,  {RT}},
--{"mfmcsrr1",  XSPR(31,339,571), XSPR_MASK, PPCRFMCI,  {RT}},
--{"mfmcsr",    XSPR(31,339,572), XSPR_MASK, PPCRFMCI,  {RT}},
--{"mfmcar",    XSPR(31,339,573), XSPR_MASK, PPCRFMCI,  {RT}},
--{"mfdpdr",    XSPR(31,339,630), XSPR_MASK, PPC860,    {RT}},
--{"mfdpir",    XSPR(31,339,631), XSPR_MASK, PPC860,    {RT}},
--{"mfimmr",    XSPR(31,339,638), XSPR_MASK, PPC860,    {RT}},
--{"mfmi_ctr",  XSPR(31,339,784), XSPR_MASK, PPC860,    {RT}},
--{"mfmi_ap",   XSPR(31,339,786), XSPR_MASK, PPC860,    {RT}},
--{"mfmi_epn",  XSPR(31,339,787), XSPR_MASK, PPC860,    {RT}},
--{"mfmi_twc",  XSPR(31,339,789), XSPR_MASK, PPC860,    {RT}},
--{"mfmi_rpn",  XSPR(31,339,790), XSPR_MASK, PPC860,    {RT}},
--{"mfmd_ctr",  XSPR(31,339,792), XSPR_MASK, PPC860,    {RT}},
--{"mfm_casid", XSPR(31,339,793), XSPR_MASK, PPC860,    {RT}},
--{"mfmd_ap",   XSPR(31,339,794), XSPR_MASK, PPC860,    {RT}},
--{"mfmd_epn",  XSPR(31,339,795), XSPR_MASK, PPC860,    {RT}},
--{"mfmd_twb",  XSPR(31,339,796), XSPR_MASK, PPC860,    {RT}},
--{"mfmd_twc",  XSPR(31,339,797), XSPR_MASK, PPC860,    {RT}},
--{"mfmd_rpn",  XSPR(31,339,798), XSPR_MASK, PPC860,    {RT}},
--{"mfm_tw",    XSPR(31,339,799), XSPR_MASK, PPC860,    {RT}},
--{"mfmi_dbcam",        XSPR(31,339,816), XSPR_MASK, PPC860,    {RT}},
--{"mfmi_dbram0",       XSPR(31,339,817), XSPR_MASK, PPC860,    {RT}},
--{"mfmi_dbram1",       XSPR(31,339,818), XSPR_MASK, PPC860,    {RT}},
--{"mfmd_dbcam",        XSPR(31,339,824), XSPR_MASK, PPC860,    {RT}},
--{"mfmd_dbram0",       XSPR(31,339,825), XSPR_MASK, PPC860,    {RT}},
--{"mfmd_dbram1",       XSPR(31,339,826), XSPR_MASK, PPC860,    {RT}},
--{"mfummcr0",  XSPR(31,339,936), XSPR_MASK, PPC750,    {RT}},
--{"mfupmc1",   XSPR(31,339,937), XSPR_MASK, PPC750,    {RT}},
--{"mfupmc2",   XSPR(31,339,938), XSPR_MASK, PPC750,    {RT}},
--{"mfusia",    XSPR(31,339,939), XSPR_MASK, PPC750,    {RT}},
--{"mfummcr1",  XSPR(31,339,940), XSPR_MASK, PPC750,    {RT}},
--{"mfupmc3",   XSPR(31,339,941), XSPR_MASK, PPC750,    {RT}},
--{"mfupmc4",   XSPR(31,339,942), XSPR_MASK, PPC750,    {RT}},
--{"mfzpr",     XSPR(31,339,944), XSPR_MASK, PPC403,    {RT}},
--{"mfpid",     XSPR(31,339,945), XSPR_MASK, PPC403,    {RT}},
--{"mfccr0",    XSPR(31,339,947), XSPR_MASK, PPC405,    {RT}},
--{"mfiac3",    XSPR(31,339,948), XSPR_MASK, PPC405,    {RT}},
--{"mfiac4",    XSPR(31,339,949), XSPR_MASK, PPC405,    {RT}},
--{"mfdvc1",    XSPR(31,339,950), XSPR_MASK, PPC405,    {RT}},
--{"mfdvc2",    XSPR(31,339,951), XSPR_MASK, PPC405,    {RT}},
--{"mfmmcr0",   XSPR(31,339,952), XSPR_MASK, PPC750,    {RT}},
--{"mfpmc1",    XSPR(31,339,953), XSPR_MASK, PPC750,    {RT}},
--{"mfsgr",     XSPR(31,339,953), XSPR_MASK, PPC403,    {RT}},
--{"mfdcwr",    XSPR(31,339,954), XSPR_MASK, PPC403,    {RT}},
--{"mfpmc2",    XSPR(31,339,954), XSPR_MASK, PPC750,    {RT}},
--{"mfsia",     XSPR(31,339,955), XSPR_MASK, PPC750,    {RT}},
--{"mfsler",    XSPR(31,339,955), XSPR_MASK, PPC405,    {RT}},
--{"mfmmcr1",   XSPR(31,339,956), XSPR_MASK, PPC750,    {RT}},
--{"mfsu0r",    XSPR(31,339,956), XSPR_MASK, PPC405,    {RT}},
--{"mfdbcr1",   XSPR(31,339,957), XSPR_MASK, PPC405,    {RT}},
--{"mfpmc3",    XSPR(31,339,957), XSPR_MASK, PPC750,    {RT}},
--{"mfpmc4",    XSPR(31,339,958), XSPR_MASK, PPC750,    {RT}},
--{"mficdbdr",  XSPR(31,339,979), XSPR_MASK, PPC403,    {RT}},
--{"mfesr",     XSPR(31,339,980), XSPR_MASK, PPC403,    {RT}},
--{"mfdear",    XSPR(31,339,981), XSPR_MASK, PPC403,    {RT}},
--{"mfevpr",    XSPR(31,339,982), XSPR_MASK, PPC403,    {RT}},
--{"mfcdbcr",   XSPR(31,339,983), XSPR_MASK, PPC403,    {RT}},
--{"mftsr",     XSPR(31,339,984), XSPR_MASK, PPC403,    {RT}},
--{"mftcr",     XSPR(31,339,986), XSPR_MASK, PPC403,    {RT}},
--{"mfpit",     XSPR(31,339,987), XSPR_MASK, PPC403,    {RT}},
--{"mftbhi",    XSPR(31,339,988), XSPR_MASK, PPC403,    {RT}},
--{"mftblo",    XSPR(31,339,989), XSPR_MASK, PPC403,    {RT}},
--{"mfsrr2",    XSPR(31,339,990), XSPR_MASK, PPC403,    {RT}},
--{"mfsrr3",    XSPR(31,339,991), XSPR_MASK, PPC403,    {RT}},
--{"mfdbsr",    XSPR(31,339,1008), XSPR_MASK, PPC403,   {RT}},
--{"mfdbcr0",   XSPR(31,339,1010), XSPR_MASK, PPC405,   {RT}},
--{"mfiac1",    XSPR(31,339,1012), XSPR_MASK, PPC403,   {RT}},
--{"mfiac2",    XSPR(31,339,1013), XSPR_MASK, PPC403,   {RT}},
--{"mfdac1",    XSPR(31,339,1014), XSPR_MASK, PPC403,   {RT}},
--{"mfdac2",    XSPR(31,339,1015), XSPR_MASK, PPC403,   {RT}},
--{"mfl2cr",    XSPR(31,339,1017), XSPR_MASK, PPC750,   {RT}},
--{"mfdccr",    XSPR(31,339,1018), XSPR_MASK, PPC403,   {RT}},
--{"mficcr",    XSPR(31,339,1019), XSPR_MASK, PPC403,   {RT}},
--{"mfictc",    XSPR(31,339,1019), XSPR_MASK, PPC750,   {RT}},
--{"mfpbl1",    XSPR(31,339,1020), XSPR_MASK, PPC403,   {RT}},
--{"mfthrm1",   XSPR(31,339,1020), XSPR_MASK, PPC750,   {RT}},
--{"mfpbu1",    XSPR(31,339,1021), XSPR_MASK, PPC403,   {RT}},
--{"mfthrm2",   XSPR(31,339,1021), XSPR_MASK, PPC750,   {RT}},
--{"mfpbl2",    XSPR(31,339,1022), XSPR_MASK, PPC403,   {RT}},
--{"mfthrm3",   XSPR(31,339,1022), XSPR_MASK, PPC750,   {RT}},
--{"mfpbu2",    XSPR(31,339,1023), XSPR_MASK, PPC403,   {RT}},
--{"mfspr",     X(31,339),      X_MASK,      COM,       {RT, SPR}},
--
--{"lwax",      X(31,341),      X_MASK,      PPC64,     {RT, RA0, RB}},
--
--{"dst",               XDSS(31,342,0), XDSS_MASK,   PPCVEC,    {RA, RB, STRM}},
--
--{"lhax",      X(31,343),      X_MASK,      COM,       {RT, RA0, RB}},
--
--{"lhaxe",     X(31,351),      X_MASK,      BOOKE64,   {RT, RA0, RB}},
--
--{"lvxl",      X(31,359),      X_MASK,      PPCVEC,    {VD, RA, RB}},
--
--{"abs",               XO(31,360,0,0), XORB_MASK,   M601,      {RT, RA}},
--{"abs.",      XO(31,360,0,1), XORB_MASK,   M601,      {RT, RA}},
--
--{"divs",      XO(31,363,0,0), XO_MASK,     M601,      {RT, RA, RB}},
--{"divs.",     XO(31,363,0,1), XO_MASK,     M601,      {RT, RA, RB}},
--
--{"tlbia",     X(31,370),      0xffffffff,  PPC,       {0}},
--
--{"mftbl",     XSPR(31,371,268), XSPR_MASK, CLASSIC,   {RT}},
--{"mftbu",     XSPR(31,371,269), XSPR_MASK, CLASSIC,   {RT}},
--{"mftb",      X(31,371),      X_MASK,      CLASSIC,   {RT, TBR}},
--
--{"lwaux",     X(31,373),      X_MASK,      PPC64,     {RT, RAL, RB}},
--
--{"dstst",     XDSS(31,374,0), XDSS_MASK,   PPCVEC,    {RA, RB, STRM}},
--
--{"lhaux",     X(31,375),      X_MASK,      COM,       {RT, RAL, RB}},
--
--{"lhauxe",    X(31,383),      X_MASK,      BOOKE64,   {RT, RAL, RB}},
--
--{"mtdcrx",    X(31,387),      X_MASK,      BOOKE,     {RA, RS}},
--
--{"dcblc",     X(31,390),      X_MASK,      PPCCHLK,   {CT, RA, RB}},
--{"stdfcmx",   APU(31,391,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"subfe64",   XO(31,392,0,0), XO_MASK,     BOOKE64,   {RT, RA, RB}},
--
--{"adde64",    XO(31,394,0,0), XO_MASK,     BOOKE64,   {RT, RA, RB}},
--
--{"dcblce",    X(31,398),      X_MASK,      PPCCHLK64, {CT, RA, RB}},
--
--{"slbmte",    X(31,402),      XRA_MASK,    PPC64,     {RS, RB}},
--
--{"sthx",      X(31,407),      X_MASK,      COM,       {RS, RA0, RB}},
--
--{"orc",               XRC(31,412,0),  X_MASK,      COM,       {RA, RS, RB}},
--{"orc.",      XRC(31,412,1),  X_MASK,      COM,       {RA, RS, RB}},
--
--{"sthxe",     X(31,415),      X_MASK,      BOOKE64,   {RS, RA0, RB}},
--{"sthepx",    X(31,415),      X_MASK,      E500MC,    {RS, RA, RB}},
--
--{"mtdcrux",   X(31,419),      X_MASK,      PPC464,    {RA, RS}},
--
--{"slbie",     X(31,434),      XRTRA_MASK,  PPC64,     {RB}},
--
--{"ecowx",     X(31,438),      X_MASK,      PPC,       {RT, RA, RB}},
--
--{"sthux",     X(31,439),      X_MASK,      COM,       {RS, RAS, RB}},
--
--{"mdors",     0x7f9ce378,     0xffffffff,  E500MC,    {0}},
--
--{"mr",                XRC(31,444,0),  X_MASK,      COM,       {RA, RS, RBS}},
--{"or",                XRC(31,444,0),  X_MASK,      COM,       {RA, RS, RB}},
--{"mr.",               XRC(31,444,1),  X_MASK,      COM,       {RA, RS, RBS}},
--{"or.",               XRC(31,444,1),  X_MASK,      COM,       {RA, RS, RB}},
--
--{"sthuxe",    X(31,447),      X_MASK,      BOOKE64,   {RS, RAS, RB}},
--
--{"mtexisr",   XSPR(31,451, 64), XSPR_MASK, PPC403,    {RS}},
--{"mtexier",   XSPR(31,451, 66), XSPR_MASK, PPC403,    {RS}},
--{"mtbr0",     XSPR(31,451,128), XSPR_MASK, PPC403,    {RS}},
--{"mtbr1",     XSPR(31,451,129), XSPR_MASK, PPC403,    {RS}},
--{"mtbr2",     XSPR(31,451,130), XSPR_MASK, PPC403,    {RS}},
--{"mtbr3",     XSPR(31,451,131), XSPR_MASK, PPC403,    {RS}},
--{"mtbr4",     XSPR(31,451,132), XSPR_MASK, PPC403,    {RS}},
--{"mtbr5",     XSPR(31,451,133), XSPR_MASK, PPC403,    {RS}},
--{"mtbr6",     XSPR(31,451,134), XSPR_MASK, PPC403,    {RS}},
--{"mtbr7",     XSPR(31,451,135), XSPR_MASK, PPC403,    {RS}},
--{"mtbear",    XSPR(31,451,144), XSPR_MASK, PPC403,    {RS}},
--{"mtbesr",    XSPR(31,451,145), XSPR_MASK, PPC403,    {RS}},
--{"mtiocr",    XSPR(31,451,160), XSPR_MASK, PPC403,    {RS}},
--{"mtdmacr0",  XSPR(31,451,192), XSPR_MASK, PPC403,    {RS}},
--{"mtdmact0",  XSPR(31,451,193), XSPR_MASK, PPC403,    {RS}},
--{"mtdmada0",  XSPR(31,451,194), XSPR_MASK, PPC403,    {RS}},
--{"mtdmasa0",  XSPR(31,451,195), XSPR_MASK, PPC403,    {RS}},
--{"mtdmacc0",  XSPR(31,451,196), XSPR_MASK, PPC403,    {RS}},
--{"mtdmacr1",  XSPR(31,451,200), XSPR_MASK, PPC403,    {RS}},
--{"mtdmact1",  XSPR(31,451,201), XSPR_MASK, PPC403,    {RS}},
--{"mtdmada1",  XSPR(31,451,202), XSPR_MASK, PPC403,    {RS}},
--{"mtdmasa1",  XSPR(31,451,203), XSPR_MASK, PPC403,    {RS}},
--{"mtdmacc1",  XSPR(31,451,204), XSPR_MASK, PPC403,    {RS}},
--{"mtdmacr2",  XSPR(31,451,208), XSPR_MASK, PPC403,    {RS}},
--{"mtdmact2",  XSPR(31,451,209), XSPR_MASK, PPC403,    {RS}},
--{"mtdmada2",  XSPR(31,451,210), XSPR_MASK, PPC403,    {RS}},
--{"mtdmasa2",  XSPR(31,451,211), XSPR_MASK, PPC403,    {RS}},
--{"mtdmacc2",  XSPR(31,451,212), XSPR_MASK, PPC403,    {RS}},
--{"mtdmacr3",  XSPR(31,451,216), XSPR_MASK, PPC403,    {RS}},
--{"mtdmact3",  XSPR(31,451,217), XSPR_MASK, PPC403,    {RS}},
--{"mtdmada3",  XSPR(31,451,218), XSPR_MASK, PPC403,    {RS}},
--{"mtdmasa3",  XSPR(31,451,219), XSPR_MASK, PPC403,    {RS}},
--{"mtdmacc3",  XSPR(31,451,220), XSPR_MASK, PPC403,    {RS}},
--{"mtdmasr",   XSPR(31,451,224), XSPR_MASK, PPC403,    {RS}},
--{"mtdcr",     X(31,451),      X_MASK,   PPC403|BOOKE, {SPR, RS}},
--
--{"dccci",     X(31,454),     XRT_MASK, PPC403|PPC440, {RA, RB}},
--
--{"subfze64",  XO(31,456,0,0), XORB_MASK,   BOOKE64,   {RT, RA}},
--
--{"divdu",     XO(31,457,0,0), XO_MASK,     PPC64,     {RT, RA, RB}},
--{"divdu.",    XO(31,457,0,1), XO_MASK,     PPC64,     {RT, RA, RB}},
--
--{"addze64",   XO(31,458,0,0), XORB_MASK,   BOOKE64,   {RT, RA}},
--
--{"divwu",     XO(31,459,0,0), XO_MASK,     PPC,       {RT, RA, RB}},
--{"divwu.",    XO(31,459,0,1), XO_MASK,     PPC,       {RT, RA, RB}},
--
--{"mtpmr",     X(31,462),      X_MASK, PPCPMR|PPCE300, {PMR, RS}},
--
--{"mtmq",      XSPR(31,467,  0), XSPR_MASK, M601,      {RS}},
--{"mtxer",     XSPR(31,467,  1), XSPR_MASK, COM,       {RS}},
--{"mtlr",      XSPR(31,467,  8), XSPR_MASK, COM,       {RS}},
--{"mtctr",     XSPR(31,467,  9), XSPR_MASK, COM,       {RS}},
--{"mttid",     XSPR(31,467, 17), XSPR_MASK, POWER,     {RS}},
--{"mtdsisr",   XSPR(31,467, 18), XSPR_MASK, COM,       {RS}},
--{"mtdar",     XSPR(31,467, 19), XSPR_MASK, COM,       {RS}},
--{"mtrtcu",    XSPR(31,467, 20), XSPR_MASK, COM,       {RS}},
--{"mtrtcl",    XSPR(31,467, 21), XSPR_MASK, COM,       {RS}},
--{"mtdec",     XSPR(31,467, 22), XSPR_MASK, COM,       {RS}},
--{"mtsdr0",    XSPR(31,467, 24), XSPR_MASK, POWER,     {RS}},
--{"mtsdr1",    XSPR(31,467, 25), XSPR_MASK, COM,       {RS}},
--{"mtsrr0",    XSPR(31,467, 26), XSPR_MASK, COM,       {RS}},
--{"mtsrr1",    XSPR(31,467, 27), XSPR_MASK, COM,       {RS}},
--{"mtcfar",    XSPR(31,467, 28), XSPR_MASK, POWER6,    {RS}},
--{"mtpid",     XSPR(31,467, 48), XSPR_MASK, BOOKE,     {RS}},
--{"mtdecar",   XSPR(31,467, 54), XSPR_MASK, BOOKE,     {RS}},
--{"mtcsrr0",   XSPR(31,467, 58), XSPR_MASK, BOOKE,     {RS}},
--{"mtcsrr1",   XSPR(31,467, 59), XSPR_MASK, BOOKE,     {RS}},
--{"mtdear",    XSPR(31,467, 61), XSPR_MASK, BOOKE,     {RS}},
--{"mtesr",     XSPR(31,467, 62), XSPR_MASK, BOOKE,     {RS}},
--{"mtivpr",    XSPR(31,467, 63), XSPR_MASK, BOOKE,     {RS}},
--{"mtcmpa",    XSPR(31,467,144), XSPR_MASK, PPC860,    {RS}},
--{"mtcmpb",    XSPR(31,467,145), XSPR_MASK, PPC860,    {RS}},
--{"mtcmpc",    XSPR(31,467,146), XSPR_MASK, PPC860,    {RS}},
--{"mtcmpd",    XSPR(31,467,147), XSPR_MASK, PPC860,    {RS}},
--{"mticr",     XSPR(31,467,148), XSPR_MASK, PPC860,    {RS}},
--{"mtder",     XSPR(31,467,149), XSPR_MASK, PPC860,    {RS}},
--{"mtcounta",  XSPR(31,467,150), XSPR_MASK, PPC860,    {RS}},
--{"mtcountb",  XSPR(31,467,151), XSPR_MASK, PPC860,    {RS}},
--{"mtcmpe",    XSPR(31,467,152), XSPR_MASK, PPC860,    {RS}},
--{"mtcmpf",    XSPR(31,467,153), XSPR_MASK, PPC860,    {RS}},
--{"mtcmpg",    XSPR(31,467,154), XSPR_MASK, PPC860,    {RS}},
--{"mtcmph",    XSPR(31,467,155), XSPR_MASK, PPC860,    {RS}},
--{"mtlctrl1",  XSPR(31,467,156), XSPR_MASK, PPC860,    {RS}},
--{"mtlctrl2",  XSPR(31,467,157), XSPR_MASK, PPC860,    {RS}},
--{"mtictrl",   XSPR(31,467,158), XSPR_MASK, PPC860,    {RS}},
--{"mtbar",     XSPR(31,467,159), XSPR_MASK, PPC860,    {RS}},
--{"mtvrsave",  XSPR(31,467,256), XSPR_MASK, PPCVEC,    {RS}},
--{"mtusprg0",  XSPR(31,467,256), XSPR_MASK, BOOKE,     {RS}},
--{"mtsprg",    XSPR(31,467,256), XSPRG_MASK,PPC,       {SPRG, RS}},
--{"mtsprg0",   XSPR(31,467,272), XSPR_MASK, PPC,       {RS}},
--{"mtsprg1",   XSPR(31,467,273), XSPR_MASK, PPC,       {RS}},
--{"mtsprg2",   XSPR(31,467,274), XSPR_MASK, PPC,       {RS}},
--{"mtsprg3",   XSPR(31,467,275), XSPR_MASK, PPC,       {RS}},
--{"mtsprg4",   XSPR(31,467,276), XSPR_MASK, PPC405|BOOKE, {RS}},
--{"mtsprg5",   XSPR(31,467,277), XSPR_MASK, PPC405|BOOKE, {RS}},
--{"mtsprg6",   XSPR(31,467,278), XSPR_MASK, PPC405|BOOKE, {RS}},
--{"mtsprg7",   XSPR(31,467,279), XSPR_MASK, PPC405|BOOKE, {RS}},
--{"mtasr",     XSPR(31,467,280), XSPR_MASK, PPC64,     {RS}},
--{"mtear",     XSPR(31,467,282), XSPR_MASK, PPC,       {RS}},
--{"mttbl",     XSPR(31,467,284), XSPR_MASK, PPC,       {RS}},
--{"mttbu",     XSPR(31,467,285), XSPR_MASK, PPC,       {RS}},
--{"mtdbsr",    XSPR(31,467,304), XSPR_MASK, BOOKE,     {RS}},
--{"mtdbcr0",   XSPR(31,467,308), XSPR_MASK, BOOKE,     {RS}},
--{"mtdbcr1",   XSPR(31,467,309), XSPR_MASK, BOOKE,     {RS}},
--{"mtdbcr2",   XSPR(31,467,310), XSPR_MASK, BOOKE,     {RS}},
--{"mtiac1",    XSPR(31,467,312), XSPR_MASK, BOOKE,     {RS}},
--{"mtiac2",    XSPR(31,467,313), XSPR_MASK, BOOKE,     {RS}},
--{"mtiac3",    XSPR(31,467,314), XSPR_MASK, BOOKE,     {RS}},
--{"mtiac4",    XSPR(31,467,315), XSPR_MASK, BOOKE,     {RS}},
--{"mtdac1",    XSPR(31,467,316), XSPR_MASK, BOOKE,     {RS}},
--{"mtdac2",    XSPR(31,467,317), XSPR_MASK, BOOKE,     {RS}},
--{"mtdvc1",    XSPR(31,467,318), XSPR_MASK, BOOKE,     {RS}},
--{"mtdvc2",    XSPR(31,467,319), XSPR_MASK, BOOKE,     {RS}},
--{"mttsr",     XSPR(31,467,336), XSPR_MASK, BOOKE,     {RS}},
--{"mttcr",     XSPR(31,467,340), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor0",   XSPR(31,467,400), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor1",   XSPR(31,467,401), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor2",   XSPR(31,467,402), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor3",   XSPR(31,467,403), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor4",   XSPR(31,467,404), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor5",   XSPR(31,467,405), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor6",   XSPR(31,467,406), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor7",   XSPR(31,467,407), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor8",   XSPR(31,467,408), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor9",   XSPR(31,467,409), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor10",  XSPR(31,467,410), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor11",  XSPR(31,467,411), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor12",  XSPR(31,467,412), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor13",  XSPR(31,467,413), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor14",  XSPR(31,467,414), XSPR_MASK, BOOKE,     {RS}},
--{"mtivor15",  XSPR(31,467,415), XSPR_MASK, BOOKE,     {RS}},
--{"mtspefscr", XSPR(31,467,512), XSPR_MASK, PPCSPE,    {RS}},
--{"mtbbear",   XSPR(31,467,513), XSPR_MASK, PPCBRLK,   {RS}},
--{"mtbbtar",   XSPR(31,467,514), XSPR_MASK, PPCBRLK,   {RS}},
--{"mtivor32",  XSPR(31,467,528), XSPR_MASK, PPCSPE,    {RS}},
--{"mtibatu",   XSPR(31,467,528), XSPRBAT_MASK, PPC,    {SPRBAT, RS}},
--{"mtivor33",  XSPR(31,467,529), XSPR_MASK, PPCSPE,    {RS}},
--{"mtibatl",   XSPR(31,467,529), XSPRBAT_MASK, PPC,    {SPRBAT, RS}},
--{"mtivor34",  XSPR(31,467,530), XSPR_MASK, PPCSPE,    {RS}},
--{"mtivor35",  XSPR(31,467,531), XSPR_MASK, PPCPMR,    {RS}},
--{"mtdbatu",   XSPR(31,467,536), XSPRBAT_MASK, PPC,    {SPRBAT, RS}},
--{"mtdbatl",   XSPR(31,467,537), XSPRBAT_MASK, PPC,    {SPRBAT, RS}},
--{"mtmcsrr0",  XSPR(31,467,570), XSPR_MASK, PPCRFMCI,  {RS}},
--{"mtmcsrr1",  XSPR(31,467,571), XSPR_MASK, PPCRFMCI,  {RS}},
--{"mtmcsr",    XSPR(31,467,572), XSPR_MASK, PPCRFMCI,  {RS}},
--{"mtummcr0",  XSPR(31,467,936), XSPR_MASK, PPC750,    {RS}},
--{"mtupmc1",   XSPR(31,467,937), XSPR_MASK, PPC750,    {RS}},
--{"mtupmc2",   XSPR(31,467,938), XSPR_MASK, PPC750,    {RS}},
--{"mtusia",    XSPR(31,467,939), XSPR_MASK, PPC750,    {RS}},
--{"mtummcr1",  XSPR(31,467,940), XSPR_MASK, PPC750,    {RS}},
--{"mtupmc3",   XSPR(31,467,941), XSPR_MASK, PPC750,    {RS}},
--{"mtupmc4",   XSPR(31,467,942), XSPR_MASK, PPC750,    {RS}},
--{"mtzpr",     XSPR(31,467,944), XSPR_MASK, PPC403,    {RS}},
--{"mtpid",     XSPR(31,467,945), XSPR_MASK, PPC403,    {RS}},
--{"mtccr0",    XSPR(31,467,947), XSPR_MASK, PPC405,    {RS}},
--{"mtiac3",    XSPR(31,467,948), XSPR_MASK, PPC405,    {RS}},
--{"mtiac4",    XSPR(31,467,949), XSPR_MASK, PPC405,    {RS}},
--{"mtdvc1",    XSPR(31,467,950), XSPR_MASK, PPC405,    {RS}},
--{"mtdvc2",    XSPR(31,467,951), XSPR_MASK, PPC405,    {RS}},
--{"mtmmcr0",   XSPR(31,467,952), XSPR_MASK, PPC750,    {RS}},
--{"mtpmc1",    XSPR(31,467,953), XSPR_MASK, PPC750,    {RS}},
--{"mtsgr",     XSPR(31,467,953), XSPR_MASK, PPC403,    {RS}},
--{"mtdcwr",    XSPR(31,467,954), XSPR_MASK, PPC403,    {RS}},
--{"mtpmc2",    XSPR(31,467,954), XSPR_MASK, PPC750,    {RS}},
--{"mtsia",     XSPR(31,467,955), XSPR_MASK, PPC750,    {RS}},
--{"mtsler",    XSPR(31,467,955), XSPR_MASK, PPC405,    {RS}},
--{"mtmmcr1",   XSPR(31,467,956), XSPR_MASK, PPC750,    {RS}},
--{"mtsu0r",    XSPR(31,467,956), XSPR_MASK, PPC405,    {RS}},
--{"mtdbcr1",   XSPR(31,467,957), XSPR_MASK, PPC405,    {RS}},
--{"mtpmc3",    XSPR(31,467,957), XSPR_MASK, PPC750,    {RS}},
--{"mtpmc4",    XSPR(31,467,958), XSPR_MASK, PPC750,    {RS}},
--{"mticdbdr",  XSPR(31,467,979), XSPR_MASK, PPC403,    {RS}},
--{"mtesr",     XSPR(31,467,980), XSPR_MASK, PPC403,    {RS}},
--{"mtdear",    XSPR(31,467,981), XSPR_MASK, PPC403,    {RS}},
--{"mtevpr",    XSPR(31,467,982), XSPR_MASK, PPC403,    {RS}},
--{"mtcdbcr",   XSPR(31,467,983), XSPR_MASK, PPC403,    {RS}},
--{"mttsr",     XSPR(31,467,984), XSPR_MASK, PPC403,    {RS}},
--{"mttcr",     XSPR(31,467,986), XSPR_MASK, PPC403,    {RS}},
--{"mtpit",     XSPR(31,467,987), XSPR_MASK, PPC403,    {RS}},
--{"mttbhi",    XSPR(31,467,988), XSPR_MASK, PPC403,    {RS}},
--{"mttblo",    XSPR(31,467,989), XSPR_MASK, PPC403,    {RS}},
--{"mtsrr2",    XSPR(31,467,990), XSPR_MASK, PPC403,    {RS}},
--{"mtsrr3",    XSPR(31,467,991), XSPR_MASK, PPC403,    {RS}},
--{"mtdbsr",    XSPR(31,467,1008), XSPR_MASK, PPC403,   {RS}},
--{"mtdbcr0",   XSPR(31,467,1010), XSPR_MASK, PPC405,   {RS}},
--{"mtiac1",    XSPR(31,467,1012), XSPR_MASK, PPC403,   {RS}},
--{"mtiac2",    XSPR(31,467,1013), XSPR_MASK, PPC403,   {RS}},
--{"mtdac1",    XSPR(31,467,1014), XSPR_MASK, PPC403,   {RS}},
--{"mtdac2",    XSPR(31,467,1015), XSPR_MASK, PPC403,   {RS}},
--{"mtl2cr",    XSPR(31,467,1017), XSPR_MASK, PPC750,   {RS}},
--{"mtdccr",    XSPR(31,467,1018), XSPR_MASK, PPC403,   {RS}},
--{"mticcr",    XSPR(31,467,1019), XSPR_MASK, PPC403,   {RS}},
--{"mtictc",    XSPR(31,467,1019), XSPR_MASK, PPC750,   {RS}},
--{"mtpbl1",    XSPR(31,467,1020), XSPR_MASK, PPC403,   {RS}},
--{"mtthrm1",   XSPR(31,467,1020), XSPR_MASK, PPC750,   {RS}},
--{"mtpbu1",    XSPR(31,467,1021), XSPR_MASK, PPC403,   {RS}},
--{"mtthrm2",   XSPR(31,467,1021), XSPR_MASK, PPC750,   {RS}},
--{"mtpbl2",    XSPR(31,467,1022), XSPR_MASK, PPC403,   {RS}},
--{"mtthrm3",   XSPR(31,467,1022), XSPR_MASK, PPC750,   {RS}},
--{"mtpbu2",    XSPR(31,467,1023), XSPR_MASK, PPC403,   {RS}},
--{"mtspr",     X(31,467),        X_MASK,    COM,       {SPR, RS}},
--
--{"dcbi",      X(31,470),      XRT_MASK,    PPC,       {RA, RB}},
--
--{"nand",      XRC(31,476,0),  X_MASK,      COM,       {RA, RS, RB}},
--{"nand.",     XRC(31,476,1),  X_MASK,      COM,       {RA, RS, RB}},
--
--{"dcbie",     X(31,478),      XRT_MASK,    BOOKE64,   {RA, RB}},
--
--{"dsn",       X(31,483),      XRT_MASK,    E500MC,    {RA, RB}},
--
--{"dcread",    X(31,486),      X_MASK,  PPC403|PPC440, {RT, RA, RB}},
--
--{"icbtls",    X(31,486),      X_MASK,      PPCCHLK,   {CT, RA, RB}},
--
--{"stvxl",     X(31,487),      X_MASK,      PPCVEC,    {VS, RA, RB}},
--
--{"nabs",      XO(31,488,0,0), XORB_MASK,   M601,      {RT, RA}},
--{"subfme64",  XO(31,488,0,0), XORB_MASK,   BOOKE64,   {RT, RA}},
--{"nabs.",     XO(31,488,0,1), XORB_MASK,   M601,      {RT, RA}},
--
--{"divd",      XO(31,489,0,0), XO_MASK,     PPC64,     {RT, RA, RB}},
--{"divd.",     XO(31,489,0,1), XO_MASK,     PPC64,     {RT, RA, RB}},
--
--{"addme64",   XO(31,490,0,0), XORB_MASK,   BOOKE64,   {RT, RA}},
--
--{"divw",      XO(31,491,0,0), XO_MASK,     PPC,       {RT, RA, RB}},
--{"divw.",     XO(31,491,0,1), XO_MASK,     PPC,       {RT, RA, RB}},
--
--{"icbtlse",   X(31,494),      X_MASK,      PPCCHLK64, {CT, RA, RB}},
--
--{"slbia",     X(31,498),      0xffffffff,  PPC64,     {0}},
--
--{"cli",               X(31,502),      XRB_MASK,    POWER,     {RT, RA}},
--
--{"cmpb",      X(31,508),      X_MASK,      POWER6,    {RA, RS, RB}},
--
--{"stdcxe.",   XRC(31,511,1),  X_MASK,      BOOKE64,   {RS, RA, RB}},
--
--{"mcrxr",     X(31,512), XRARB_MASK|(3<<21), COM,     {BF}},
--
--{"lbdx",      X(31,515),      X_MASK,      E500MC,    {RT, RA, RB}},
--
--{"bblels",    X(31,518),      X_MASK,      PPCBRLK,   {0}},
--
--{"lvlx",      X(31,519),      X_MASK,      CELL,      {VD, RA0, RB}},
--{"lbfcmux",   APU(31,519,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"subfco",    XO(31,8,1,0),   XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"sfo",               XO(31,8,1,0),   XO_MASK,     PWRCOM,    {RT, RA, RB}},
--{"subco",     XO(31,8,1,0),   XO_MASK,     PPC,       {RT, RB, RA}},
--{"subfco.",   XO(31,8,1,1),   XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"sfo.",      XO(31,8,1,1),   XO_MASK,     PWRCOM,    {RT, RA, RB}},
--{"subco.",    XO(31,8,1,1),   XO_MASK,     PPC,       {RT, RB, RA}},
--
--{"addco",     XO(31,10,1,0),  XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"ao",                XO(31,10,1,0),  XO_MASK,     PWRCOM,    {RT, RA, RB}},
--{"addco.",    XO(31,10,1,1),  XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"ao.",               XO(31,10,1,1),  XO_MASK,     PWRCOM,    {RT, RA, RB}},
--
--{"clcs",      X(31,531),      XRB_MASK,    M601,      {RT, RA}},
--
--{"ldbrx",     X(31,532),      X_MASK,      CELL,      {RT, RA0, RB}},
--
--{"lswx",      X(31,533),      X_MASK,      PPCCOM,    {RT, RA0, RB}},
--{"lsx",               X(31,533),      X_MASK,      PWRCOM,    {RT, RA, RB}},
--
--{"lwbrx",     X(31,534),      X_MASK,      PPCCOM,    {RT, RA0, RB}},
--{"lbrx",      X(31,534),      X_MASK,      PWRCOM,    {RT, RA, RB}},
--
--{"lfsx",      X(31,535),      X_MASK,      COM,       {FRT, RA0, RB}},
--
--{"srw",               XRC(31,536,0),  X_MASK,      PPCCOM,    {RA, RS, RB}},
--{"sr",                XRC(31,536,0),  X_MASK,      PWRCOM,    {RA, RS, RB}},
--{"srw.",      XRC(31,536,1),  X_MASK,      PPCCOM,    {RA, RS, RB}},
--{"sr.",               XRC(31,536,1),  X_MASK,      PWRCOM,    {RA, RS, RB}},
--
--{"rrib",      XRC(31,537,0),  X_MASK,      M601,      {RA, RS, RB}},
--{"rrib.",     XRC(31,537,1),  X_MASK,      M601,      {RA, RS, RB}},
--
--{"srd",               XRC(31,539,0),  X_MASK,      PPC64,     {RA, RS, RB}},
--{"srd.",      XRC(31,539,1),  X_MASK,      PPC64,     {RA, RS, RB}},
--
--{"maskir",    XRC(31,541,0),  X_MASK,      M601,      {RA, RS, RB}},
--{"maskir.",   XRC(31,541,1),  X_MASK,      M601,      {RA, RS, RB}},
--
--{"lwbrxe",    X(31,542),      X_MASK,      BOOKE64,   {RT, RA0, RB}},
--
--{"lfsxe",     X(31,543),      X_MASK,      BOOKE64,   {FRT, RA0, RB}},
--
--{"mcrxr64",   X(31,544), XRARB_MASK|(3<<21), BOOKE64, {BF}},
--
--{"lhdx",      X(31,547),      X_MASK,      E500MC,    {RT, RA, RB}},
--
--{"bbelr",     X(31,550),      X_MASK,      PPCBRLK,   {0}},
--
--{"lvrx",      X(31,551),      X_MASK,      CELL,      {VD, RA0, RB}},
--{"lhfcmux",   APU(31,551,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"subfo",     XO(31,40,1,0),  XO_MASK,     PPC,       {RT, RA, RB}},
--{"subo",      XO(31,40,1,0),  XO_MASK,     PPC,       {RT, RB, RA}},
--{"subfo.",    XO(31,40,1,1),  XO_MASK,     PPC,       {RT, RA, RB}},
--{"subo.",     XO(31,40,1,1),  XO_MASK,     PPC,       {RT, RB, RA}},
--
--{"tlbsync",   X(31,566),      0xffffffff,  PPC,       {0}},
--
--{"lfsux",     X(31,567),      X_MASK,      COM,       {FRT, RAS, RB}},
--
--{"lfsuxe",    X(31,575),      X_MASK,      BOOKE64,   {FRT, RAS, RB}},
--
--{"lwdx",      X(31,579),      X_MASK,      E500MC,    {RT, RA, RB}},
--
--{"lwfcmux",   APU(31,583,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"mfsr",      X(31,595), XRB_MASK|(1<<20), COM32,     {RT, SR}},
--
--{"lswi",      X(31,597),      X_MASK,      PPCCOM,    {RT, RA0, NB}},
--{"lsi",               X(31,597),      X_MASK,      PWRCOM,    {RT, RA0, NB}},
--
--{"msync",     X(31,598),      0xffffffff,  BOOKE,     {0}},
--{"lwsync",    XSYNC(31,598,1), 0xffffffff, PPC,       {0}},
--{"ptesync",   XSYNC(31,598,2), 0xffffffff, PPC64,     {0}},
--{"sync",      X(31,598),      XSYNC_MASK,  PPCCOM,    {LS}},
--{"dcs",               X(31,598),      0xffffffff,  PWRCOM,    {0}},
--
--{"lfdx",      X(31,599),      X_MASK,      COM,       {FRT, RA0, RB}},
--
--{"lfdxe",     X(31,607),      X_MASK,      BOOKE64,   {FRT, RA0, RB}},
--{"lfdepx",    X(31,607),      X_MASK,      E500MC,    {RT, RA, RB}},
--{"mffgpr",    XRC(31,607,0),  XRA_MASK,    POWER6,    {FRT, RB}},
--
--{"lddx",      X(31,611),      X_MASK,      E500MC,    {RT, RA, RB}},
--
--{"lqfcmux",   APU(31,615,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"nego",      XO(31,104,1,0), XORB_MASK,   COM,       {RT, RA}},
--{"nego.",     XO(31,104,1,1), XORB_MASK,   COM,       {RT, RA}},
--
--{"mulo",      XO(31,107,1,0), XO_MASK,     M601,      {RT, RA, RB}},
--{"mulo.",     XO(31,107,1,1), XO_MASK,     M601,      {RT, RA, RB}},
--
--{"mfsri",     X(31,627),      X_MASK,      PWRCOM,    {RT, RA, RB}},
--
--{"dclst",     X(31,630),      XRB_MASK,    PWRCOM,    {RS, RA}},
--
--{"lfdux",     X(31,631),      X_MASK,      COM,       {FRT, RAS, RB}},
--
--{"lfduxe",    X(31,639),      X_MASK,      BOOKE64,   {FRT, RAS, RB}},
--
--{"stbdx",     X(31,643),      X_MASK,      E500MC,    {RS, RA, RB}},
--
--{"stvlx",     X(31,647),      X_MASK,      CELL,      {VS, RA0, RB}},
--{"stbfcmux",  APU(31,647,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"subfeo",    XO(31,136,1,0), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"sfeo",      XO(31,136,1,0), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--{"subfeo.",   XO(31,136,1,1), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"sfeo.",     XO(31,136,1,1), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--
--{"addeo",     XO(31,138,1,0), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"aeo",               XO(31,138,1,0), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--{"addeo.",    XO(31,138,1,1), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"aeo.",      XO(31,138,1,1), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--
--{"mfsrin",    X(31,659),      XRA_MASK,    PPC32,     {RT, RB}},
--
--{"stdbrx",    X(31,660),      X_MASK,      CELL,      {RS, RA0, RB}},
--
--{"stswx",     X(31,661),      X_MASK,      PPCCOM,    {RS, RA0, RB}},
--{"stsx",      X(31,661),      X_MASK,      PWRCOM,    {RS, RA0, RB}},
--
--{"stwbrx",    X(31,662),      X_MASK,      PPCCOM,    {RS, RA0, RB}},
--{"stbrx",     X(31,662),      X_MASK,      PWRCOM,    {RS, RA0, RB}},
--
--{"stfsx",     X(31,663),      X_MASK,      COM,       {FRS, RA0, RB}},
--
--{"srq",               XRC(31,664,0),  X_MASK,      M601,      {RA, RS, RB}},
--{"srq.",      XRC(31,664,1),  X_MASK,      M601,      {RA, RS, RB}},
--
--{"sre",               XRC(31,665,0),  X_MASK,      M601,      {RA, RS, RB}},
--{"sre.",      XRC(31,665,1),  X_MASK,      M601,      {RA, RS, RB}},
--
--{"stwbrxe",   X(31,670),      X_MASK,      BOOKE64,   {RS, RA0, RB}},
--
--{"stfsxe",    X(31,671),      X_MASK,      BOOKE64,   {FRS, RA0, RB}},
--
--{"sthdx",     X(31,675),      X_MASK,      E500MC,    {RS, RA, RB}},
--
--{"stvrx",     X(31,679),      X_MASK,      CELL,      {VS, RA0, RB}},
--{"sthfcmux",  APU(31,679,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"stfsux",    X(31,695),      X_MASK,      COM,       {FRS, RAS, RB}},
--
--{"sriq",      XRC(31,696,0),  X_MASK,      M601,      {RA, RS, SH}},
--{"sriq.",     XRC(31,696,1),  X_MASK,      M601,      {RA, RS, SH}},
--
--{"stfsuxe",   X(31,703),      X_MASK,      BOOKE64,   {FRS, RAS, RB}},
--
--{"stwdx",     X(31,707),      X_MASK,      E500MC,    {RS, RA, RB}},
--
--{"stwfcmux",  APU(31,711,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"subfzeo",   XO(31,200,1,0), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"sfzeo",     XO(31,200,1,0), XORB_MASK,   PWRCOM,    {RT, RA}},
--{"subfzeo.",  XO(31,200,1,1), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"sfzeo.",    XO(31,200,1,1), XORB_MASK,   PWRCOM,    {RT, RA}},
--
--{"addzeo",    XO(31,202,1,0), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"azeo",      XO(31,202,1,0), XORB_MASK,   PWRCOM,    {RT, RA}},
--{"addzeo.",   XO(31,202,1,1), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"azeo.",     XO(31,202,1,1), XORB_MASK,   PWRCOM,    {RT, RA}},
--
--{"stswi",     X(31,725),      X_MASK,      PPCCOM,    {RS, RA0, NB}},
--{"stsi",      X(31,725),      X_MASK,      PWRCOM,    {RS, RA0, NB}},
--
--{"stfdx",     X(31,727),      X_MASK,      COM,       {FRS, RA0, RB}},
--
--{"srlq",      XRC(31,728,0),  X_MASK,      M601,      {RA, RS, RB}},
--{"srlq.",     XRC(31,728,1),  X_MASK,      M601,      {RA, RS, RB}},
--
--{"sreq",      XRC(31,729,0),  X_MASK,      M601,      {RA, RS, RB}},
--{"sreq.",     XRC(31,729,1),  X_MASK,      M601,      {RA, RS, RB}},
--
--{"stfdxe",    X(31,735),      X_MASK,      BOOKE64,   {FRS, RA0, RB}},
--{"stfdepx",   X(31,735),      X_MASK,      E500MC,    {RS, RA, RB}},
--{"mftgpr",    XRC(31,735,0),  XRA_MASK,    POWER6,    {RT, FRB}},
--
--{"stddx",     X(31,739),      X_MASK,      E500MC,    {RS, RA, RB}},
--
--{"stqfcmux",  APU(31,743,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"subfmeo",   XO(31,232,1,0), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"sfmeo",     XO(31,232,1,0), XORB_MASK,   PWRCOM,    {RT, RA}},
--{"subfmeo.",  XO(31,232,1,1), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"sfmeo.",    XO(31,232,1,1), XORB_MASK,   PWRCOM,    {RT, RA}},
--
--{"mulldo",    XO(31,233,1,0), XO_MASK,     PPC64,     {RT, RA, RB}},
--{"mulldo.",   XO(31,233,1,1), XO_MASK,     PPC64,     {RT, RA, RB}},
--
--{"addmeo",    XO(31,234,1,0), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"ameo",      XO(31,234,1,0), XORB_MASK,   PWRCOM,    {RT, RA}},
--{"addmeo.",   XO(31,234,1,1), XORB_MASK,   PPCCOM,    {RT, RA}},
--{"ameo.",     XO(31,234,1,1), XORB_MASK,   PWRCOM,    {RT, RA}},
--
--{"mullwo",    XO(31,235,1,0), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"mulso",     XO(31,235,1,0), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--{"mullwo.",   XO(31,235,1,1), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"mulso.",    XO(31,235,1,1), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--
--{"dcba",      X(31,758), XRT_MASK, PPC405|PPC7450|BOOKE, {RA, RB}},
--{"dcbal",     XOPL(31,758,1), XRT_MASK,    E500MC,    {RA, RB}},
--
--{"stfdux",    X(31,759),      X_MASK,      COM,       {FRS, RAS, RB}},
--
--{"srliq",     XRC(31,760,0),  X_MASK,      M601,      {RA, RS, SH}},
--{"srliq.",    XRC(31,760,1),  X_MASK,      M601,      {RA, RS, SH}},
--
--{"dcbae",     X(31,766),      XRT_MASK,    BOOKE64,   {RA, RB}},
--
--{"stfduxe",   X(31,767),      X_MASK,      BOOKE64,   {FRS, RAS, RB}},
--
--{"lvlxl",     X(31,775),      X_MASK,      CELL,      {VD, RA0, RB}},
--{"ldfcmux",   APU(31,775,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"dozo",      XO(31,264,1,0), XO_MASK,     M601,      {RT, RA, RB}},
--{"dozo.",     XO(31,264,1,1), XO_MASK,     M601,      {RT, RA, RB}},
--
--{"addo",      XO(31,266,1,0), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"caxo",      XO(31,266,1,0), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--{"addo.",     XO(31,266,1,1), XO_MASK,     PPCCOM,    {RT, RA, RB}},
--{"caxo.",     XO(31,266,1,1), XO_MASK,     PWRCOM,    {RT, RA, RB}},
--
--{"tlbivax",   X(31,786),      XRT_MASK,    BOOKE,     {RA, RB}},
--{"tlbivaxe",  X(31,787),      XRT_MASK,    BOOKE64,   {RA, RB}},
--{"tlbilx",    X(31,787),      X_MASK,      E500MC,    {T, RA0, RB}},
--{"tlbilxlpid",        XTO(31,787,0),  XTO_MASK,    E500MC,    {0}},
--{"tlbilxpid", XTO(31,787,1),  XTO_MASK,    E500MC,    {0}},
--{"tlbilxva",  XTO(31,787,3),  XTO_MASK,    E500MC,    {RA0, RB}},
--
--{"lwzcix",    X(31,789),      X_MASK,      POWER6,    {RT, RA0, RB}},
--
--{"lhbrx",     X(31,790),      X_MASK,      COM,       {RT, RA0, RB}},
--
--{"lfqx",      X(31,791),      X_MASK,      POWER2,    {FRT, RA, RB}},
--{"lfdpx",     X(31,791),      X_MASK,      POWER6,    {FRT, RA, RB}},
--
--{"sraw",      XRC(31,792,0),  X_MASK,      PPCCOM,    {RA, RS, RB}},
--{"sra",               XRC(31,792,0),  X_MASK,      PWRCOM,    {RA, RS, RB}},
--{"sraw.",     XRC(31,792,1),  X_MASK,      PPCCOM,    {RA, RS, RB}},
--{"sra.",      XRC(31,792,1),  X_MASK,      PWRCOM,    {RA, RS, RB}},
--
--{"srad",      XRC(31,794,0),  X_MASK,      PPC64,     {RA, RS, RB}},
--{"srad.",     XRC(31,794,1),  X_MASK,      PPC64,     {RA, RS, RB}},
--
--{"lhbrxe",    X(31,798),      X_MASK,      BOOKE64,   {RT, RA0, RB}},
--
--{"ldxe",      X(31,799),      X_MASK,      BOOKE64,   {RT, RA0, RB}},
--
--{"lfddx",     X(31,803),      X_MASK,      E500MC,    {FRT, RA, RB}},
--
--{"lvrxl",     X(31,807),      X_MASK,      CELL,      {VD, RA0, RB}},
--
--{"rac",               X(31,818),      X_MASK,      PWRCOM,    {RT, RA, RB}},
--
--{"lhzcix",    X(31,821),      X_MASK,      POWER6,    {RT, RA0, RB}},
--
--{"dss",               XDSS(31,822,0), XDSS_MASK,   PPCVEC,    {STRM}},
--
--{"lfqux",     X(31,823),      X_MASK,      POWER2,    {FRT, RA, RB}},
--
--{"srawi",     XRC(31,824,0),  X_MASK,      PPCCOM,    {RA, RS, SH}},
--{"srai",      XRC(31,824,0),  X_MASK,      PWRCOM,    {RA, RS, SH}},
--{"srawi.",    XRC(31,824,1),  X_MASK,      PPCCOM,    {RA, RS, SH}},
--{"srai.",     XRC(31,824,1),  X_MASK,      PWRCOM,    {RA, RS, SH}},
--
--{"sradi",     XS(31,413,0),   XS_MASK,     PPC64,     {RA, RS, SH6}},
--{"sradi.",    XS(31,413,1),   XS_MASK,     PPC64,     {RA, RS, SH6}},
--
--{"divo",      XO(31,331,1,0), XO_MASK,     M601,      {RT, RA, RB}},
--{"divo.",     XO(31,331,1,1), XO_MASK,     M601,      {RT, RA, RB}},
--{"lduxe",     X(31,831),      X_MASK,      BOOKE64,   {RT, RA0, RB}},
--
--{"lxvd2x",    X(31,844),      XX1_MASK,    PPCVSX,    {XT6, RA, RB}},
--
--{"slbmfev",   X(31,851),      XRA_MASK,    PPC64,     {RT, RB}},
--
--{"lbzcix",    X(31,853),      X_MASK,      POWER6,    {RT, RA0, RB}},
--
--{"mbar",      X(31,854),      X_MASK,      BOOKE,     {MO}},
--{"eieio",     X(31,854),      0xffffffff,  PPC,       {0}},
--
--{"lfiwax",    X(31,855),      X_MASK,      POWER6,    {FRT, RA0, RB}},
--
--{"abso",      XO(31,360,1,0), XORB_MASK,   M601,      {RT, RA}},
--{"abso.",     XO(31,360,1,1), XORB_MASK,   M601,      {RT, RA}},
--
--{"divso",     XO(31,363,1,0), XO_MASK,     M601,      {RT, RA, RB}},
--{"divso.",    XO(31,363,1,1), XO_MASK,     M601,      {RT, RA, RB}},
--
--{"lxvd2ux",   X(31,876),      XX1_MASK,    PPCVSX,    {XT6, RA, RB}},
--
--{"ldcix",     X(31,885),      X_MASK,      POWER6,    {RT, RA0, RB}},
--
--{"stvlxl",    X(31,903),      X_MASK,      CELL,      {VS, RA0, RB}},
--{"stdfcmux",  APU(31,903,0),  APU_MASK,    PPC405,    {FCRT, RA, RB}},
--
--{"subfe64o",  XO(31,392,1,0), XO_MASK,     BOOKE64,   {RT, RA, RB}},
--
--{"adde64o",   XO(31,394,1,0), XO_MASK,     BOOKE64,   {RT, RA, RB}},
--
--{"tlbsx",     XRC(31,914,0),  X_MASK,   PPC403|BOOKE, {RTO, RA, RB}},
--{"tlbsx.",    XRC(31,914,1),  X_MASK,   PPC403|BOOKE, {RTO, RA, RB}},
--
--{"tlbsxe",    XRC(31,915,0),  X_MASK,      BOOKE64,   {RTO, RA, RB}},
--{"tlbsxe.",   XRC(31,915,1),  X_MASK,      BOOKE64,   {RTO, RA, RB}},
--{"slbmfee",   X(31,915),      XRA_MASK,    PPC64,     {RT, RB}},
--
--{"stwcix",    X(31,917),      X_MASK,      POWER6,    {RS, RA0, RB}},
--
--{"sthbrx",    X(31,918),      X_MASK,      COM,       {RS, RA0, RB}},
--
--{"stfqx",     X(31,919),      X_MASK,      POWER2,    {FRS, RA, RB}},
--{"stfdpx",    X(31,919),      X_MASK,      POWER6,    {FRS, RA, RB}},
--
--{"sraq",      XRC(31,920,0),  X_MASK,      M601,      {RA, RS, RB}},
--{"sraq.",     XRC(31,920,1),  X_MASK,      M601,      {RA, RS, RB}},
--
--{"srea",      XRC(31,921,0),  X_MASK,      M601,      {RA, RS, RB}},
--{"srea.",     XRC(31,921,1),  X_MASK,      M601,      {RA, RS, RB}},
--
--{"extsh",     XRC(31,922,0),  XRB_MASK,    PPCCOM,    {RA, RS}},
--{"exts",      XRC(31,922,0),  XRB_MASK,    PWRCOM,    {RA, RS}},
--{"extsh.",    XRC(31,922,1),  XRB_MASK,    PPCCOM,    {RA, RS}},
--{"exts.",     XRC(31,922,1),  XRB_MASK,    PWRCOM,    {RA, RS}},
--
--{"sthbrxe",   X(31,926),      X_MASK,      BOOKE64,   {RS, RA0, RB}},
--
--{"stdxe",     X(31,927),      X_MASK,      BOOKE64,   {RS, RA0, RB}},
--
--{"stfddx",    X(31,931),      X_MASK,      E500MC,    {FRS, RA, RB}},
--
--{"stvrxl",    X(31,935),      X_MASK,      CELL,      {VS, RA0, RB}},
--
--{"tlbrehi",   XTLB(31,946,0), XTLB_MASK,   PPC403,    {RT, RA}},
--{"tlbrelo",   XTLB(31,946,1), XTLB_MASK,   PPC403,    {RT, RA}},
--{"tlbre",     X(31,946),      X_MASK,   PPC403|BOOKE, {RSO, RAOPT, SHO}},
--
--{"sthcix",    X(31,949),      X_MASK,      POWER6,    {RS, RA0, RB}},
--
--{"stfqux",    X(31,951),      X_MASK,      POWER2,    {FRS, RA, RB}},
--
--{"sraiq",     XRC(31,952,0),  X_MASK,      M601,      {RA, RS, SH}},
--{"sraiq.",    XRC(31,952,1),  X_MASK,      M601,      {RA, RS, SH}},
--
--{"extsb",     XRC(31,954,0),  XRB_MASK,    PPC,       {RA, RS}},
--{"extsb.",    XRC(31,954,1),  XRB_MASK,    PPC,       {RA, RS}},
--
--{"stduxe",    X(31,959),      X_MASK,      BOOKE64,   {RS, RAS, RB}},
--
--{"iccci",     X(31,966),     XRT_MASK, PPC403|PPC440, {RA, RB}},
--
--{"subfze64o", XO(31,456,1,0), XORB_MASK,   BOOKE64,   {RT, RA}},
--
--{"divduo",    XO(31,457,1,0), XO_MASK,     PPC64,     {RT, RA, RB}},
--{"divduo.",   XO(31,457,1,1), XO_MASK,     PPC64,     {RT, RA, RB}},
--
--{"addze64o",  XO(31,458,1,0), XORB_MASK,   BOOKE64,   {RT, RA}},
--
--{"divwuo",    XO(31,459,1,0), XO_MASK,     PPC,       {RT, RA, RB}},
--{"divwuo.",   XO(31,459,1,1), XO_MASK,     PPC,       {RT, RA, RB}},
--
--{"stxvd2x",   X(31,972),      XX1_MASK,    PPCVSX,    {XS6, RA, RB}},
--
--{"tlbwehi",   XTLB(31,978,0), XTLB_MASK,   PPC403,    {RT, RA}},
--{"tlbwelo",   XTLB(31,978,1), XTLB_MASK,   PPC403,    {RT, RA}},
--{"tlbwe",     X(31,978),      X_MASK,   PPC403|BOOKE, {RSO, RAOPT, SHO}},
--{"tlbld",     X(31,978),      XRTRA_MASK,  PPC,       {RB}},
--
--{"stbcix",    X(31,981),      X_MASK,      POWER6,    {RS, RA0, RB}},
--
--{"icbi",      X(31,982),      XRT_MASK,    PPC,       {RA, RB}},
--
--{"stfiwx",    X(31,983),      X_MASK,      PPC,       {FRS, RA0, RB}},
--
--{"extsw",     XRC(31,986,0), XRB_MASK, PPC64|BOOKE64, {RA, RS}},
--{"extsw.",    XRC(31,986,1),  XRB_MASK,    PPC64,     {RA, RS}},
--
--{"icbie",     X(31,990),      XRT_MASK,    BOOKE64,   {RA, RB}},
--{"stfiwxe",   X(31,991),      X_MASK,      BOOKE64,   {FRS, RA0, RB}},
--
--{"icbiep",    XRT(31,991,0),  XRT_MASK,    E500MC,    {RA, RB}},
--
--{"icread",    X(31,998),     XRT_MASK, PPC403|PPC440, {RA, RB}},
--
--{"nabso",     XO(31,488,1,0), XORB_MASK,   M601,      {RT, RA}},
--{"subfme64o", XO(31,488,1,0), XORB_MASK,   BOOKE64,   {RT, RA}},
--{"nabso.",    XO(31,488,1,1), XORB_MASK,   M601,      {RT, RA}},
--
--{"divdo",     XO(31,489,1,0), XO_MASK,     PPC64,     {RT, RA, RB}},
--{"divdo.",    XO(31,489,1,1), XO_MASK,     PPC64,     {RT, RA, RB}},
--
--{"addme64o",  XO(31,490,1,0), XORB_MASK,   BOOKE64,   {RT, RA}},
--
--{"divwo",     XO(31,491,1,0), XO_MASK,     PPC,       {RT, RA, RB}},
--{"divwo.",    XO(31,491,1,1), XO_MASK,     PPC,       {RT, RA, RB}},
--
--{"stxvd2ux",  X(31,1004),     XX1_MASK,    PPCVSX,    {XS6, RA, RB}},
--
--{"tlbli",     X(31,1010),     XRTRA_MASK,  PPC,       {RB}},
--
--{"stdcix",    X(31,1013),     X_MASK,      POWER6,    {RS, RA0, RB}},
--
--{"dcbz",      X(31,1014),     XRT_MASK,    PPC,       {RA, RB}},
--{"dclz",      X(31,1014),     XRT_MASK,    PPC,       {RA, RB}},
--
--{"dcbze",     X(31,1022),     XRT_MASK,    BOOKE64,   {RA, RB}},
--{"dcbzep",    XRT(31,1023,0), XRT_MASK,    E500MC,    {RA, RB}},
--
--{"dcbzl",     XOPL(31,1014,1), XRT_MASK,   POWER4,    {RA, RB}},
--{"dcbzl",     XOPL(31,1014,1), XRT_MASK,   NOPOWER4|E500MC,{RA, RB}},
--
--{"cctpl",     0x7c210b78,     0xffffffff,  CELL,      {0}},
--{"cctpm",     0x7c421378,     0xffffffff,  CELL,      {0}},
--{"cctph",     0x7c631b78,     0xffffffff,  CELL,      {0}},
--
--{"dstt",      XDSS(31,342,1), XDSS_MASK,   PPCVEC,    {RA, RB, STRM}},
--{"dststt",    XDSS(31,374,1), XDSS_MASK,   PPCVEC,    {RA, RB, STRM}},
--{"dssall",    XDSS(31,822,1), XDSS_MASK,   PPCVEC,    {0}},
--
--{"db8cyc",    0x7f9ce378,     0xffffffff,  CELL,      {0}},
--{"db10cyc",   0x7fbdeb78,     0xffffffff,  CELL,      {0}},
--{"db12cyc",   0x7fdef378,     0xffffffff,  CELL,      {0}},
--{"db16cyc",   0x7ffffb78,     0xffffffff,  CELL,      {0}},
--
--{"lwz",               OP(32),         OP_MASK,     PPCCOM,    {RT, D, RA0}},
--{"l",         OP(32),         OP_MASK,     PWRCOM,    {RT, D, RA0}},
--
--{"lwzu",      OP(33),         OP_MASK,     PPCCOM,    {RT, D, RAL}},
--{"lu",                OP(33),         OP_MASK,     PWRCOM,    {RT, D, RA0}},
--
--{"lbz",               OP(34),         OP_MASK,     COM,       {RT, D, RA0}},
--
--{"lbzu",      OP(35),         OP_MASK,     COM,       {RT, D, RAL}},
--
--{"stw",               OP(36),         OP_MASK,     PPCCOM,    {RS, D, RA0}},
--{"st",                OP(36),         OP_MASK,     PWRCOM,    {RS, D, RA0}},
--
--{"stwu",      OP(37),         OP_MASK,     PPCCOM,    {RS, D, RAS}},
--{"stu",               OP(37),         OP_MASK,     PWRCOM,    {RS, D, RA0}},
--
--{"stb",               OP(38),         OP_MASK,     COM,       {RS, D, RA0}},
--
--{"stbu",      OP(39),         OP_MASK,     COM,       {RS, D, RAS}},
--
--{"lhz",               OP(40),         OP_MASK,     COM,       {RT, D, RA0}},
--
--{"lhzu",      OP(41),         OP_MASK,     COM,       {RT, D, RAL}},
--
--{"lha",               OP(42),         OP_MASK,     COM,       {RT, D, RA0}},
--
--{"lhau",      OP(43),         OP_MASK,     COM,       {RT, D, RAL}},
--
--{"sth",               OP(44),         OP_MASK,     COM,       {RS, D, RA0}},
--
--{"sthu",      OP(45),         OP_MASK,     COM,       {RS, D, RAS}},
--
--{"lmw",               OP(46),         OP_MASK,     PPCCOM,    {RT, D, RAM}},
--{"lm",                OP(46),         OP_MASK,     PWRCOM,    {RT, D, RA0}},
--
--{"stmw",      OP(47),         OP_MASK,     PPCCOM,    {RS, D, RA0}},
--{"stm",               OP(47),         OP_MASK,     PWRCOM,    {RS, D, RA0}},
--
--{"lfs",               OP(48),         OP_MASK,     COM,       {FRT, D, RA0}},
--
--{"lfsu",      OP(49),         OP_MASK,     COM,       {FRT, D, RAS}},
--
--{"lfd",               OP(50),         OP_MASK,     COM,       {FRT, D, RA0}},
--
--{"lfdu",      OP(51),         OP_MASK,     COM,       {FRT, D, RAS}},
--
--{"stfs",      OP(52),         OP_MASK,     COM,       {FRS, D, RA0}},
--
--{"stfsu",     OP(53),         OP_MASK,     COM,       {FRS, D, RAS}},
--
--{"stfd",      OP(54),         OP_MASK,     COM,       {FRS, D, RA0}},
--
--{"stfdu",     OP(55),         OP_MASK,     COM,       {FRS, D, RAS}},
--
--{"lq",                OP(56),         OP_MASK,     POWER4,    {RTQ, DQ, RAQ}},
--
--{"lfq",               OP(56),         OP_MASK,     POWER2,    {FRT, D, RA0}},
--
--{"psq_l",     OP(56),         OP_MASK,     PPCPS,     {FRT,PSD,RA,PSW,PSQ}},
--
--{"lfqu",      OP(57),         OP_MASK,     POWER2,    {FRT, D, RA0}},
--
--{"psq_lu",    OP(57),         OP_MASK,     PPCPS,     {FRT,PSD,RA,PSW,PSQ}},
--
--{"lfdp",      OP(57),         OP_MASK,     POWER6,    {FRT, D, RA0}},
--
--{"lbze",      DEO(58,0),      DE_MASK,     BOOKE64,   {RT, DE, RA0}},
--{"lbzue",     DEO(58,1),      DE_MASK,     BOOKE64,   {RT, DE, RAL}},
--{"lhze",      DEO(58,2),      DE_MASK,     BOOKE64,   {RT, DE, RA0}},
--{"lhzue",     DEO(58,3),      DE_MASK,     BOOKE64,   {RT, DE, RAL}},
--{"lhae",      DEO(58,4),      DE_MASK,     BOOKE64,   {RT, DE, RA0}},
--{"lhaue",     DEO(58,5),      DE_MASK,     BOOKE64,   {RT, DE, RAL}},
--{"lwze",      DEO(58,6),      DE_MASK,     BOOKE64,   {RT, DE, RA0}},
--{"lwzue",     DEO(58,7),      DE_MASK,     BOOKE64,   {RT, DE, RAL}},
--{"stbe",      DEO(58,8),      DE_MASK,     BOOKE64,   {RS, DE, RA0}},
--{"stbue",     DEO(58,9),      DE_MASK,     BOOKE64,   {RS, DE, RAS}},
--{"sthe",      DEO(58,10),     DE_MASK,     BOOKE64,   {RS, DE, RA0}},
--{"sthue",     DEO(58,11),     DE_MASK,     BOOKE64,   {RS, DE, RAS}},
--{"stwe",      DEO(58,14),     DE_MASK,     BOOKE64,   {RS, DE, RA0}},
--{"stwue",     DEO(58,15),     DE_MASK,     BOOKE64,   {RS, DE, RAS}},
--
--{"ld",                DSO(58,0),      DS_MASK,     PPC64,     {RT, DS, RA0}},
--{"ldu",               DSO(58,1),      DS_MASK,     PPC64,     {RT, DS, RAL}},
--{"lwa",               DSO(58,2),      DS_MASK,     PPC64,     {RT, DS, RA0}},
--
--{"dadd",      XRC(59,2,0),    X_MASK,      POWER6,    {FRT, FRA, FRB}},
--{"dadd.",     XRC(59,2,1),    X_MASK,      POWER6,    {FRT, FRA, FRB}},
--
--{"dqua",      ZRC(59,3,0),    Z2_MASK,     POWER6,    {FRT,FRA,FRB,RMC}},
--{"dqua.",     ZRC(59,3,1),    Z2_MASK,     POWER6,    {FRT,FRA,FRB,RMC}},
--
--{"fdivs",     A(59,18,0),     AFRC_MASK,   PPC,       {FRT, FRA, FRB}},
--{"fdivs.",    A(59,18,1),     AFRC_MASK,   PPC,       {FRT, FRA, FRB}},
--
--{"fsubs",     A(59,20,0),     AFRC_MASK,   PPC,       {FRT, FRA, FRB}},
--{"fsubs.",    A(59,20,1),     AFRC_MASK,   PPC,       {FRT, FRA, FRB}},
--
--{"fadds",     A(59,21,0),     AFRC_MASK,   PPC,       {FRT, FRA, FRB}},
--{"fadds.",    A(59,21,1),     AFRC_MASK,   PPC,       {FRT, FRA, FRB}},
--
--{"fsqrts",    A(59,22,0),    AFRAFRC_MASK, PPC,       {FRT, FRB}},
--{"fsqrts.",   A(59,22,1),    AFRAFRC_MASK, PPC,       {FRT, FRB}},
--
--{"fres",      A(59,24,0),   AFRALFRC_MASK, PPC,       {FRT, FRB, A_L}},
--{"fres.",     A(59,24,1),   AFRALFRC_MASK, PPC,       {FRT, FRB, A_L}},
--
--{"fmuls",     A(59,25,0),     AFRB_MASK,   PPC,       {FRT, FRA, FRC}},
--{"fmuls.",    A(59,25,1),     AFRB_MASK,   PPC,       {FRT, FRA, FRC}},
--
--{"frsqrtes",  A(59,26,0),   AFRALFRC_MASK, POWER5,    {FRT, FRB, A_L}},
--{"frsqrtes.", A(59,26,1),   AFRALFRC_MASK, POWER5,    {FRT, FRB, A_L}},
--
--{"fmsubs",    A(59,28,0),     A_MASK,      PPC,       {FRT, FRA, FRC, FRB}},
--{"fmsubs.",   A(59,28,1),     A_MASK,      PPC,       {FRT, FRA, FRC, FRB}},
--
--{"fmadds",    A(59,29,0),     A_MASK,      PPC,       {FRT, FRA, FRC, FRB}},
--{"fmadds.",   A(59,29,1),     A_MASK,      PPC,       {FRT, FRA, FRC, FRB}},
--
--{"fnmsubs",   A(59,30,0),     A_MASK,      PPC,       {FRT, FRA, FRC, FRB}},
--{"fnmsubs.",  A(59,30,1),     A_MASK,      PPC,       {FRT, FRA, FRC, FRB}},
--
--{"fnmadds",   A(59,31,0),     A_MASK,      PPC,       {FRT, FRA, FRC, FRB}},
--{"fnmadds.",  A(59,31,1),     A_MASK,      PPC,       {FRT, FRA, FRC, FRB}},
--
--{"dmul",      XRC(59,34,0),   X_MASK,      POWER6,    {FRT, FRA, FRB}},
--{"dmul.",     XRC(59,34,1),   X_MASK,      POWER6,    {FRT, FRA, FRB}},
--
--{"drrnd",     ZRC(59,35,0),   Z2_MASK,     POWER6,    {FRT, FRA, FRB, RMC}},
--{"drrnd.",    ZRC(59,35,1),   Z2_MASK,     POWER6,    {FRT, FRA, FRB, RMC}},
--
--{"dscli",     ZRC(59,66,0),   Z_MASK,      POWER6,    {FRT, FRA, SH16}},
--{"dscli.",    ZRC(59,66,1),   Z_MASK,      POWER6,    {FRT, FRA, SH16}},
--
--{"dquai",     ZRC(59,67,0),   Z2_MASK,     POWER6,    {TE, FRT,FRB,RMC}},
--{"dquai.",    ZRC(59,67,1),   Z2_MASK,     POWER6,    {TE, FRT,FRB,RMC}},
--
--{"dscri",     ZRC(59,98,0),   Z_MASK,      POWER6,    {FRT, FRA, SH16}},
--{"dscri.",    ZRC(59,98,1),   Z_MASK,      POWER6,    {FRT, FRA, SH16}},
--
--{"drintx",    ZRC(59,99,0),   Z2_MASK,     POWER6,    {R, FRT, FRB, RMC}},
--{"drintx.",   ZRC(59,99,1),   Z2_MASK,     POWER6,    {R, FRT, FRB, RMC}},
--
--{"dcmpo",     X(59,130),      X_MASK,      POWER6,    {BF,  FRA, FRB}},
--
--{"dtstex",    X(59,162),      X_MASK,      POWER6,    {BF,  FRA, FRB}},
--{"dtstdc",    Z(59,194),      Z_MASK,      POWER6,    {BF,  FRA, DCM}},
--{"dtstdg",    Z(59,226),      Z_MASK,      POWER6,    {BF,  FRA, DGM}},
--
--{"drintn",    ZRC(59,227,0),  Z2_MASK,     POWER6,    {R, FRT, FRB, RMC}},
--{"drintn.",   ZRC(59,227,1),  Z2_MASK,     POWER6,    {R, FRT, FRB, RMC}},
--
--{"dctdp",     XRC(59,258,0),  X_MASK,      POWER6,    {FRT, FRB}},
--{"dctdp.",    XRC(59,258,1),  X_MASK,      POWER6,    {FRT, FRB}},
--
--{"dctfix",    XRC(59,290,0),  X_MASK,      POWER6,    {FRT, FRB}},
--{"dctfix.",   XRC(59,290,1),  X_MASK,      POWER6,    {FRT, FRB}},
--
--{"ddedpd",    XRC(59,322,0),  X_MASK,      POWER6,    {SP, FRT, FRB}}, 
--{"ddedpd.",   XRC(59,322,1),  X_MASK,      POWER6,    {SP, FRT, FRB}}, 
--
--{"dxex",      XRC(59,354,0),  X_MASK,      POWER6,    {FRT, FRB}},
--{"dxex.",     XRC(59,354,1),  X_MASK,      POWER6,    {FRT, FRB}},
--
--{"dsub",      XRC(59,514,0),  X_MASK,      POWER6,    {FRT, FRA, FRB}},
--{"dsub.",     XRC(59,514,1),  X_MASK,      POWER6,    {FRT, FRA, FRB}},
--
--{"ddiv",      XRC(59,546,0),  X_MASK,      POWER6,    {FRT, FRA, FRB}},
--{"ddiv.",     XRC(59,546,1),  X_MASK,      POWER6,    {FRT, FRA, FRB}},
--
--{"dcmpu",     X(59,642),      X_MASK,      POWER6,    {BF,  FRA, FRB}},
--
--{"dtstsf",    X(59,674),      X_MASK,      POWER6,    {BF,  FRA, FRB}},
--
--{"drsp",      XRC(59,770,0),  X_MASK,      POWER6,    {FRT, FRB}},
--{"drsp.",     XRC(59,770,1),  X_MASK,      POWER6,    {FRT, FRB}},
--
--{"denbcd",    XRC(59,834,0),  X_MASK,      POWER6,    {S, FRT, FRB}},
--{"denbcd.",   XRC(59,834,1),  X_MASK,      POWER6,    {S, FRT, FRB}},
--
--{"diex",      XRC(59,866,0),  X_MASK,      POWER6,    {FRT, FRA, FRB}},
--{"diex.",     XRC(59,866,1),  X_MASK,      POWER6,    {FRT, FRA, FRB}},
--
--{"stfq",      OP(60),         OP_MASK,     POWER2,    {FRS, D, RA}},
--
--{"psq_st",    OP(60),         OP_MASK,     PPCPS,     {FRS,PSD,RA,PSW,PSQ}},
--
--{"xxmrghd",   XX3(60,10),     XX3_MASK,    PPCVSX,    {XT6, XA6, XB6}},
--{"xxmrgld",   XX3(60,10)|(3<<8), XX3_MASK, PPCVSX,    {XT6, XA6, XB6}},
--{"xxpermdi",  XX3(60,10),     XX3DM_MASK,  PPCVSX,    {XT6, XA6, XB6, DM}},
--{"xvmovdp",   XX3(60,240),    XX3_MASK,    PPCVSX,    {XT6, XA6, XB6S}},
--{"xvcpsgndp", XX3(60,240),    XX3_MASK,    PPCVSX,    {XT6, XA6, XB6}},
--
--{"psq_stu",   OP(61),         OP_MASK,     PPCPS,     {FRS,PSD,RA,PSW,PSQ}},
--
--{"stfqu",     OP(61),         OP_MASK,     POWER2,    {FRS, D, RA}},
--
--{"stfdp",     OP(61),         OP_MASK,     POWER6,    {FRT, D, RA0}},
--
--{"lde",               DEO(62,0),      DE_MASK,     BOOKE64,   {RT, DES, RA0}},
--{"ldue",      DEO(62,1),      DE_MASK,     BOOKE64,   {RT, DES, RA0}},
--{"lfse",      DEO(62,4),      DE_MASK,     BOOKE64,   {FRT, DES, RA0}},
--{"lfsue",     DEO(62,5),      DE_MASK,     BOOKE64,   {FRT, DES, RAS}},
--{"lfde",      DEO(62,6),      DE_MASK,     BOOKE64,   {FRT, DES, RA0}},
--{"lfdue",     DEO(62,7),      DE_MASK,     BOOKE64,   {FRT, DES, RAS}},
--{"stde",      DEO(62,8),      DE_MASK,     BOOKE64,   {RS, DES, RA0}},
--{"stdue",     DEO(62,9),      DE_MASK,     BOOKE64,   {RS, DES, RAS}},
--{"stfse",     DEO(62,12),     DE_MASK,     BOOKE64,   {FRS, DES, RA0}},
--{"stfsue",    DEO(62,13),     DE_MASK,     BOOKE64,   {FRS, DES, RAS}},
--{"stfde",     DEO(62,14),     DE_MASK,     BOOKE64,   {FRS, DES, RA0}},
--{"stfdue",    DEO(62,15),     DE_MASK,     BOOKE64,   {FRS, DES, RAS}},
--
--{"std",               DSO(62,0),      DS_MASK,     PPC64,     {RS, DS, RA0}},
--{"stdu",      DSO(62,1),      DS_MASK,     PPC64,     {RS, DS, RAS}},
--{"stq",               DSO(62,2),      DS_MASK,     POWER4,    {RSQ, DS, RA0}},
--
--{"fcmpu",     X(63,0),     X_MASK|(3<<21), COM,       {BF, FRA, FRB}},
--
--{"daddq",     XRC(63,2,0),    X_MASK,      POWER6,    {FRT, FRA, FRB}},
--{"daddq.",    XRC(63,2,1),    X_MASK,      POWER6,    {FRT, FRA, FRB}},
--
--{"dquaq",     ZRC(63,3,0),    Z2_MASK,     POWER6,    {FRT, FRA, FRB, RMC}},
--{"dquaq.",    ZRC(63,3,1),    Z2_MASK,     POWER6,    {FRT, FRA, FRB, RMC}},
--
--{"fcpsgn",    XRC(63,8,0),    X_MASK,      POWER6,    {FRT, FRA, FRB}},
--{"fcpsgn.",   XRC(63,8,1),    X_MASK,      POWER6,    {FRT, FRA, FRB}},
--
--{"frsp",      XRC(63,12,0),   XRA_MASK,    COM,       {FRT, FRB}},
--{"frsp.",     XRC(63,12,1),   XRA_MASK,    COM,       {FRT, FRB}},
--
--{"fctiw",     XRC(63,14,0),   XRA_MASK,    PPCCOM,    {FRT, FRB}},
--{"fcir",      XRC(63,14,0),   XRA_MASK,    POWER2,    {FRT, FRB}},
--{"fctiw.",    XRC(63,14,1),   XRA_MASK,    PPCCOM,    {FRT, FRB}},
--{"fcir.",     XRC(63,14,1),   XRA_MASK,    POWER2,    {FRT, FRB}},
--
--{"fctiwz",    XRC(63,15,0),   XRA_MASK,    PPCCOM,    {FRT, FRB}},
--{"fcirz",     XRC(63,15,0),   XRA_MASK,    POWER2,    {FRT, FRB}},
--{"fctiwz.",   XRC(63,15,1),   XRA_MASK,    PPCCOM,    {FRT, FRB}},
--{"fcirz.",    XRC(63,15,1),   XRA_MASK,    POWER2,    {FRT, FRB}},
--
--{"fdiv",      A(63,18,0),     AFRC_MASK,   PPCCOM,    {FRT, FRA, FRB}},
--{"fd",                A(63,18,0),     AFRC_MASK,   PWRCOM,    {FRT, FRA, FRB}},
--{"fdiv.",     A(63,18,1),     AFRC_MASK,   PPCCOM,    {FRT, FRA, FRB}},
--{"fd.",               A(63,18,1),     AFRC_MASK,   PWRCOM,    {FRT, FRA, FRB}},
--
--{"fsub",      A(63,20,0),     AFRC_MASK,   PPCCOM,    {FRT, FRA, FRB}},
--{"fs",                A(63,20,0),     AFRC_MASK,   PWRCOM,    {FRT, FRA, FRB}},
--{"fsub.",     A(63,20,1),     AFRC_MASK,   PPCCOM,    {FRT, FRA, FRB}},
--{"fs.",               A(63,20,1),     AFRC_MASK,   PWRCOM,    {FRT, FRA, FRB}},
--
--{"fadd",      A(63,21,0),     AFRC_MASK,   PPCCOM,    {FRT, FRA, FRB}},
--{"fa",                A(63,21,0),     AFRC_MASK,   PWRCOM,    {FRT, FRA, FRB}},
--{"fadd.",     A(63,21,1),     AFRC_MASK,   PPCCOM,    {FRT, FRA, FRB}},
--{"fa.",               A(63,21,1),     AFRC_MASK,   PWRCOM,    {FRT, FRA, FRB}},
--
--{"fsqrt",     A(63,22,0),    AFRAFRC_MASK, PPCPWR2,   {FRT, FRB}},
--{"fsqrt.",    A(63,22,1),    AFRAFRC_MASK, PPCPWR2,   {FRT, FRB}},
--
--{"fsel",      A(63,23,0),     A_MASK,      PPC,       {FRT, FRA, FRC, FRB}},
--{"fsel.",     A(63,23,1),     A_MASK,      PPC,       {FRT, FRA, FRC, FRB}},
--
--{"fre",               A(63,24,0),   AFRALFRC_MASK, POWER5,    {FRT, FRB, A_L}},
--{"fre.",      A(63,24,1),   AFRALFRC_MASK, POWER5,    {FRT, FRB, A_L}},
--
--{"fmul",      A(63,25,0),     AFRB_MASK,   PPCCOM,    {FRT, FRA, FRC}},
--{"fm",                A(63,25,0),     AFRB_MASK,   PWRCOM,    {FRT, FRA, FRC}},
--{"fmul.",     A(63,25,1),     AFRB_MASK,   PPCCOM,    {FRT, FRA, FRC}},
--{"fm.",               A(63,25,1),     AFRB_MASK,   PWRCOM,    {FRT, FRA, FRC}},
--
--{"frsqrte",   A(63,26,0),   AFRALFRC_MASK, PPC,       {FRT, FRB, A_L}},
--{"frsqrte.",  A(63,26,1),   AFRALFRC_MASK, PPC,       {FRT, FRB, A_L}},
--
--{"fmsub",     A(63,28,0),     A_MASK,      PPCCOM,    {FRT, FRA, FRC, FRB}},
--{"fms",               A(63,28,0),     A_MASK,      PWRCOM,    {FRT, FRA, FRC, FRB}},
--{"fmsub.",    A(63,28,1),     A_MASK,      PPCCOM,    {FRT, FRA, FRC, FRB}},
--{"fms.",      A(63,28,1),     A_MASK,      PWRCOM,    {FRT, FRA, FRC, FRB}},
--
--{"fmadd",     A(63,29,0),     A_MASK,      PPCCOM,    {FRT, FRA, FRC, FRB}},
--{"fma",               A(63,29,0),     A_MASK,      PWRCOM,    {FRT, FRA, FRC, FRB}},
--{"fmadd.",    A(63,29,1),     A_MASK,      PPCCOM,    {FRT, FRA, FRC, FRB}},
--{"fma.",      A(63,29,1),     A_MASK,      PWRCOM,    {FRT, FRA, FRC, FRB}},
--
--{"fnmsub",    A(63,30,0),     A_MASK,      PPCCOM,    {FRT, FRA, FRC, FRB}},
--{"fnms",      A(63,30,0),     A_MASK,      PWRCOM,    {FRT, FRA, FRC, FRB}},
--{"fnmsub.",   A(63,30,1),     A_MASK,      PPCCOM,    {FRT, FRA, FRC, FRB}},
--{"fnms.",     A(63,30,1),     A_MASK,      PWRCOM,    {FRT, FRA, FRC, FRB}},
--
--{"fnmadd",    A(63,31,0),     A_MASK,      PPCCOM,    {FRT, FRA, FRC, FRB}},
--{"fnma",      A(63,31,0),     A_MASK,      PWRCOM,    {FRT, FRA, FRC, FRB}},
--{"fnmadd.",   A(63,31,1),     A_MASK,      PPCCOM,    {FRT, FRA, FRC, FRB}},
--{"fnma.",     A(63,31,1),     A_MASK,      PWRCOM,    {FRT, FRA, FRC, FRB}},
--
--{"fcmpo",     X(63,32),    X_MASK|(3<<21), COM,       {BF, FRA, FRB}},
--
--{"dmulq",     XRC(63,34,0),   X_MASK,      POWER6,    {FRT, FRA, FRB}},
--{"dmulq.",    XRC(63,34,1),   X_MASK,      POWER6,    {FRT, FRA, FRB}},
--
--{"drrndq",    ZRC(63,35,0),   Z2_MASK,     POWER6,    {FRT, FRA, FRB, RMC}},
--{"drrndq.",   ZRC(63,35,1),   Z2_MASK,     POWER6,    {FRT, FRA, FRB, RMC}},
--
--{"mtfsb1",    XRC(63,38,0),   XRARB_MASK,  COM,       {BT}},
--{"mtfsb1.",   XRC(63,38,1),   XRARB_MASK,  COM,       {BT}},
--
--{"fneg",      XRC(63,40,0),   XRA_MASK,    COM,       {FRT, FRB}},
--{"fneg.",     XRC(63,40,1),   XRA_MASK,    COM,       {FRT, FRB}},
--
--{"mcrfs",      X(63,64), XRB_MASK|(3<<21)|(3<<16), COM,       {BF, BFA}},
--
--{"dscliq",    ZRC(63,66,0),   Z_MASK,      POWER6,    {FRT, FRA, SH16}},
--{"dscliq.",   ZRC(63,66,1),   Z_MASK,      POWER6,    {FRT, FRA, SH16}},
--
--{"dquaiq",    ZRC(63,67,0),   Z2_MASK,     POWER6,    {TE, FRT, FRB, RMC}},
--{"dquaiq.",   ZRC(63,67,1),   Z2_MASK,     POWER6,    {TE, FRT, FRB, RMC}},
--
--{"mtfsb0",    XRC(63,70,0),   XRARB_MASK,  COM,       {BT}},
--{"mtfsb0.",   XRC(63,70,1),   XRARB_MASK,  COM,       {BT}},
--
--{"fmr",               XRC(63,72,0),   XRA_MASK,    COM,       {FRT, FRB}},
--{"fmr.",      XRC(63,72,1),   XRA_MASK,    COM,       {FRT, FRB}},
--
--{"dscriq",    ZRC(63,98,0),   Z_MASK,      POWER6,    {FRT, FRA, SH16}},
--{"dscriq.",   ZRC(63,98,1),   Z_MASK,      POWER6,    {FRT, FRA, SH16}},
--
--{"drintxq",   ZRC(63,99,0),   Z2_MASK,     POWER6,    {R, FRT, FRB, RMC}},
--{"drintxq.",  ZRC(63,99,1),   Z2_MASK,     POWER6,    {R, FRT, FRB, RMC}},
--
--{"dcmpoq",    X(63,130),      X_MASK,      POWER6,    {BF, FRA, FRB}},
--
--{"mtfsfi",  XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), COM, {BFF, U, W}},
--{"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), COM, {BFF, U, W}},
--
--{"fnabs",     XRC(63,136,0),  XRA_MASK,    COM,       {FRT, FRB}},
--{"fnabs.",    XRC(63,136,1),  XRA_MASK,    COM,       {FRT, FRB}},
--
--{"dtstexq",   X(63,162),      X_MASK,      POWER6,    {BF, FRA, FRB}},
--{"dtstdcq",   Z(63,194),      Z_MASK,      POWER6,    {BF, FRA, DCM}},
--{"dtstdgq",   Z(63,226),      Z_MASK,      POWER6,    {BF, FRA, DGM}},
--
--{"drintnq",   ZRC(63,227,0),  Z2_MASK,     POWER6,    {R, FRT, FRB, RMC}},
--{"drintnq.",  ZRC(63,227,1),  Z2_MASK,     POWER6,    {R, FRT, FRB, RMC}},
--
--{"dctqpq",    XRC(63,258,0),  X_MASK,      POWER6,    {FRT, FRB}},
--{"dctqpq.",   XRC(63,258,1),  X_MASK,      POWER6,    {FRT, FRB}},
--
--{"fabs",      XRC(63,264,0),  XRA_MASK,    COM,       {FRT, FRB}},
--{"fabs.",     XRC(63,264,1),  XRA_MASK,    COM,       {FRT, FRB}},
--
--{"dctfixq",   XRC(63,290,0),  X_MASK,      POWER6,    {FRT, FRB}},
--{"dctfixq.",  XRC(63,290,1),  X_MASK,      POWER6,    {FRT, FRB}},
--
--{"ddedpdq",   XRC(63,322,0),  X_MASK,      POWER6,    {SP, FRT, FRB}},
--{"ddedpdq.",  XRC(63,322,1),  X_MASK,      POWER6,    {SP, FRT, FRB}},
--
--{"dxexq",     XRC(63,354,0),  X_MASK,      POWER6,    {FRT, FRB}},
--{"dxexq.",    XRC(63,354,1),  X_MASK,      POWER6,    {FRT, FRB}},
--
--{"frin",      XRC(63,392,0),  XRA_MASK,    POWER5,    {FRT, FRB}},
--{"frin.",     XRC(63,392,1),  XRA_MASK,    POWER5,    {FRT, FRB}},
--{"friz",      XRC(63,424,0),  XRA_MASK,    POWER5,    {FRT, FRB}},
--{"friz.",     XRC(63,424,1),  XRA_MASK,    POWER5,    {FRT, FRB}},
--{"frip",      XRC(63,456,0),  XRA_MASK,    POWER5,    {FRT, FRB}},
--{"frip.",     XRC(63,456,1),  XRA_MASK,    POWER5,    {FRT, FRB}},
--{"frim",      XRC(63,488,0),  XRA_MASK,    POWER5,    {FRT, FRB}},
--{"frim.",     XRC(63,488,1),  XRA_MASK,    POWER5,    {FRT, FRB}},
--
--{"dsubq",     XRC(63,514,0),  X_MASK,      POWER6,    {FRT, FRA, FRB}},
--{"dsubq.",    XRC(63,514,1),  X_MASK,      POWER6,    {FRT, FRA, FRB}},
--
--{"ddivq",     XRC(63,546,0),  X_MASK,      POWER6,    {FRT, FRA, FRB}},
--{"ddivq.",    XRC(63,546,1),  X_MASK,      POWER6,    {FRT, FRA, FRB}},
--
--{"mffs",      XRC(63,583,0),  XRARB_MASK,  COM,       {FRT}},
--{"mffs.",     XRC(63,583,1),  XRARB_MASK,  COM,       {FRT}},
--
--{"dcmpuq",    X(63,642),      X_MASK,      POWER6,    {BF, FRA, FRB}},
--
--{"dtstsfq",   X(63,674),      X_MASK,      POWER6,    {BF, FRA, FRB}},
--
--{"mtfsf",     XFL(63,711,0),  XFL_MASK,    COM,       {FLM, FRB, XFL_L, W}},
--{"mtfsf.",    XFL(63,711,1),  XFL_MASK,    COM,       {FLM, FRB, XFL_L, W}},
--
--{"drdpq",     XRC(63,770,0),  X_MASK,      POWER6,    {FRT, FRB}},
--{"drdpq.",    XRC(63,770,1),  X_MASK,      POWER6,    {FRT, FRB}},
--
--{"dcffixq",   XRC(63,802,0),  X_MASK,      POWER6,    {FRT, FRB}},
--{"dcffixq.",  XRC(63,802,1),  X_MASK,      POWER6,    {FRT, FRB}},
--
--{"fctid",     XRC(63,814,0),  XRA_MASK,    PPC64,     {FRT, FRB}},
--{"fctid.",    XRC(63,814,1),  XRA_MASK,    PPC64,     {FRT, FRB}},
--
--{"fctidz",    XRC(63,815,0),  XRA_MASK,    PPC64,     {FRT, FRB}},
--{"fctidz.",   XRC(63,815,1),  XRA_MASK,    PPC64,     {FRT, FRB}},
--
--{"denbcdq",   XRC(63,834,0),  X_MASK,      POWER6,    {S, FRT, FRB}},
--{"denbcdq.",  XRC(63,834,1),  X_MASK,      POWER6,    {S, FRT, FRB}},
-+{"attn",      X(0,256),       X_MASK,      POWER4,    PPCNONE,        {0}},
-+{"tdlgti",    OPTO(2,TOLGT),  OPTO_MASK,   PPC64,     PPCNONE,        {RA, SI}},
-+{"tdllti",    OPTO(2,TOLLT),  OPTO_MASK,   PPC64,     PPCNONE,        {RA, SI}},
-+{"tdeqi",     OPTO(2,TOEQ),   OPTO_MASK,   PPC64,     PPCNONE,        {RA, SI}},
-+{"tdlgei",    OPTO(2,TOLGE),  OPTO_MASK,   PPC64,     PPCNONE,        {RA, SI}},
-+{"tdlnli",    OPTO(2,TOLNL),  OPTO_MASK,   PPC64,     PPCNONE,        {RA, SI}},
-+{"tdllei",    OPTO(2,TOLLE),  OPTO_MASK,   PPC64,     PPCNONE,        {RA, SI}},
-+{"tdlngi",    OPTO(2,TOLNG),  OPTO_MASK,   PPC64,     PPCNONE,        {RA, SI}},
-+{"tdgti",     OPTO(2,TOGT),   OPTO_MASK,   PPC64,     PPCNONE,        {RA, SI}},
-+{"tdgei",     OPTO(2,TOGE),   OPTO_MASK,   PPC64,     PPCNONE,        {RA, SI}},
-+{"tdnli",     OPTO(2,TONL),   OPTO_MASK,   PPC64,     PPCNONE,        {RA, SI}},
-+{"tdlti",     OPTO(2,TOLT),   OPTO_MASK,   PPC64,     PPCNONE,        {RA, SI}},
-+{"tdlei",     OPTO(2,TOLE),   OPTO_MASK,   PPC64,     PPCNONE,        {RA, SI}},
-+{"tdngi",     OPTO(2,TONG),   OPTO_MASK,   PPC64,     PPCNONE,        {RA, SI}},
-+{"tdnei",     OPTO(2,TONE),   OPTO_MASK,   PPC64,     PPCNONE,        {RA, SI}},
-+{"tdi",               OP(2),          OP_MASK,     PPC64,     PPCNONE,        {TO, RA, SI}},
-+
-+{"twlgti",    OPTO(3,TOLGT),  OPTO_MASK,   PPCCOM,    PPCNONE,        {RA, SI}},
-+{"tlgti",     OPTO(3,TOLGT),  OPTO_MASK,   PWRCOM,    PPCNONE,        {RA, SI}},
-+{"twllti",    OPTO(3,TOLLT),  OPTO_MASK,   PPCCOM,    PPCNONE,        {RA, SI}},
-+{"tllti",     OPTO(3,TOLLT),  OPTO_MASK,   PWRCOM,    PPCNONE,        {RA, SI}},
-+{"tweqi",     OPTO(3,TOEQ),   OPTO_MASK,   PPCCOM,    PPCNONE,        {RA, SI}},
-+{"teqi",      OPTO(3,TOEQ),   OPTO_MASK,   PWRCOM,    PPCNONE,        {RA, SI}},
-+{"twlgei",    OPTO(3,TOLGE),  OPTO_MASK,   PPCCOM,    PPCNONE,        {RA, SI}},
-+{"tlgei",     OPTO(3,TOLGE),  OPTO_MASK,   PWRCOM,    PPCNONE,        {RA, SI}},
-+{"twlnli",    OPTO(3,TOLNL),  OPTO_MASK,   PPCCOM,    PPCNONE,        {RA, SI}},
-+{"tlnli",     OPTO(3,TOLNL),  OPTO_MASK,   PWRCOM,    PPCNONE,        {RA, SI}},
-+{"twllei",    OPTO(3,TOLLE),  OPTO_MASK,   PPCCOM,    PPCNONE,        {RA, SI}},
-+{"tllei",     OPTO(3,TOLLE),  OPTO_MASK,   PWRCOM,    PPCNONE,        {RA, SI}},
-+{"twlngi",    OPTO(3,TOLNG),  OPTO_MASK,   PPCCOM,    PPCNONE,        {RA, SI}},
-+{"tlngi",     OPTO(3,TOLNG),  OPTO_MASK,   PWRCOM,    PPCNONE,        {RA, SI}},
-+{"twgti",     OPTO(3,TOGT),   OPTO_MASK,   PPCCOM,    PPCNONE,        {RA, SI}},
-+{"tgti",      OPTO(3,TOGT),   OPTO_MASK,   PWRCOM,    PPCNONE,        {RA, SI}},
-+{"twgei",     OPTO(3,TOGE),   OPTO_MASK,   PPCCOM,    PPCNONE,        {RA, SI}},
-+{"tgei",      OPTO(3,TOGE),   OPTO_MASK,   PWRCOM,    PPCNONE,        {RA, SI}},
-+{"twnli",     OPTO(3,TONL),   OPTO_MASK,   PPCCOM,    PPCNONE,        {RA, SI}},
-+{"tnli",      OPTO(3,TONL),   OPTO_MASK,   PWRCOM,    PPCNONE,        {RA, SI}},
-+{"twlti",     OPTO(3,TOLT),   OPTO_MASK,   PPCCOM,    PPCNONE,        {RA, SI}},
-+{"tlti",      OPTO(3,TOLT),   OPTO_MASK,   PWRCOM,    PPCNONE,        {RA, SI}},
-+{"twlei",     OPTO(3,TOLE),   OPTO_MASK,   PPCCOM,    PPCNONE,        {RA, SI}},
-+{"tlei",      OPTO(3,TOLE),   OPTO_MASK,   PWRCOM,    PPCNONE,        {RA, SI}},
-+{"twngi",     OPTO(3,TONG),   OPTO_MASK,   PPCCOM,    PPCNONE,        {RA, SI}},
-+{"tngi",      OPTO(3,TONG),   OPTO_MASK,   PWRCOM,    PPCNONE,        {RA, SI}},
-+{"twnei",     OPTO(3,TONE),   OPTO_MASK,   PPCCOM,    PPCNONE,        {RA, SI}},
-+{"tnei",      OPTO(3,TONE),   OPTO_MASK,   PWRCOM,    PPCNONE,        {RA, SI}},
-+{"twi",               OP(3),          OP_MASK,     PPCCOM,    PPCNONE,        {TO, RA, SI}},
-+{"ti",                OP(3),          OP_MASK,     PWRCOM,    PPCNONE,        {TO, RA, SI}},
-+
-+{"ps_cmpu0",  X  (4,   0), X_MASK|(3<<21), PPCPS,     PPCNONE,        {BF, FRA, FRB}},
-+{"vaddubm",   VX (4,   0),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vmaxub",    VX (4,   2),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vrlb",      VX (4,   4),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcmpequb",  VXR(4,   6,0),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vmuloub",   VX (4,   8),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vaddfp",    VX (4,  10),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"psq_lx",    XW (4,   6,0),  XW_MASK,     PPCPS,     PPCNONE,        {FRT,RA,RB,PSWM,PSQM}},
-+{"vmrghb",    VX (4,  12),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"psq_stx",   XW (4,   7,0),  XW_MASK,     PPCPS,     PPCNONE,        {FRS,RA,RB,PSWM,PSQM}},
-+{"vpkuhum",   VX (4,  14),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"mulhhwu",   XRC(4,   8,0),  X_MASK,  PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"mulhhwu.",  XRC(4,   8,1),  X_MASK,  PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"ps_sum0",   A  (4,  10,0),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"ps_sum0.",  A  (4,  10,1),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"ps_sum1",   A  (4,  11,0),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"ps_sum1.",  A  (4,  11,1),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"ps_muls0",  A  (4,  12,0),  AFRB_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRC}},
-+{"machhwu",   XO (4,  12,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"ps_muls0.", A  (4,  12,1),  AFRB_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRC}},
-+{"machhwu.",  XO (4,  12,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"ps_muls1",  A  (4,  13,0),  AFRB_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRC}},
-+{"ps_muls1.", A  (4,  13,1),  AFRB_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRC}},
-+{"ps_madds0", A  (4,  14,0),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"ps_madds0.",        A  (4,  14,1),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"ps_madds1", A  (4,  15,0),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"ps_madds1.",        A  (4,  15,1),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"vmhaddshs", VXA(4,  32),    VXA_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB, VC}},
-+{"vmhraddshs",        VXA(4,  33),    VXA_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB, VC}},
-+{"vmladduhm", VXA(4,  34),    VXA_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB, VC}},
-+{"ps_div",    A  (4,  18,0),  AFRC_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRB}},
-+{"vmsumubm",  VXA(4,  36),    VXA_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB, VC}},
-+{"ps_div.",   A  (4,  18,1),  AFRC_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRB}},
-+{"vmsummbm",  VXA(4,  37),    VXA_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB, VC}},
-+{"vmsumuhm",  VXA(4,  38),    VXA_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB, VC}},
-+{"vmsumuhs",  VXA(4,  39),    VXA_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB, VC}},
-+{"ps_sub",    A  (4,  20,0),  AFRC_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRB}},
-+{"vmsumshm",  VXA(4,  40),    VXA_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB, VC}},
-+{"ps_sub.",   A  (4,  20,1),  AFRC_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRB}},
-+{"vmsumshs",  VXA(4,  41),    VXA_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB, VC}},
-+{"ps_add",    A  (4,  21,0),  AFRC_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRB}},
-+{"vsel",      VXA(4,  42),    VXA_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB, VC}},
-+{"ps_add.",   A  (4,  21,1),  AFRC_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRB}},
-+{"vperm",     VXA(4,  43),    VXA_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB, VC}},
-+{"vsldoi",    VXA(4,  44),    VXA_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB, SHB}},
-+{"ps_sel",    A  (4,  23,0),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"vmaddfp",   VXA(4,  46),    VXA_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VC, VB}},
-+{"ps_sel.",   A  (4,  23,1),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"vnmsubfp",  VXA(4,  47),    VXA_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VC, VB}},
-+{"ps_res",    A  (4,  24,0), AFRAFRC_MASK, PPCPS,     PPCNONE,        {FRT, FRB}},
-+{"ps_res.",   A  (4,  24,1), AFRAFRC_MASK, PPCPS,     PPCNONE,        {FRT, FRB}},
-+{"ps_mul",    A  (4,  25,0), AFRB_MASK,    PPCPS,     PPCNONE,        {FRT, FRA, FRC}},
-+{"ps_mul.",   A  (4,  25,1),  AFRB_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRC}},
-+{"ps_rsqrte", A  (4,  26,0), AFRAFRC_MASK, PPCPS,     PPCNONE,        {FRT, FRB}},
-+{"ps_rsqrte.",        A  (4,  26,1), AFRAFRC_MASK, PPCPS,     PPCNONE,        {FRT, FRB}},
-+{"ps_msub",   A  (4,  28,0),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"ps_msub.",  A  (4,  28,1),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"ps_madd",   A  (4,  29,0),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"ps_madd.",  A  (4,  29,1),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"ps_nmsub",  A  (4,  30,0),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"ps_nmsub.", A  (4,  30,1),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"ps_nmadd",  A  (4,  31,0),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"ps_nmadd.", A  (4,  31,1),  A_MASK,      PPCPS,     PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"ps_cmpo0",  X  (4,  32), X_MASK|(3<<21), PPCPS,     PPCNONE,        {BF, FRA, FRB}},
-+{"vadduhm",   VX (4,  64),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vmaxuh",    VX (4,  66),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vrlh",      VX (4,  68),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcmpequh",  VXR(4,  70,0),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vmulouh",   VX (4,  72),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vsubfp",    VX (4,  74),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"psq_lux",   XW (4,  38,0),  XW_MASK,     PPCPS,     PPCNONE,        {FRT,RA,RB,PSWM,PSQM}},
-+{"vmrghh",    VX (4,  76),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"psq_stux",  XW (4,  39,0),  XW_MASK,     PPCPS,     PPCNONE,        {FRS,RA,RB,PSWM,PSQM}},
-+{"vpkuwum",   VX (4,  78),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"ps_neg",    XRC(4,  40,0),  XRA_MASK,    PPCPS,     PPCNONE,        {FRT, FRB}},
-+{"mulhhw",    XRC(4,  40,0),  X_MASK,  PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"ps_neg.",   XRC(4,  40,1),  XRA_MASK,    PPCPS,     PPCNONE,        {FRT, FRB}},
-+{"mulhhw.",   XRC(4,  40,1),  X_MASK,  PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"machhw",    XO (4,  44,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"machhw.",   XO (4,  44,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmachhw",   XO (4,  46,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmachhw.",  XO (4,  46,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"ps_cmpu1",  X  (4,  64), X_MASK|(3<<21), PPCPS,     PPCNONE,        {BF, FRA, FRB}},
-+{"vadduwm",   VX (4,  128),   VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vmaxuw",    VX (4,  130),   VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vrlw",      VX (4,  132),   VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcmpequw",  VXR(4,  134,0), VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vmrghw",    VX (4,  140),   VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vpkuhus",   VX (4,  142),   VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"ps_mr",     XRC(4,  72,0),  XRA_MASK,    PPCPS,     PPCNONE,        {FRT, FRB}},
-+{"ps_mr.",    XRC(4,  72,1),  XRA_MASK,    PPCPS,     PPCNONE,        {FRT, FRB}},
-+{"machhwsu",  XO (4,  76,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"machhwsu.", XO (4,  76,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"ps_cmpo1",  X  (4,  96), X_MASK|(3<<21), PPCPS,     PPCNONE,        {BF, FRA, FRB}},
-+{"vcmpeqfp",  VXR(4, 198,0),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vpkuwus",   VX (4, 206),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"machhws",   XO (4, 108,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"machhws.",  XO (4, 108,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmachhws",  XO (4, 110,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmachhws.", XO (4, 110,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"vmaxsb",    VX (4, 258),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vslb",      VX (4, 260),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vmulosb",   VX (4, 264),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vrefp",     VX (4, 266),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB}},
-+{"vmrglb",    VX (4, 268),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vpkshus",   VX (4, 270),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"ps_nabs",   XRC(4, 136,0),  XRA_MASK,    PPCPS,     PPCNONE,        {FRT, FRB}},
-+{"mulchwu",   XRC(4, 136,0),  X_MASK,  PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"ps_nabs.",  XRC(4, 136,1),  XRA_MASK,    PPCPS,     PPCNONE,        {FRT, FRB}},
-+{"mulchwu.",  XRC(4, 136,1),  X_MASK,  PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"macchwu",   XO (4, 140,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"macchwu.",  XO (4, 140,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"vmaxsh",    VX (4, 322),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vslh",      VX (4, 324),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vmulosh",   VX (4, 328),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vrsqrtefp", VX (4, 330),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB}},
-+{"vmrglh",    VX (4, 332),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vpkswus",   VX (4, 334),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"mulchw",    XRC(4, 168,0),  X_MASK,  PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"mulchw.",   XRC(4, 168,1),  X_MASK,  PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"macchw",    XO (4, 172,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"macchw.",   XO (4, 172,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmacchw",   XO (4, 174,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmacchw.",  XO (4, 174,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"vaddcuw",   VX (4, 384),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vmaxsw",    VX (4, 386),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vslw",      VX (4, 388),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vexptefp",  VX (4, 394),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB}},
-+{"vmrglw",    VX (4, 396),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vpkshss",   VX (4, 398),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"macchwsu",  XO (4, 204,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"macchwsu.", XO (4, 204,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"vsl",               VX (4, 452),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcmpgefp",  VXR(4, 454,0),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vlogefp",   VX (4, 458),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB}},
-+{"vpkswss",   VX (4, 462),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"macchws",   XO (4, 236,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"macchws.",  XO (4, 236,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmacchws",  XO (4, 238,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmacchws.", XO (4, 238,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"evaddw",    VX (4, 512),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vaddubs",   VX (4, 512),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evaddiw",   VX (4, 514),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RB, UIMM}},
-+{"vminub",    VX (4, 514),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evsubfw",   VX (4, 516),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evsubw",    VX (4, 516),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RB, RA}},
-+{"vsrb",      VX (4, 516),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evsubifw",  VX (4, 518),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, UIMM, RB}},
-+{"evsubiw",   VX (4, 518),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RB, UIMM}},
-+{"vcmpgtub",  VXR(4, 518,0),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evabs",     VX (4, 520),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"vmuleub",   VX (4, 520),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evneg",     VX (4, 521),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"evextsb",   VX (4, 522),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"vrfin",     VX (4, 522),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB}},
-+{"evextsh",   VX (4, 523),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"evrndw",    VX (4, 524),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"vspltb",    VX (4, 524),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB, UIMM}},
-+{"evcntlzw",  VX (4, 525),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"evcntlsw",  VX (4, 526),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"vupkhsb",   VX (4, 526),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB}},
-+{"brinc",     VX (4, 527),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"ps_abs",    XRC(4, 264,0),  XRA_MASK,    PPCPS,     PPCNONE,        {FRT, FRB}},
-+{"ps_abs.",   XRC(4, 264,1),  XRA_MASK,    PPCPS,     PPCNONE,        {FRT, FRB}},
-+{"evand",     VX (4, 529),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evandc",    VX (4, 530),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evxor",     VX (4, 534),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmr",      VX (4, 535),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, BBA}},
-+{"evor",      VX (4, 535),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evnor",     VX (4, 536),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evnot",     VX (4, 536),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, BBA}},
-+{"get",               APU(4, 268,0),  APU_RA_MASK, PPC405,    PPCNONE,        {RT, FSL}},
-+{"eveqv",     VX (4, 537),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evorc",     VX (4, 539),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evnand",    VX (4, 542),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evsrwu",    VX (4, 544),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evsrws",    VX (4, 545),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evsrwiu",   VX (4, 546),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, EVUIMM}},
-+{"evsrwis",   VX (4, 547),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, EVUIMM}},
-+{"evslw",     VX (4, 548),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evslwi",    VX (4, 550),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, EVUIMM}},
-+{"evrlw",     VX (4, 552),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evsplati",  VX (4, 553),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, SIMM}},
-+{"evrlwi",    VX (4, 554),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, EVUIMM}},
-+{"evsplatfi", VX (4, 555),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, SIMM}},
-+{"evmergehi", VX (4, 556),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmergelo", VX (4, 557),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmergehilo",       VX (4, 558),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmergelohi",       VX (4, 559),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evcmpgtu",  VX (4, 560),    VX_MASK,     PPCSPE,    PPCNONE,        {CRFD, RA, RB}},
-+{"evcmpgts",  VX (4, 561),    VX_MASK,     PPCSPE,    PPCNONE,        {CRFD, RA, RB}},
-+{"evcmpltu",  VX (4, 562),    VX_MASK,     PPCSPE,    PPCNONE,        {CRFD, RA, RB}},
-+{"evcmplts",  VX (4, 563),    VX_MASK,     PPCSPE,    PPCNONE,        {CRFD, RA, RB}},
-+{"evcmpeq",   VX (4, 564),    VX_MASK,     PPCSPE,    PPCNONE,        {CRFD, RA, RB}},
-+{"cget",      APU(4, 284,0),  APU_RA_MASK, PPC405,    PPCNONE,        {RT, FSL}},
-+{"vadduhs",   VX (4, 576),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vminuh",    VX (4, 578),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vsrh",      VX (4, 580),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcmpgtuh",  VXR(4, 582,0),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vmuleuh",   VX (4, 584),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vrfiz",     VX (4, 586),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB}},
-+{"vsplth",    VX (4, 588),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB, UIMM}},
-+{"vupkhsh",   VX (4, 590),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB}},
-+{"nget",      APU(4, 300,0),  APU_RA_MASK, PPC405,    PPCNONE,        {RT, FSL}},
-+{"evsel",     EVSEL(4,79),    EVSEL_MASK,  PPCSPE,    PPCNONE,        {RS, RA, RB, CRFS}},
-+{"ncget",     APU(4, 316,0),  APU_RA_MASK, PPC405,    PPCNONE,        {RT, FSL}},
-+{"evfsadd",   VX (4, 640),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vadduws",   VX (4, 640),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evfssub",   VX (4, 641),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vminuw",    VX (4, 642),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evfsabs",   VX (4, 644),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"vsrw",      VX (4, 644),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evfsnabs",  VX (4, 645),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"evfsneg",   VX (4, 646),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"vcmpgtuw",  VXR(4, 646,0),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evfsmul",   VX (4, 648),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evfsdiv",   VX (4, 649),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vrfip",     VX (4, 650),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB}},
-+{"evfscmpgt", VX (4, 652),    VX_MASK,     PPCSPE,    PPCNONE,        {CRFD, RA, RB}},
-+{"vspltw",    VX (4, 652),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB, UIMM}},
-+{"evfscmplt", VX (4, 653),    VX_MASK,     PPCSPE,    PPCNONE,        {CRFD, RA, RB}},
-+{"evfscmpeq", VX (4, 654),    VX_MASK,     PPCSPE,    PPCNONE,        {CRFD, RA, RB}},
-+{"vupklsb",   VX (4, 654),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB}},
-+{"evfscfui",  VX (4, 656),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RB}},
-+{"evfscfsi",  VX (4, 657),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RB}},
-+{"evfscfuf",  VX (4, 658),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RB}},
-+{"evfscfsf",  VX (4, 659),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RB}},
-+{"evfsctui",  VX (4, 660),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RB}},
-+{"evfsctsi",  VX (4, 661),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RB}},
-+{"evfsctuf",  VX (4, 662),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RB}},
-+{"evfsctsf",  VX (4, 663),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RB}},
-+{"evfsctuiz", VX (4, 664),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RB}},
-+{"put",               APU(4, 332,0),  APU_RT_MASK, PPC405,    PPCNONE,        {RA, FSL}},
-+{"evfsctsiz", VX (4, 666),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RB}},
-+{"evfststgt", VX (4, 668),    VX_MASK,     PPCSPE,    PPCNONE,        {CRFD, RA, RB}},
-+{"evfststlt", VX (4, 669),    VX_MASK,     PPCSPE,    PPCNONE,        {CRFD, RA, RB}},
-+{"evfststeq", VX (4, 670),    VX_MASK,     PPCSPE,    PPCNONE,        {CRFD, RA, RB}},
-+{"cput",      APU(4, 348,0),  APU_RT_MASK, PPC405,    PPCNONE,        {RA, FSL}},
-+{"efsadd",    VX (4, 704),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RA, RB}},
-+{"efssub",    VX (4, 705),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RA, RB}},
-+{"efsabs",    VX (4, 708),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RA}},
-+{"vsr",               VX (4, 708),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"efsnabs",   VX (4, 709),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RA}},
-+{"efsneg",    VX (4, 710),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RA}},
-+{"vcmpgtfp",  VXR(4, 710,0),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"efsmul",    VX (4, 712),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RA, RB}},
-+{"efsdiv",    VX (4, 713),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RA, RB}},
-+{"vrfim",     VX (4, 714),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB}},
-+{"efscmpgt",  VX (4, 716),    VX_MASK,     PPCEFS,    PPCNONE,        {CRFD, RA, RB}},
-+{"efscmplt",  VX (4, 717),    VX_MASK,     PPCEFS,    PPCNONE,        {CRFD, RA, RB}},
-+{"efscmpeq",  VX (4, 718),    VX_MASK,     PPCEFS,    PPCNONE,        {CRFD, RA, RB}},
-+{"vupklsh",   VX (4, 718),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB}},
-+{"efscfd",    VX (4, 719),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efscfui",   VX (4, 720),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efscfsi",   VX (4, 721),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efscfuf",   VX (4, 722),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efscfsf",   VX (4, 723),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efsctui",   VX (4, 724),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efsctsi",   VX (4, 725),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efsctuf",   VX (4, 726),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efsctsf",   VX (4, 727),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efsctuiz",  VX (4, 728),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"nput",      APU(4, 364,0),  APU_RT_MASK, PPC405,    PPCNONE,        {RA, FSL}},
-+{"efsctsiz",  VX (4, 730),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efststgt",  VX (4, 732),    VX_MASK,     PPCEFS,    PPCNONE,        {CRFD, RA, RB}},
-+{"efststlt",  VX (4, 733),    VX_MASK,     PPCEFS,    PPCNONE,        {CRFD, RA, RB}},
-+{"efststeq",  VX (4, 734),    VX_MASK,     PPCEFS,    PPCNONE,        {CRFD, RA, RB}},
-+{"efdadd",    VX (4, 736),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RA, RB}},
-+{"efdsub",    VX (4, 737),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RA, RB}},
-+{"efdcfuid",  VX (4, 738),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efdcfsid",  VX (4, 739),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efdabs",    VX (4, 740),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RA}},
-+{"efdnabs",   VX (4, 741),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RA}},
-+{"efdneg",    VX (4, 742),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RA}},
-+{"efdmul",    VX (4, 744),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RA, RB}},
-+{"efddiv",    VX (4, 745),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RA, RB}},
-+{"efdctuidz", VX (4, 746),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efdctsidz", VX (4, 747),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efdcmpgt",  VX (4, 748),    VX_MASK,     PPCEFS,    PPCNONE,        {CRFD, RA, RB}},
-+{"efdcmplt",  VX (4, 749),    VX_MASK,     PPCEFS,    PPCNONE,        {CRFD, RA, RB}},
-+{"efdcmpeq",  VX (4, 750),    VX_MASK,     PPCEFS,    PPCNONE,        {CRFD, RA, RB}},
-+{"efdcfs",    VX (4, 751),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efdcfui",   VX (4, 752),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efdcfsi",   VX (4, 753),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efdcfuf",   VX (4, 754),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efdcfsf",   VX (4, 755),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efdctui",   VX (4, 756),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efdctsi",   VX (4, 757),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efdctuf",   VX (4, 758),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efdctsf",   VX (4, 759),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efdctuiz",  VX (4, 760),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"ncput",     APU(4, 380,0),  APU_RT_MASK, PPC405,    PPCNONE,        {RA, FSL}},
-+{"efdctsiz",  VX (4, 762),    VX_MASK,     PPCEFS,    PPCNONE,        {RS, RB}},
-+{"efdtstgt",  VX (4, 764),    VX_MASK,     PPCEFS,    PPCNONE,        {CRFD, RA, RB}},
-+{"efdtstlt",  VX (4, 765),    VX_MASK,     PPCEFS,    PPCNONE,        {CRFD, RA, RB}},
-+{"efdtsteq",  VX (4, 766),    VX_MASK,     PPCEFS,    PPCNONE,        {CRFD, RA, RB}},
-+{"evlddx",    VX (4, 768),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vaddsbs",   VX (4, 768),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evldd",     VX (4, 769),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_8, RA}},
-+{"evldwx",    VX (4, 770),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vminsb",    VX (4, 770),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evldw",     VX (4, 771),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_8, RA}},
-+{"evldhx",    VX (4, 772),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vsrab",     VX (4, 772),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evldh",     VX (4, 773),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_8, RA}},
-+{"vcmpgtsb",  VXR(4, 774,0),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evlhhesplatx",VX (4, 776),  VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vmulesb",   VX (4, 776),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evlhhesplat",       VX (4, 777),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_2, RA}},
-+{"vcfux",     VX (4, 778),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB, UIMM}},
-+{"evlhhousplatx",VX(4, 780),  VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vspltisb",  VX (4, 780),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, SIMM}},
-+{"evlhhousplat",VX (4, 781),  VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_2, RA}},
-+{"evlhhossplatx",VX(4, 782),  VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vpkpx",     VX (4, 782),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evlhhossplat",VX (4, 783),  VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_2, RA}},
-+{"mullhwu",   XRC(4, 392,0),  X_MASK,  PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"evlwhex",   VX (4, 784),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"mullhwu.",  XRC(4, 392,1),  X_MASK,  PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"evlwhe",    VX (4, 785),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_4, RA}},
-+{"evlwhoux",  VX (4, 788),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evlwhou",   VX (4, 789),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_4, RA}},
-+{"evlwhosx",  VX (4, 790),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evlwhos",   VX (4, 791),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_4, RA}},
-+{"maclhwu",   XO (4, 396,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"evlwwsplatx",       VX (4, 792),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"maclhwu.",  XO (4, 396,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"evlwwsplat",        VX (4, 793),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_4, RA}},
-+{"evlwhsplatx",       VX (4, 796),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evlwhsplat",        VX (4, 797),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_4, RA}},
-+{"evstddx",   VX (4, 800),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evstdd",    VX (4, 801),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_8, RA}},
-+{"evstdwx",   VX (4, 802),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evstdw",    VX (4, 803),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_8, RA}},
-+{"evstdhx",   VX (4, 804),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evstdh",    VX (4, 805),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_8, RA}},
-+{"evstwhex",  VX (4, 816),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evstwhe",   VX (4, 817),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_4, RA}},
-+{"evstwhox",  VX (4, 820),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evstwho",   VX (4, 821),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_4, RA}},
-+{"evstwwex",  VX (4, 824),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evstwwe",   VX (4, 825),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_4, RA}},
-+{"evstwwox",  VX (4, 828),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evstwwo",   VX (4, 829),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, EVUIMM_4, RA}},
-+{"vaddshs",   VX (4, 832),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vminsh",    VX (4, 834),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vsrah",     VX (4, 836),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcmpgtsh",  VXR(4, 838,0),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vmulesh",   VX (4, 840),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcfsx",     VX (4, 842),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB, UIMM}},
-+{"vspltish",  VX (4, 844),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, SIMM}},
-+{"vupkhpx",   VX (4, 846),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB}},
-+{"mullhw",    XRC(4, 424,0),  X_MASK,  PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"mullhw.",   XRC(4, 424,1),  X_MASK,  PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"maclhw",    XO (4, 428,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"maclhw.",   XO (4, 428,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmaclhw",   XO (4, 430,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmaclhw.",  XO (4, 430,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"vaddsws",   VX (4, 896),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vminsw",    VX (4, 898),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vsraw",     VX (4, 900),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcmpgtsw",  VXR(4, 902,0),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vctuxs",    VX (4, 906),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB, UIMM}},
-+{"vspltisw",  VX (4, 908),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, SIMM}},
-+{"maclhwsu",  XO (4, 460,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"maclhwsu.", XO (4, 460,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"vcmpbfp",   VXR(4, 966,0),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vctsxs",    VX (4, 970),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB, UIMM}},
-+{"vupklpx",   VX (4, 974),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VB}},
-+{"maclhws",   XO (4, 492,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"maclhws.",  XO (4, 492,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmaclhws",  XO (4, 494,0,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmaclhws.", XO (4, 494,0,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"vsububm",   VX (4,1024),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vavgub",    VX (4,1026),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evmhessf",  VX (4,1027),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vand",      VX (4,1028),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcmpequb.", VXR(4,   6,1),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"udi0fcm.",  APU(4, 515,0), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},
-+{"udi0fcm",   APU(4, 515,1), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},
-+{"evmhossf",  VX (4,1031),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmheumi",  VX (4,1032),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhesmi",  VX (4,1033),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vmaxfp",    VX (4,1034),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evmhesmf",  VX (4,1035),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhoumi",  VX (4,1036),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vslo",      VX (4,1036),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evmhosmi",  VX (4,1037),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhosmf",  VX (4,1039),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"machhwuo",  XO (4,  12,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"machhwuo.", XO (4,  12,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"ps_merge00",        XOPS(4,528,0),  XOPS_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRB}},
-+{"ps_merge00.",       XOPS(4,528,1),  XOPS_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRB}},
-+{"evmhessfa", VX (4,1059),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhossfa", VX (4,1063),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmheumia", VX (4,1064),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhesmia", VX (4,1065),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhesmfa", VX (4,1067),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhoumia", VX (4,1068),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhosmia", VX (4,1069),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhosmfa", VX (4,1071),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vsubuhm",   VX (4,1088),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vavguh",    VX (4,1090),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vandc",     VX (4,1092),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcmpequh.", VXR(4,  70,1),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"udi1fcm.",  APU(4, 547,0), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},
-+{"udi1fcm",   APU(4, 547,1), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},   
-+{"evmwhssf",  VX (4,1095),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwlumi",  VX (4,1096),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vminfp",    VX (4,1098),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evmwhumi",  VX (4,1100),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vsro",      VX (4,1100),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evmwhsmi",  VX (4,1101),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwhsmf",  VX (4,1103),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwssf",   VX (4,1107),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"machhwo",   XO (4,  44,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"evmwumi",   VX (4,1112),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"machhwo.",  XO (4,  44,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"evmwsmi",   VX (4,1113),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwsmf",   VX (4,1115),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"nmachhwo",  XO (4,  46,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmachhwo.", XO (4,  46,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"ps_merge01",        XOPS(4,560,0),  XOPS_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRB}},
-+{"ps_merge01.",       XOPS(4,560,1),  XOPS_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRB}},
-+{"evmwhssfa", VX (4,1127),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwlumia", VX (4,1128),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwhumia", VX (4,1132),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwhsmia", VX (4,1133),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwhsmfa", VX (4,1135),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwssfa",  VX (4,1139),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwumia",  VX (4,1144),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwsmia",  VX (4,1145),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwsmfa",  VX (4,1147),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vsubuwm",   VX (4,1152),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vavguw",    VX (4,1154),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vor",               VX (4,1156),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcmpequw.", VXR(4, 134,1),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"udi2fcm.",  APU(4, 579,0), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},
-+{"udi2fcm",   APU(4, 579,1), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},   
-+{"machhwsuo", XO (4,  76,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"machhwsuo.",        XO (4,  76,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"ps_merge10",        XOPS(4,592,0),  XOPS_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRB}},
-+{"ps_merge10.",       XOPS(4,592,1),  XOPS_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRB}},
-+{"evaddusiaaw",       VX (4,1216),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"evaddssiaaw",       VX (4,1217),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"evsubfusiaaw",VX (4,1218),  VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"evsubfssiaaw",VX (4,1219),  VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"evmra",     VX (4,1220),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"vxor",      VX (4,1220),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evdivws",   VX (4,1222),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vcmpeqfp.", VXR(4, 198,1),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"udi3fcm.",  APU(4, 611,0), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},
-+{"udi3fcm",   APU(4, 611,1), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},   
-+{"evdivwu",   VX (4,1223),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evaddumiaaw",       VX (4,1224),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"evaddsmiaaw",       VX (4,1225),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"evsubfumiaaw",VX (4,1226),  VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"evsubfsmiaaw",VX (4,1227),  VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA}},
-+{"machhwso",  XO (4, 108,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"machhwso.", XO (4, 108,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmachhwso", XO (4, 110,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmachhwso.",        XO (4, 110,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"ps_merge11",        XOPS(4,624,0),  XOPS_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRB}},
-+{"ps_merge11.",       XOPS(4,624,1),  XOPS_MASK,   PPCPS,     PPCNONE,        {FRT, FRA, FRB}},
-+{"evmheusiaaw",       VX (4,1280),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhessiaaw",       VX (4,1281),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vavgsb",    VX (4,1282),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evmhessfaaw",       VX (4,1283),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhousiaaw",       VX (4,1284),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vnor",      VX (4,1284),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evmhossiaaw",       VX (4,1285),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"udi4fcm.",  APU(4, 643,0), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},
-+{"udi4fcm",   APU(4, 643,1), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},
-+{"evmhossfaaw",       VX (4,1287),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmheumiaaw",       VX (4,1288),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhesmiaaw",       VX (4,1289),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhesmfaaw",       VX (4,1291),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhoumiaaw",       VX (4,1292),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhosmiaaw",       VX (4,1293),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhosmfaaw",       VX (4,1295),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"macchwuo",  XO (4, 140,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"macchwuo.", XO (4, 140,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"evmhegumiaa",       VX (4,1320),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhegsmiaa",       VX (4,1321),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhegsmfaa",       VX (4,1323),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhogumiaa",       VX (4,1324),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhogsmiaa",       VX (4,1325),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhogsmfaa",       VX (4,1327),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwlusiaaw",       VX (4,1344),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwlssiaaw",       VX (4,1345),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vavgsh",    VX (4,1346),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"udi5fcm.",  APU(4, 675,0), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},
-+{"udi5fcm",   APU(4, 675,1), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},
-+{"evmwlumiaaw",       VX (4,1352),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwlsmiaaw",       VX (4,1353),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwssfaa", VX (4,1363),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"macchwo",   XO (4, 172,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"evmwumiaa", VX (4,1368),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"macchwo.",  XO (4, 172,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"evmwsmiaa", VX (4,1369),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwsmfaa", VX (4,1371),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"nmacchwo",  XO (4, 174,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmacchwo.", XO (4, 174,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"evmheusianw",       VX (4,1408),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vsubcuw",   VX (4,1408),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evmhessianw",       VX (4,1409),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vavgsw",    VX (4,1410),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"evmhessfanw",       VX (4,1411),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhousianw",       VX (4,1412),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhossianw",       VX (4,1413),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"udi6fcm.",  APU(4, 707,0), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},
-+{"udi6fcm",   APU(4, 707,1), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},
-+{"evmhossfanw",       VX (4,1415),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmheumianw",       VX (4,1416),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhesmianw",       VX (4,1417),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhesmfanw",       VX (4,1419),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhoumianw",       VX (4,1420),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhosmianw",       VX (4,1421),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhosmfanw",       VX (4,1423),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"macchwsuo", XO (4, 204,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"macchwsuo.",        XO (4, 204,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"evmhegumian",       VX (4,1448),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhegsmian",       VX (4,1449),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhegsmfan",       VX (4,1451),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhogumian",       VX (4,1452),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhogsmian",       VX (4,1453),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmhogsmfan",       VX (4,1455),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwlusianw",       VX (4,1472),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwlssianw",       VX (4,1473),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"vcmpgefp.", VXR(4, 454,1),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"udi7fcm.",  APU(4, 739,0), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},
-+{"udi7fcm",   APU(4, 739,1), APU_MASK, PPC405|PPC440, PPCNONE,        {URT, URA, URB}},
-+{"evmwlumianw",       VX (4,1480),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwlsmianw",       VX (4,1481),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwssfan", VX (4,1491),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"macchwso",  XO (4, 236,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"evmwumian", VX (4,1496),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"macchwso.", XO (4, 236,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"evmwsmian", VX (4,1497),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"evmwsmfan", VX (4,1499),    VX_MASK,     PPCSPE,    PPCNONE,        {RS, RA, RB}},
-+{"nmacchwso", XO (4, 238,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmacchwso.",        XO (4, 238,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"vsububs",   VX (4,1536),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"mfvscr",    VX (4,1540),    VX_MASK,     PPCVEC,    PPCNONE,        {VD}},
-+{"vcmpgtub.", VXR(4, 518,1),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"udi8fcm.",  APU(4, 771,0),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"udi8fcm",   APU(4, 771,1),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"vsum4ubs",  VX (4,1544),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vsubuhs",   VX (4,1600),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"mtvscr",    VX (4,1604),    VX_MASK,     PPCVEC,    PPCNONE,        {VB}},
-+{"vcmpgtuh.", VXR(4, 582,1),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vsum4shs",  VX (4,1608),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"udi9fcm.",  APU(4, 804,0),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"udi9fcm",   APU(4, 804,1),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"vsubuws",   VX (4,1664),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcmpgtuw.", VXR(4, 646,1),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"udi10fcm.", APU(4, 835,0),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"udi10fcm",  APU(4, 835,1),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"vsum2sws",  VX (4,1672),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcmpgtfp.", VXR(4, 710,1),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"udi11fcm.", APU(4, 867,0),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"udi11fcm",  APU(4, 867,1),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"vsubsbs",   VX (4,1792),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcmpgtsb.", VXR(4, 774,1),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"udi12fcm.", APU(4, 899,0),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"udi12fcm",  APU(4, 899,1),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"vsum4sbs",  VX (4,1800),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"maclhwuo",  XO (4, 396,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"maclhwuo.", XO (4, 396,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"vsubshs",   VX (4,1856),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcmpgtsh.", VXR(4, 838,1),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"udi13fcm.", APU(4, 931,0),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"udi13fcm",  APU(4, 931,1),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"maclhwo",   XO (4, 428,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"maclhwo.",  XO (4, 428,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmaclhwo",  XO (4, 430,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmaclhwo.", XO (4, 430,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"vsubsws",   VX (4,1920),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"vcmpgtsw.", VXR(4, 902,1),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"udi14fcm.", APU(4, 963,0),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"udi14fcm",  APU(4, 963,1),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"vsumsws",   VX (4,1928),    VX_MASK,     PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"maclhwsuo", XO (4, 460,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"maclhwsuo.",        XO (4, 460,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"vcmpbfp.",  VXR(4, 966,1),  VXR_MASK,    PPCVEC,    PPCNONE,        {VD, VA, VB}},
-+{"udi15fcm.", APU(4, 995,0),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"udi15fcm",  APU(4, 995,1),  APU_MASK,    PPC440,    PPCNONE,        {URT, URA, URB}},
-+{"maclhwso",  XO (4, 492,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"maclhwso.", XO (4, 492,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmaclhwso", XO (4, 494,1,0),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"nmaclhwso.",        XO (4, 494,1,1),XO_MASK, PPC405|PPC440, PPCNONE,        {RT, RA, RB}},
-+{"dcbz_l",    X  (4,1014),    XRT_MASK,    PPCPS,     PPCNONE,        {RA, RB}},
-+
-+{"mulli",     OP(7),          OP_MASK,     PPCCOM,    PPCNONE,        {RT, RA, SI}},
-+{"muli",      OP(7),          OP_MASK,     PWRCOM,    PPCNONE,        {RT, RA, SI}},
-+
-+{"subfic",    OP(8),          OP_MASK,     PPCCOM,    PPCNONE,        {RT, RA, SI}},
-+{"sfi",               OP(8),          OP_MASK,     PWRCOM,    PPCNONE,        {RT, RA, SI}},
-+
-+{"dozi",      OP(9),          OP_MASK,     M601,      PPCNONE,        {RT, RA, SI}},
-+
-+{"cmplwi",    OPL(10,0),      OPL_MASK,    PPCCOM,    PPCNONE,        {OBF, RA, UI}},
-+{"cmpldi",    OPL(10,1),      OPL_MASK,    PPC64,     PPCNONE,        {OBF, RA, UI}},
-+{"cmpli",     OP(10),         OP_MASK,     PPC,       PPCNONE,        {BF, L, RA, UI}},
-+{"cmpli",     OP(10),         OP_MASK,     PWRCOM,    PPCNONE,        {BF, RA, UI}},
-+
-+{"cmpwi",     OPL(11,0),      OPL_MASK,    PPCCOM,    PPCNONE,        {OBF, RA, SI}},
-+{"cmpdi",     OPL(11,1),      OPL_MASK,    PPC64,     PPCNONE,        {OBF, RA, SI}},
-+{"cmpi",      OP(11),         OP_MASK,     PPC,       PPCNONE,        {BF, L, RA, SI}},
-+{"cmpi",      OP(11),         OP_MASK,     PWRCOM,    PPCNONE,        {BF, RA, SI}},
-+
-+{"addic",     OP(12),         OP_MASK,     PPCCOM,    PPCNONE,        {RT, RA, SI}},
-+{"ai",                OP(12),         OP_MASK,     PWRCOM,    PPCNONE,        {RT, RA, SI}},
-+{"subic",     OP(12),         OP_MASK,     PPCCOM,    PPCNONE,        {RT, RA, NSI}},
-+
-+{"addic.",    OP(13),         OP_MASK,     PPCCOM,    PPCNONE,        {RT, RA, SI}},
-+{"ai.",               OP(13),         OP_MASK,     PWRCOM,    PPCNONE,        {RT, RA, SI}},
-+{"subic.",    OP(13),         OP_MASK,     PPCCOM,    PPCNONE,        {RT, RA, NSI}},
-+
-+{"li",                OP(14),         DRA_MASK,    PPCCOM,    PPCNONE,        {RT, SI}},
-+{"lil",               OP(14),         DRA_MASK,    PWRCOM,    PPCNONE,        {RT, SI}},
-+{"addi",      OP(14),         OP_MASK,     PPCCOM,    PPCNONE,        {RT, RA0, SI}},
-+{"cal",               OP(14),         OP_MASK,     PWRCOM,    PPCNONE,        {RT, D, RA0}},
-+{"subi",      OP(14),         OP_MASK,     PPCCOM,    PPCNONE,        {RT, RA0, NSI}},
-+{"la",                OP(14),         OP_MASK,     PPCCOM,    PPCNONE,        {RT, D, RA0}},
-+
-+{"lis",               OP(15),         DRA_MASK,    PPCCOM,    PPCNONE,        {RT, SISIGNOPT}},
-+{"liu",               OP(15),         DRA_MASK,    PWRCOM,    PPCNONE,        {RT, SISIGNOPT}},
-+{"addis",     OP(15),         OP_MASK,     PPCCOM,    PPCNONE,        {RT, RA0, SISIGNOPT}},
-+{"cau",               OP(15),         OP_MASK,     PWRCOM,    PPCNONE,        {RT, RA0, SISIGNOPT}},
-+{"subis",     OP(15),         OP_MASK,     PPCCOM,    PPCNONE,        {RT, RA0, NSI}},
-+
-+{"bdnz-",    BBO(16,BODNZ,0,0),               BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDM}},
-+{"bdnz+",    BBO(16,BODNZ,0,0),               BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDP}},
-+{"bdnz",     BBO(16,BODNZ,0,0),               BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BD}},
-+{"bdn",      BBO(16,BODNZ,0,0),               BBOATBI_MASK,  PWRCOM,   PPCNONE,       {BD}},
-+{"bdnzl-",   BBO(16,BODNZ,0,1),               BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDM}},
-+{"bdnzl+",   BBO(16,BODNZ,0,1),               BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDP}},
-+{"bdnzl",    BBO(16,BODNZ,0,1),               BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BD}},
-+{"bdnl",     BBO(16,BODNZ,0,1),               BBOATBI_MASK,  PWRCOM,   PPCNONE,       {BD}},
-+{"bdnza-",   BBO(16,BODNZ,1,0),               BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDMA}},
-+{"bdnza+",   BBO(16,BODNZ,1,0),               BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDPA}},
-+{"bdnza",    BBO(16,BODNZ,1,0),               BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDA}},
-+{"bdna",     BBO(16,BODNZ,1,0),               BBOATBI_MASK,  PWRCOM,   PPCNONE,       {BDA}},
-+{"bdnzla-",  BBO(16,BODNZ,1,1),               BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDMA}},
-+{"bdnzla+",  BBO(16,BODNZ,1,1),               BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDPA}},
-+{"bdnzla",   BBO(16,BODNZ,1,1),               BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDA}},
-+{"bdnla",    BBO(16,BODNZ,1,1),               BBOATBI_MASK,  PWRCOM,   PPCNONE,       {BDA}},
-+{"bdz-",     BBO(16,BODZ,0,0),                BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDM}},
-+{"bdz+",     BBO(16,BODZ,0,0),                BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDP}},
-+{"bdz",      BBO(16,BODZ,0,0),                BBOATBI_MASK,  COM,      PPCNONE,       {BD}},
-+{"bdzl-",    BBO(16,BODZ,0,1),                BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDM}},
-+{"bdzl+",    BBO(16,BODZ,0,1),                BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDP}},
-+{"bdzl",     BBO(16,BODZ,0,1),                BBOATBI_MASK,  COM,      PPCNONE,       {BD}},
-+{"bdza-",    BBO(16,BODZ,1,0),                BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDMA}},
-+{"bdza+",    BBO(16,BODZ,1,0),                BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDPA}},
-+{"bdza",     BBO(16,BODZ,1,0),                BBOATBI_MASK,  COM,      PPCNONE,       {BDA}},
-+{"bdzla-",   BBO(16,BODZ,1,1),                BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDMA}},
-+{"bdzla+",   BBO(16,BODZ,1,1),                BBOATBI_MASK,  PPCCOM,   PPCNONE,       {BDPA}},
-+{"bdzla",    BBO(16,BODZ,1,1),                BBOATBI_MASK,  COM,      PPCNONE,       {BDA}},
-+
-+{"bge-",     BBOCB(16,BOF,CBLT,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bge+",     BBOCB(16,BOF,CBLT,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bge",      BBOCB(16,BOF,CBLT,0,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"bnl-",     BBOCB(16,BOF,CBLT,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bnl+",     BBOCB(16,BOF,CBLT,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bnl",      BBOCB(16,BOF,CBLT,0,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"bgel-",    BBOCB(16,BOF,CBLT,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bgel+",    BBOCB(16,BOF,CBLT,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bgel",     BBOCB(16,BOF,CBLT,0,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"bnll-",    BBOCB(16,BOF,CBLT,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bnll+",    BBOCB(16,BOF,CBLT,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bnll",     BBOCB(16,BOF,CBLT,0,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"bgea-",    BBOCB(16,BOF,CBLT,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bgea+",    BBOCB(16,BOF,CBLT,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bgea",     BBOCB(16,BOF,CBLT,1,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"bnla-",    BBOCB(16,BOF,CBLT,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bnla+",    BBOCB(16,BOF,CBLT,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bnla",     BBOCB(16,BOF,CBLT,1,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"bgela-",   BBOCB(16,BOF,CBLT,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bgela+",   BBOCB(16,BOF,CBLT,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bgela",    BBOCB(16,BOF,CBLT,1,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"bnlla-",   BBOCB(16,BOF,CBLT,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bnlla+",   BBOCB(16,BOF,CBLT,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bnlla",    BBOCB(16,BOF,CBLT,1,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"ble-",     BBOCB(16,BOF,CBGT,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"ble+",     BBOCB(16,BOF,CBGT,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"ble",      BBOCB(16,BOF,CBGT,0,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"bng-",     BBOCB(16,BOF,CBGT,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bng+",     BBOCB(16,BOF,CBGT,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bng",      BBOCB(16,BOF,CBGT,0,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"blel-",    BBOCB(16,BOF,CBGT,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"blel+",    BBOCB(16,BOF,CBGT,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"blel",     BBOCB(16,BOF,CBGT,0,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"bngl-",    BBOCB(16,BOF,CBGT,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bngl+",    BBOCB(16,BOF,CBGT,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bngl",     BBOCB(16,BOF,CBGT,0,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"blea-",    BBOCB(16,BOF,CBGT,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"blea+",    BBOCB(16,BOF,CBGT,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"blea",     BBOCB(16,BOF,CBGT,1,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"bnga-",    BBOCB(16,BOF,CBGT,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bnga+",    BBOCB(16,BOF,CBGT,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bnga",     BBOCB(16,BOF,CBGT,1,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"blela-",   BBOCB(16,BOF,CBGT,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"blela+",   BBOCB(16,BOF,CBGT,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"blela",    BBOCB(16,BOF,CBGT,1,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"bngla-",   BBOCB(16,BOF,CBGT,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bngla+",   BBOCB(16,BOF,CBGT,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bngla",    BBOCB(16,BOF,CBGT,1,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"bne-",     BBOCB(16,BOF,CBEQ,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bne+",     BBOCB(16,BOF,CBEQ,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bne",      BBOCB(16,BOF,CBEQ,0,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"bnel-",    BBOCB(16,BOF,CBEQ,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bnel+",    BBOCB(16,BOF,CBEQ,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bnel",     BBOCB(16,BOF,CBEQ,0,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"bnea-",    BBOCB(16,BOF,CBEQ,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bnea+",    BBOCB(16,BOF,CBEQ,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bnea",     BBOCB(16,BOF,CBEQ,1,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"bnela-",   BBOCB(16,BOF,CBEQ,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bnela+",   BBOCB(16,BOF,CBEQ,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bnela",    BBOCB(16,BOF,CBEQ,1,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"bns-",     BBOCB(16,BOF,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bns+",     BBOCB(16,BOF,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bns",      BBOCB(16,BOF,CBSO,0,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"bnu-",     BBOCB(16,BOF,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bnu+",     BBOCB(16,BOF,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bnu",      BBOCB(16,BOF,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BD}},
-+{"bnsl-",    BBOCB(16,BOF,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bnsl+",    BBOCB(16,BOF,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bnsl",     BBOCB(16,BOF,CBSO,0,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"bnul-",    BBOCB(16,BOF,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bnul+",    BBOCB(16,BOF,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bnul",     BBOCB(16,BOF,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BD}},
-+{"bnsa-",    BBOCB(16,BOF,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bnsa+",    BBOCB(16,BOF,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bnsa",     BBOCB(16,BOF,CBSO,1,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"bnua-",    BBOCB(16,BOF,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bnua+",    BBOCB(16,BOF,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bnua",     BBOCB(16,BOF,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDA}},
-+{"bnsla-",   BBOCB(16,BOF,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bnsla+",   BBOCB(16,BOF,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bnsla",    BBOCB(16,BOF,CBSO,1,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"bnula-",   BBOCB(16,BOF,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bnula+",   BBOCB(16,BOF,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bnula",    BBOCB(16,BOF,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDA}},
-+
-+{"blt-",     BBOCB(16,BOT,CBLT,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"blt+",     BBOCB(16,BOT,CBLT,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"blt",      BBOCB(16,BOT,CBLT,0,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"bltl-",    BBOCB(16,BOT,CBLT,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bltl+",    BBOCB(16,BOT,CBLT,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bltl",     BBOCB(16,BOT,CBLT,0,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"blta-",    BBOCB(16,BOT,CBLT,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"blta+",    BBOCB(16,BOT,CBLT,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"blta",     BBOCB(16,BOT,CBLT,1,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"bltla-",   BBOCB(16,BOT,CBLT,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bltla+",   BBOCB(16,BOT,CBLT,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bltla",    BBOCB(16,BOT,CBLT,1,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"bgt-",     BBOCB(16,BOT,CBGT,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bgt+",     BBOCB(16,BOT,CBGT,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bgt",      BBOCB(16,BOT,CBGT,0,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"bgtl-",    BBOCB(16,BOT,CBGT,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bgtl+",    BBOCB(16,BOT,CBGT,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bgtl",     BBOCB(16,BOT,CBGT,0,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"bgta-",    BBOCB(16,BOT,CBGT,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bgta+",    BBOCB(16,BOT,CBGT,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bgta",     BBOCB(16,BOT,CBGT,1,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"bgtla-",   BBOCB(16,BOT,CBGT,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bgtla+",   BBOCB(16,BOT,CBGT,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bgtla",    BBOCB(16,BOT,CBGT,1,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"beq-",     BBOCB(16,BOT,CBEQ,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"beq+",     BBOCB(16,BOT,CBEQ,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"beq",      BBOCB(16,BOT,CBEQ,0,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"beql-",    BBOCB(16,BOT,CBEQ,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"beql+",    BBOCB(16,BOT,CBEQ,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"beql",     BBOCB(16,BOT,CBEQ,0,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"beqa-",    BBOCB(16,BOT,CBEQ,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"beqa+",    BBOCB(16,BOT,CBEQ,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"beqa",     BBOCB(16,BOT,CBEQ,1,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"beqla-",   BBOCB(16,BOT,CBEQ,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"beqla+",   BBOCB(16,BOT,CBEQ,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"beqla",    BBOCB(16,BOT,CBEQ,1,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"bso-",     BBOCB(16,BOT,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bso+",     BBOCB(16,BOT,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bso",      BBOCB(16,BOT,CBSO,0,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"bun-",     BBOCB(16,BOT,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bun+",     BBOCB(16,BOT,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bun",      BBOCB(16,BOT,CBSO,0,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BD}},
-+{"bsol-",    BBOCB(16,BOT,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bsol+",    BBOCB(16,BOT,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bsol",     BBOCB(16,BOT,CBSO,0,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BD}},
-+{"bunl-",    BBOCB(16,BOT,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDM}},
-+{"bunl+",    BBOCB(16,BOT,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDP}},
-+{"bunl",     BBOCB(16,BOT,CBSO,0,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BD}},
-+{"bsoa-",    BBOCB(16,BOT,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bsoa+",    BBOCB(16,BOT,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bsoa",     BBOCB(16,BOT,CBSO,1,0),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"buna-",    BBOCB(16,BOT,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"buna+",    BBOCB(16,BOT,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"buna",     BBOCB(16,BOT,CBSO,1,0),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDA}},
-+{"bsola-",   BBOCB(16,BOT,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bsola+",   BBOCB(16,BOT,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bsola",    BBOCB(16,BOT,CBSO,1,1),  BBOATCB_MASK,  COM,      PPCNONE,       {CR, BDA}},
-+{"bunla-",   BBOCB(16,BOT,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDMA}},
-+{"bunla+",   BBOCB(16,BOT,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDPA}},
-+{"bunla",    BBOCB(16,BOT,CBSO,1,1),  BBOATCB_MASK,  PPCCOM,   PPCNONE,       {CR, BDA}},
-+
-+{"bdnzf-",   BBO(16,BODNZF,0,0),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDM}},
-+{"bdnzf+",   BBO(16,BODNZF,0,0),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDP}},
-+{"bdnzf",    BBO(16,BODNZF,0,0),      BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BD}},
-+{"bdnzfl-",  BBO(16,BODNZF,0,1),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDM}},
-+{"bdnzfl+",  BBO(16,BODNZF,0,1),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDP}},
-+{"bdnzfl",   BBO(16,BODNZF,0,1),      BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BD}},
-+{"bdnzfa-",  BBO(16,BODNZF,1,0),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDMA}},
-+{"bdnzfa+",  BBO(16,BODNZF,1,0),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDPA}},
-+{"bdnzfa",   BBO(16,BODNZF,1,0),      BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BDA}},
-+{"bdnzfla-", BBO(16,BODNZF,1,1),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDMA}},
-+{"bdnzfla+", BBO(16,BODNZF,1,1),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDPA}},
-+{"bdnzfla",  BBO(16,BODNZF,1,1),      BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BDA}},
-+{"bdzf-",    BBO(16,BODZF,0,0),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDM}},
-+{"bdzf+",    BBO(16,BODZF,0,0),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDP}},
-+{"bdzf",     BBO(16,BODZF,0,0),               BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BD}},
-+{"bdzfl-",   BBO(16,BODZF,0,1),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDM}},
-+{"bdzfl+",   BBO(16,BODZF,0,1),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDP}},
-+{"bdzfl",    BBO(16,BODZF,0,1),               BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BD}},
-+{"bdzfa-",   BBO(16,BODZF,1,0),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDMA}},
-+{"bdzfa+",   BBO(16,BODZF,1,0),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDPA}},
-+{"bdzfa",    BBO(16,BODZF,1,0),               BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BDA}},
-+{"bdzfla-",  BBO(16,BODZF,1,1),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDMA}},
-+{"bdzfla+",  BBO(16,BODZF,1,1),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDPA}},
-+{"bdzfla",   BBO(16,BODZF,1,1),               BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BDA}},
-+
-+{"bf-",      BBO(16,BOF,0,0),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDM}},
-+{"bf+",      BBO(16,BOF,0,0),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDP}},
-+{"bf",             BBO(16,BOF,0,0),           BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BD}},
-+{"bbf",      BBO(16,BOF,0,0),         BBOAT_MASK,    PWRCOM,   PPCNONE,       {BI, BD}},
-+{"bfl-",     BBO(16,BOF,0,1),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDM}},
-+{"bfl+",     BBO(16,BOF,0,1),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDP}},
-+{"bfl",      BBO(16,BOF,0,1),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BD}},
-+{"bbfl",     BBO(16,BOF,0,1),         BBOAT_MASK,    PWRCOM,   PPCNONE,       {BI, BD}},
-+{"bfa-",     BBO(16,BOF,1,0),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDMA}},
-+{"bfa+",     BBO(16,BOF,1,0),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDPA}},
-+{"bfa",      BBO(16,BOF,1,0),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDA}},
-+{"bbfa",     BBO(16,BOF,1,0),         BBOAT_MASK,    PWRCOM,   PPCNONE,       {BI, BDA}},
-+{"bfla-",    BBO(16,BOF,1,1),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDMA}},
-+{"bfla+",    BBO(16,BOF,1,1),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDPA}},
-+{"bfla",     BBO(16,BOF,1,1),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDA}},
-+{"bbfla",    BBO(16,BOF,1,1),         BBOAT_MASK,    PWRCOM,   PPCNONE,       {BI, BDA}},
-+
-+{"bdnzt-",   BBO(16,BODNZT,0,0),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDM}},
-+{"bdnzt+",   BBO(16,BODNZT,0,0),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDP}},
-+{"bdnzt",    BBO(16,BODNZT,0,0),      BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BD}},
-+{"bdnztl-",  BBO(16,BODNZT,0,1),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDM}},
-+{"bdnztl+",  BBO(16,BODNZT,0,1),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDP}},
-+{"bdnztl",   BBO(16,BODNZT,0,1),      BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BD}},
-+{"bdnzta-",  BBO(16,BODNZT,1,0),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDMA}},
-+{"bdnzta+",  BBO(16,BODNZT,1,0),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDPA}},
-+{"bdnzta",   BBO(16,BODNZT,1,0),      BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BDA}},
-+{"bdnztla-", BBO(16,BODNZT,1,1),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDMA}},
-+{"bdnztla+", BBO(16,BODNZT,1,1),      BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDPA}},
-+{"bdnztla",  BBO(16,BODNZT,1,1),      BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BDA}},
-+{"bdzt-",    BBO(16,BODZT,0,0),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDM}},
-+{"bdzt+",    BBO(16,BODZT,0,0),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDP}},
-+{"bdzt",     BBO(16,BODZT,0,0),               BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BD}},
-+{"bdztl-",   BBO(16,BODZT,0,1),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDM}},
-+{"bdztl+",   BBO(16,BODZT,0,1),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDP}},
-+{"bdztl",    BBO(16,BODZT,0,1),               BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BD}},
-+{"bdzta-",   BBO(16,BODZT,1,0),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDMA}},
-+{"bdzta+",   BBO(16,BODZT,1,0),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDPA}},
-+{"bdzta",    BBO(16,BODZT,1,0),               BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BDA}},
-+{"bdztla-",  BBO(16,BODZT,1,1),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDMA}},
-+{"bdztla+",  BBO(16,BODZT,1,1),               BBOY_MASK,     PPCCOM,   POWER4,        {BI, BDPA}},
-+{"bdztla",   BBO(16,BODZT,1,1),               BBOY_MASK,     PPCCOM,   PPCNONE,       {BI, BDA}},
-+
-+{"bt-",      BBO(16,BOT,0,0),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDM}},
-+{"bt+",      BBO(16,BOT,0,0),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDP}},
-+{"bt",             BBO(16,BOT,0,0),           BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BD}},
-+{"bbt",      BBO(16,BOT,0,0),         BBOAT_MASK,    PWRCOM,   PPCNONE,       {BI, BD}},
-+{"btl-",     BBO(16,BOT,0,1),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDM}},
-+{"btl+",     BBO(16,BOT,0,1),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDP}},
-+{"btl",      BBO(16,BOT,0,1),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BD}},
-+{"bbtl",     BBO(16,BOT,0,1),         BBOAT_MASK,    PWRCOM,   PPCNONE,       {BI, BD}},
-+{"bta-",     BBO(16,BOT,1,0),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDMA}},
-+{"bta+",     BBO(16,BOT,1,0),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDPA}},
-+{"bta",      BBO(16,BOT,1,0),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDA}},
-+{"bbta",     BBO(16,BOT,1,0),         BBOAT_MASK,    PWRCOM,   PPCNONE,       {BI, BDA}},
-+{"btla-",    BBO(16,BOT,1,1),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDMA}},
-+{"btla+",    BBO(16,BOT,1,1),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDPA}},
-+{"btla",     BBO(16,BOT,1,1),         BBOAT_MASK,    PPCCOM,   PPCNONE,       {BI, BDA}},
-+{"bbtla",    BBO(16,BOT,1,1),         BBOAT_MASK,    PWRCOM,   PPCNONE,       {BI, BDA}},
-+
-+{"bc-",               B(16,0,0),      B_MASK,      PPCCOM,    PPCNONE,        {BOE, BI, BDM}},
-+{"bc+",               B(16,0,0),      B_MASK,      PPCCOM,    PPCNONE,        {BOE, BI, BDP}},
-+{"bc",                B(16,0,0),      B_MASK,      COM,       PPCNONE,        {BO, BI, BD}},
-+{"bcl-",      B(16,0,1),      B_MASK,      PPCCOM,    PPCNONE,        {BOE, BI, BDM}},
-+{"bcl+",      B(16,0,1),      B_MASK,      PPCCOM,    PPCNONE,        {BOE, BI, BDP}},
-+{"bcl",               B(16,0,1),      B_MASK,      COM,       PPCNONE,        {BO, BI, BD}},
-+{"bca-",      B(16,1,0),      B_MASK,      PPCCOM,    PPCNONE,        {BOE, BI, BDMA}},
-+{"bca+",      B(16,1,0),      B_MASK,      PPCCOM,    PPCNONE,        {BOE, BI, BDPA}},
-+{"bca",               B(16,1,0),      B_MASK,      COM,       PPCNONE,        {BO, BI, BDA}},
-+{"bcla-",     B(16,1,1),      B_MASK,      PPCCOM,    PPCNONE,        {BOE, BI, BDMA}},
-+{"bcla+",     B(16,1,1),      B_MASK,      PPCCOM,    PPCNONE,        {BOE, BI, BDPA}},
-+{"bcla",      B(16,1,1),      B_MASK,      COM,       PPCNONE,        {BO, BI, BDA}},
-+
-+{"svc",               SC(17,0,0),     SC_MASK,     POWER,     PPCNONE,        {SVC_LEV, FL1, FL2}},
-+{"svcl",      SC(17,0,1),     SC_MASK,     POWER,     PPCNONE,        {SVC_LEV, FL1, FL2}},
-+{"sc",                SC(17,1,0),     SC_MASK,     PPC,       PPCNONE,        {LEV}},
-+{"svca",      SC(17,1,0),     SC_MASK,     PWRCOM,    PPCNONE,        {SV}},
-+{"svcla",     SC(17,1,1),     SC_MASK,     POWER,     PPCNONE,        {SV}},
-+
-+{"b",         B(18,0,0),      B_MASK,      COM,       PPCNONE,        {LI}},
-+{"bl",                B(18,0,1),      B_MASK,      COM,       PPCNONE,        {LI}},
-+{"ba",                B(18,1,0),      B_MASK,      COM,       PPCNONE,        {LIA}},
-+{"bla",               B(18,1,1),      B_MASK,      COM,       PPCNONE,        {LIA}},
-+
-+{"mcrf",      XL(19,0), XLBB_MASK|(3<<21)|(3<<16), COM,       PPCNONE,        {BF, BFA}},
-+
-+{"bdnzlr",   XLO(19,BODNZ,16,0),      XLBOBIBB_MASK, PPCCOM,   PPCNONE,       {0}},
-+{"bdnzlr-",  XLO(19,BODNZ,16,0),      XLBOBIBB_MASK, PPCCOM,   POWER4,        {0}},
-+{"bdnzlrl",  XLO(19,BODNZ,16,1),      XLBOBIBB_MASK, PPCCOM,   PPCNONE,       {0}},
-+{"bdnzlrl-", XLO(19,BODNZ,16,1),      XLBOBIBB_MASK, PPCCOM,   POWER4,        {0}},
-+{"bdnzlr+",  XLO(19,BODNZP,16,0),     XLBOBIBB_MASK, PPCCOM,   POWER4,        {0}},
-+{"bdnzlrl+", XLO(19,BODNZP,16,1),     XLBOBIBB_MASK, PPCCOM,   POWER4,        {0}},
-+{"bdzlr",    XLO(19,BODZ,16,0),               XLBOBIBB_MASK, PPCCOM,   PPCNONE,       {0}},
-+{"bdzlr-",   XLO(19,BODZ,16,0),               XLBOBIBB_MASK, PPCCOM,   POWER4,        {0}},
-+{"bdzlrl",   XLO(19,BODZ,16,1),               XLBOBIBB_MASK, PPCCOM,   PPCNONE,       {0}},
-+{"bdzlrl-",  XLO(19,BODZ,16,1),               XLBOBIBB_MASK, PPCCOM,   POWER4,        {0}},
-+{"bdzlr+",   XLO(19,BODZP,16,0),      XLBOBIBB_MASK, PPCCOM,   POWER4,        {0}},
-+{"bdzlrl+",  XLO(19,BODZP,16,1),      XLBOBIBB_MASK, PPCCOM,   POWER4,        {0}},
-+{"blr",      XLO(19,BOU,16,0),                XLBOBIBB_MASK, PPCCOM,   PPCNONE,       {0}},
-+{"br",             XLO(19,BOU,16,0),          XLBOBIBB_MASK, PWRCOM,   PPCNONE,       {0}},
-+{"blrl",     XLO(19,BOU,16,1),                XLBOBIBB_MASK, PPCCOM,   PPCNONE,       {0}},
-+{"brl",      XLO(19,BOU,16,1),                XLBOBIBB_MASK, PWRCOM,   PPCNONE,       {0}},
-+{"bdnzlr-",  XLO(19,BODNZM4,16,0),    XLBOBIBB_MASK, POWER4,   PPCNONE,       {0}},
-+{"bdnzlrl-", XLO(19,BODNZM4,16,1),    XLBOBIBB_MASK, POWER4,   PPCNONE,       {0}},
-+{"bdnzlr+",  XLO(19,BODNZP4,16,0),    XLBOBIBB_MASK, POWER4,   PPCNONE,       {0}},
-+{"bdnzlrl+", XLO(19,BODNZP4,16,1),    XLBOBIBB_MASK, POWER4,   PPCNONE,       {0}},
-+{"bdzlr-",   XLO(19,BODZM4,16,0),     XLBOBIBB_MASK, POWER4,   PPCNONE,       {0}},
-+{"bdzlrl-",  XLO(19,BODZM4,16,1),     XLBOBIBB_MASK, POWER4,   PPCNONE,       {0}},
-+{"bdzlr+",   XLO(19,BODZP4,16,0),     XLBOBIBB_MASK, POWER4,   PPCNONE,       {0}},
-+{"bdzlrl+",  XLO(19,BODZP4,16,1),     XLBOBIBB_MASK, POWER4,   PPCNONE,       {0}},
-+
-+{"bgelr",    XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bgelr-",   XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bger",     XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bnllr",    XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnllr-",   XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnlr",     XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bgelrl",   XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bgelrl-",  XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgerl",    XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bnllrl",   XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnllrl-",  XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnlrl",    XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"blelr",    XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"blelr-",   XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bler",     XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bnglr",    XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnglr-",   XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bngr",     XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"blelrl",   XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"blelrl-",  XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"blerl",    XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bnglrl",   XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnglrl-",  XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bngrl",    XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bnelr",    XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnelr-",   XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bner",     XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bnelrl",   XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnelrl-",  XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnerl",    XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bnslr",    XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnslr-",   XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnsr",     XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bnulr",    XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnulr-",   XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnslrl",   XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnslrl-",  XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnsrl",    XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bnulrl",   XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnulrl-",  XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgelr+",   XLOCB(19,BOFP,CBLT,16,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnllr+",   XLOCB(19,BOFP,CBLT,16,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgelrl+",  XLOCB(19,BOFP,CBLT,16,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnllrl+",  XLOCB(19,BOFP,CBLT,16,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"blelr+",   XLOCB(19,BOFP,CBGT,16,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnglr+",   XLOCB(19,BOFP,CBGT,16,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"blelrl+",  XLOCB(19,BOFP,CBGT,16,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnglrl+",  XLOCB(19,BOFP,CBGT,16,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnelr+",   XLOCB(19,BOFP,CBEQ,16,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnelrl+",  XLOCB(19,BOFP,CBEQ,16,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnslr+",   XLOCB(19,BOFP,CBSO,16,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnulr+",   XLOCB(19,BOFP,CBSO,16,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnslrl+",  XLOCB(19,BOFP,CBSO,16,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnulrl+",  XLOCB(19,BOFP,CBSO,16,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgelr-",   XLOCB(19,BOFM4,CBLT,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnllr-",   XLOCB(19,BOFM4,CBLT,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bgelrl-",  XLOCB(19,BOFM4,CBLT,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnllrl-",  XLOCB(19,BOFM4,CBLT,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"blelr-",   XLOCB(19,BOFM4,CBGT,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnglr-",   XLOCB(19,BOFM4,CBGT,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"blelrl-",  XLOCB(19,BOFM4,CBGT,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnglrl-",  XLOCB(19,BOFM4,CBGT,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnelr-",   XLOCB(19,BOFM4,CBEQ,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnelrl-",  XLOCB(19,BOFM4,CBEQ,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnslr-",   XLOCB(19,BOFM4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnulr-",   XLOCB(19,BOFM4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnslrl-",  XLOCB(19,BOFM4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnulrl-",  XLOCB(19,BOFM4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bgelr+",   XLOCB(19,BOFP4,CBLT,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnllr+",   XLOCB(19,BOFP4,CBLT,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bgelrl+",  XLOCB(19,BOFP4,CBLT,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnllrl+",  XLOCB(19,BOFP4,CBLT,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"blelr+",   XLOCB(19,BOFP4,CBGT,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnglr+",   XLOCB(19,BOFP4,CBGT,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"blelrl+",  XLOCB(19,BOFP4,CBGT,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnglrl+",  XLOCB(19,BOFP4,CBGT,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnelr+",   XLOCB(19,BOFP4,CBEQ,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnelrl+",  XLOCB(19,BOFP4,CBEQ,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnslr+",   XLOCB(19,BOFP4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnulr+",   XLOCB(19,BOFP4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnslrl+",  XLOCB(19,BOFP4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnulrl+",  XLOCB(19,BOFP4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bltlr",    XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bltlr-",   XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bltr",     XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bltlrl",   XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bltlrl-",  XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bltrl",    XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bgtlr",    XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bgtlr-",   XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgtr",     XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bgtlrl",   XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bgtlrl-",  XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgtrl",    XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"beqlr",    XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"beqlr-",   XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"beqr",     XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"beqlrl",   XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"beqlrl-",  XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"beqrl",    XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bsolr",    XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bsolr-",   XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bsor",     XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bunlr",    XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bunlr-",   XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bsolrl",   XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bsolrl-",  XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bsorl",    XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PWRCOM,   PPCNONE,       {CR}},
-+{"bunlrl",   XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bunlrl-",  XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bltlr+",   XLOCB(19,BOTP,CBLT,16,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bltlrl+",  XLOCB(19,BOTP,CBLT,16,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgtlr+",   XLOCB(19,BOTP,CBGT,16,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgtlrl+",  XLOCB(19,BOTP,CBGT,16,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"beqlr+",   XLOCB(19,BOTP,CBEQ,16,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"beqlrl+",  XLOCB(19,BOTP,CBEQ,16,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bsolr+",   XLOCB(19,BOTP,CBSO,16,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bunlr+",   XLOCB(19,BOTP,CBSO,16,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bsolrl+",  XLOCB(19,BOTP,CBSO,16,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bunlrl+",  XLOCB(19,BOTP,CBSO,16,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bltlr-",   XLOCB(19,BOTM4,CBLT,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bltlrl-",  XLOCB(19,BOTM4,CBLT,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bgtlr-",   XLOCB(19,BOTM4,CBGT,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bgtlrl-",  XLOCB(19,BOTM4,CBGT,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"beqlr-",   XLOCB(19,BOTM4,CBEQ,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"beqlrl-",  XLOCB(19,BOTM4,CBEQ,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bsolr-",   XLOCB(19,BOTM4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bunlr-",   XLOCB(19,BOTM4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bsolrl-",  XLOCB(19,BOTM4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bunlrl-",  XLOCB(19,BOTM4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bltlr+",   XLOCB(19,BOTP4,CBLT,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bltlrl+",  XLOCB(19,BOTP4,CBLT,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bgtlr+",   XLOCB(19,BOTP4,CBGT,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bgtlrl+",  XLOCB(19,BOTP4,CBGT,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"beqlr+",   XLOCB(19,BOTP4,CBEQ,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"beqlrl+",  XLOCB(19,BOTP4,CBEQ,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bsolr+",   XLOCB(19,BOTP4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bunlr+",   XLOCB(19,BOTP4,CBSO,16,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bsolrl+",  XLOCB(19,BOTP4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bunlrl+",  XLOCB(19,BOTP4,CBSO,16,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+
-+{"bdnzflr",  XLO(19,BODNZF,16,0),     XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"bdnzflr-", XLO(19,BODNZF,16,0),     XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bdnzflrl", XLO(19,BODNZF,16,1),     XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"bdnzflrl-",XLO(19,BODNZF,16,1),     XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bdnzflr+", XLO(19,BODNZFP,16,0),    XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bdnzflrl+",XLO(19,BODNZFP,16,1),    XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bdzflr",   XLO(19,BODZF,16,0),      XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"bdzflr-",  XLO(19,BODZF,16,0),      XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bdzflrl",  XLO(19,BODZF,16,1),      XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"bdzflrl-", XLO(19,BODZF,16,1),      XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bdzflr+",  XLO(19,BODZFP,16,0),     XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bdzflrl+", XLO(19,BODZFP,16,1),     XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bflr",     XLO(19,BOF,16,0),                XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"bflr-",    XLO(19,BOF,16,0),                XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bbfr",     XLO(19,BOF,16,0),                XLBOBB_MASK,   PWRCOM,   PPCNONE,       {BI}},
-+{"bflrl",    XLO(19,BOF,16,1),                XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"bflrl-",   XLO(19,BOF,16,1),                XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bbfrl",    XLO(19,BOF,16,1),                XLBOBB_MASK,   PWRCOM,   PPCNONE,       {BI}},
-+{"bflr+",    XLO(19,BOFP,16,0),               XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bflrl+",   XLO(19,BOFP,16,1),               XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bflr-",    XLO(19,BOFM4,16,0),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+{"bflrl-",   XLO(19,BOFM4,16,1),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+{"bflr+",    XLO(19,BOFP4,16,0),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+{"bflrl+",   XLO(19,BOFP4,16,1),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+{"bdnztlr",  XLO(19,BODNZT,16,0),     XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"bdnztlr-", XLO(19,BODNZT,16,0),     XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bdnztlrl", XLO(19,BODNZT,16,1),     XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"bdnztlrl-",XLO(19,BODNZT,16,1),     XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bdnztlr+", XLO(19,BODNZTP,16,0),    XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bdnztlrl+",XLO(19,BODNZTP,16,1),    XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bdztlr",   XLO(19,BODZT,16,0),      XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"bdztlr-",  XLO(19,BODZT,16,0),      XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bdztlrl",  XLO(19,BODZT,16,1),      XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"bdztlrl-", XLO(19,BODZT,16,1),      XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bdztlr+",  XLO(19,BODZTP,16,0),     XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bdztlrl+", XLO(19,BODZTP,16,1),     XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"btlr",     XLO(19,BOT,16,0),                XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"btlr-",    XLO(19,BOT,16,0),                XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bbtr",     XLO(19,BOT,16,0),                XLBOBB_MASK,   PWRCOM,   PPCNONE,       {BI}},
-+{"btlrl",    XLO(19,BOT,16,1),                XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"btlrl-",   XLO(19,BOT,16,1),                XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bbtrl",    XLO(19,BOT,16,1),                XLBOBB_MASK,   PWRCOM,   PPCNONE,       {BI}},
-+{"btlr+",    XLO(19,BOTP,16,0),               XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"btlrl+",   XLO(19,BOTP,16,1),               XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"btlr-",    XLO(19,BOTM4,16,0),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+{"btlrl-",   XLO(19,BOTM4,16,1),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+{"btlr+",    XLO(19,BOTP4,16,0),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+{"btlrl+",   XLO(19,BOTP4,16,1),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+
-+{"bclr-",    XLYLK(19,16,0,0),                XLYBB_MASK,    PPCCOM,   PPCNONE,       {BOE, BI}},
-+{"bclrl-",   XLYLK(19,16,0,1),                XLYBB_MASK,    PPCCOM,   PPCNONE,       {BOE, BI}},
-+{"bclr+",    XLYLK(19,16,1,0),                XLYBB_MASK,    PPCCOM,   PPCNONE,       {BOE, BI}},
-+{"bclrl+",   XLYLK(19,16,1,1),                XLYBB_MASK,    PPCCOM,   PPCNONE,       {BOE, BI}},
-+{"bclr",     XLLK(19,16,0),           XLBH_MASK,     PPCCOM,   PPCNONE,       {BO, BI, BH}},
-+{"bcr",      XLLK(19,16,0),           XLBB_MASK,     PWRCOM,   PPCNONE,       {BO, BI}},
-+{"bclrl",    XLLK(19,16,1),           XLBH_MASK,     PPCCOM,   PPCNONE,       {BO, BI, BH}},
-+{"bcrl",     XLLK(19,16,1),           XLBB_MASK,     PWRCOM,   PPCNONE,       {BO, BI}},
-+
-+{"rfid",      XL(19,18),      0xffffffff,  PPC64,     PPCNONE,        {0}},
-+
-+{"crnot",     XL(19,33),      XL_MASK,     PPCCOM,    PPCNONE,        {BT, BA, BBA}},
-+{"crnor",     XL(19,33),      XL_MASK,     COM,       PPCNONE,        {BT, BA, BB}},
-+{"rfmci",     X(19,38),       0xffffffff,  PPCRFMCI,  PPCNONE,        {0}},
-+
-+{"rfdi",      XL(19,39),      0xffffffff,  E500MC,    PPCNONE,        {0}},
-+{"rfi",               XL(19,50),      0xffffffff,  COM,       PPCNONE,        {0}},
-+{"rfci",      XL(19,51), 0xffffffff, PPC403|BOOKE|PPCE300, PPCNONE,   {0}},
-+
-+{"rfsvc",     XL(19,82),      0xffffffff,  POWER,     PPCNONE,        {0}},
-+
-+{"rfgi",      XL(19,102),     0xffffffff,  E500MC,    PPCNONE,        {0}},
-+
-+{"crandc",    XL(19,129),     XL_MASK,     COM,       PPCNONE,        {BT, BA, BB}},
-+
-+{"isync",     XL(19,150),     0xffffffff,  PPCCOM,    PPCNONE,        {0}},
-+{"ics",               XL(19,150),     0xffffffff,  PWRCOM,    PPCNONE,        {0}},
-+
-+{"crclr",     XL(19,193),     XL_MASK,     PPCCOM,    PPCNONE,        {BT, BAT, BBA}},
-+{"crxor",     XL(19,193),     XL_MASK,     COM,       PPCNONE,        {BT, BA, BB}},
-+
-+{"dnh",               X(19,198),      X_MASK,      E500MC,    PPCNONE,        {DUI, DUIS}},
-+
-+{"crnand",    XL(19,225),     XL_MASK,     COM,       PPCNONE,        {BT, BA, BB}},
-+
-+{"crand",     XL(19,257),     XL_MASK,     COM,       PPCNONE,        {BT, BA, BB}},
-+
-+{"hrfid",     XL(19,274),     0xffffffff, POWER5|CELL, PPCNONE,       {0}},
-+
-+{"crset",     XL(19,289),     XL_MASK,     PPCCOM,    PPCNONE,        {BT, BAT, BBA}},
-+{"creqv",     XL(19,289),     XL_MASK,     COM,       PPCNONE,        {BT, BA, BB}},
-+
-+{"doze",      XL(19,402),     0xffffffff,  POWER6,    PPCNONE,        {0}},
-+
-+{"crorc",     XL(19,417),     XL_MASK,     COM,       PPCNONE,        {BT, BA, BB}},
-+
-+{"nap",               XL(19,434),     0xffffffff,  POWER6,    PPCNONE,        {0}},
-+
-+{"crmove",    XL(19,449),     XL_MASK,     PPCCOM,    PPCNONE,        {BT, BA, BBA}},
-+{"cror",      XL(19,449),     XL_MASK,     COM,       PPCNONE,        {BT, BA, BB}},
-+
-+{"sleep",     XL(19,466),     0xffffffff,  POWER6,    PPCNONE,        {0}},
-+{"rvwinkle",  XL(19,498),     0xffffffff,  POWER6,    PPCNONE,        {0}},
-+
-+{"bctr",    XLO(19,BOU,528,0),                XLBOBIBB_MASK, COM,      PPCNONE,       {0}},
-+{"bctrl",   XLO(19,BOU,528,1),                XLBOBIBB_MASK, COM,      PPCNONE,       {0}},
-+
-+{"bgectr",  XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bgectr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnlctr",  XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnlctr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgectrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bgectrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnlctrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnlctrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"blectr",  XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"blectr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bngctr",  XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bngctr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"blectrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"blectrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bngctrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bngctrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnectr",  XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnectr-", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnectrl", XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnectrl-",XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnsctr",  XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnsctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnuctr",  XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnuctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnsctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnsctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnuctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bnuctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgectr+", XLOCB(19,BOFP,CBLT,528,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnlctr+", XLOCB(19,BOFP,CBLT,528,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgectrl+",XLOCB(19,BOFP,CBLT,528,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnlctrl+",XLOCB(19,BOFP,CBLT,528,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"blectr+", XLOCB(19,BOFP,CBGT,528,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bngctr+", XLOCB(19,BOFP,CBGT,528,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"blectrl+",XLOCB(19,BOFP,CBGT,528,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bngctrl+",XLOCB(19,BOFP,CBGT,528,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnectr+", XLOCB(19,BOFP,CBEQ,528,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnectrl+",XLOCB(19,BOFP,CBEQ,528,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnsctr+", XLOCB(19,BOFP,CBSO,528,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnuctr+", XLOCB(19,BOFP,CBSO,528,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnsctrl+",XLOCB(19,BOFP,CBSO,528,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bnuctrl+",XLOCB(19,BOFP,CBSO,528,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgectr-", XLOCB(19,BOFM4,CBLT,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnlctr-", XLOCB(19,BOFM4,CBLT,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bgectrl-",XLOCB(19,BOFM4,CBLT,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnlctrl-",XLOCB(19,BOFM4,CBLT,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"blectr-", XLOCB(19,BOFM4,CBGT,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bngctr-", XLOCB(19,BOFM4,CBGT,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"blectrl-",XLOCB(19,BOFM4,CBGT,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bngctrl-",XLOCB(19,BOFM4,CBGT,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnectr-", XLOCB(19,BOFM4,CBEQ,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnectrl-",XLOCB(19,BOFM4,CBEQ,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnsctr-", XLOCB(19,BOFM4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnuctr-", XLOCB(19,BOFM4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnsctrl-",XLOCB(19,BOFM4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnuctrl-",XLOCB(19,BOFM4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bgectr+", XLOCB(19,BOFP4,CBLT,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnlctr+", XLOCB(19,BOFP4,CBLT,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bgectrl+",XLOCB(19,BOFP4,CBLT,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnlctrl+",XLOCB(19,BOFP4,CBLT,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"blectr+", XLOCB(19,BOFP4,CBGT,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bngctr+", XLOCB(19,BOFP4,CBGT,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"blectrl+",XLOCB(19,BOFP4,CBGT,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bngctrl+",XLOCB(19,BOFP4,CBGT,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnectr+", XLOCB(19,BOFP4,CBEQ,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnectrl+",XLOCB(19,BOFP4,CBEQ,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnsctr+", XLOCB(19,BOFP4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnuctr+", XLOCB(19,BOFP4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnsctrl+",XLOCB(19,BOFP4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bnuctrl+",XLOCB(19,BOFP4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bltctr",  XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bltctr-", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bltctrl", XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bltctrl-",XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgtctr",  XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bgtctr-", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgtctrl", XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bgtctrl-",XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"beqctr",  XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"beqctr-", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"beqctrl", XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"beqctrl-",XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bsoctr",  XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bsoctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bunctr",  XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bunctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bsoctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bsoctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bunctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,   PPCNONE,       {CR}},
-+{"bunctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bltctr+", XLOCB(19,BOTP,CBLT,528,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bltctrl+",XLOCB(19,BOTP,CBLT,528,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgtctr+", XLOCB(19,BOTP,CBGT,528,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bgtctrl+",XLOCB(19,BOTP,CBGT,528,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"beqctr+", XLOCB(19,BOTP,CBEQ,528,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"beqctrl+",XLOCB(19,BOTP,CBEQ,528,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bsoctr+", XLOCB(19,BOTP,CBSO,528,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bunctr+", XLOCB(19,BOTP,CBSO,528,0),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bsoctrl+",XLOCB(19,BOTP,CBSO,528,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bunctrl+",XLOCB(19,BOTP,CBSO,528,1),        XLBOCBBB_MASK, PPCCOM,   POWER4,        {CR}},
-+{"bltctr-", XLOCB(19,BOTM4,CBLT,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bltctrl-",XLOCB(19,BOTM4,CBLT,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bgtctr-", XLOCB(19,BOTM4,CBGT,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bgtctrl-",XLOCB(19,BOTM4,CBGT,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"beqctr-", XLOCB(19,BOTM4,CBEQ,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"beqctrl-",XLOCB(19,BOTM4,CBEQ,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bsoctr-", XLOCB(19,BOTM4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bunctr-", XLOCB(19,BOTM4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bsoctrl-",XLOCB(19,BOTM4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bunctrl-",XLOCB(19,BOTM4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bltctr+", XLOCB(19,BOTP4,CBLT,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bltctrl+",XLOCB(19,BOTP4,CBLT,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bgtctr+", XLOCB(19,BOTP4,CBGT,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bgtctrl+",XLOCB(19,BOTP4,CBGT,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"beqctr+", XLOCB(19,BOTP4,CBEQ,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"beqctrl+",XLOCB(19,BOTP4,CBEQ,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bsoctr+", XLOCB(19,BOTP4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bunctr+", XLOCB(19,BOTP4,CBSO,528,0),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bsoctrl+",XLOCB(19,BOTP4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+{"bunctrl+",XLOCB(19,BOTP4,CBSO,528,1),       XLBOCBBB_MASK, POWER4,   PPCNONE,       {CR}},
-+
-+{"bfctr",   XLO(19,BOF,528,0),                XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"bfctr-",  XLO(19,BOF,528,0),                XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bfctrl",  XLO(19,BOF,528,1),                XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"bfctrl-", XLO(19,BOF,528,1),                XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bfctr+",  XLO(19,BOFP,528,0),               XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bfctrl+", XLO(19,BOFP,528,1),               XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"bfctr-",  XLO(19,BOFM4,528,0),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+{"bfctrl-", XLO(19,BOFM4,528,1),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+{"bfctr+",  XLO(19,BOFP4,528,0),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+{"bfctrl+", XLO(19,BOFP4,528,1),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+{"btctr",   XLO(19,BOT,528,0),                XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"btctr-",  XLO(19,BOT,528,0),                XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"btctrl",  XLO(19,BOT,528,1),                XLBOBB_MASK,   PPCCOM,   PPCNONE,       {BI}},
-+{"btctrl-", XLO(19,BOT,528,1),                XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"btctr+",  XLO(19,BOTP,528,0),               XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"btctrl+", XLO(19,BOTP,528,1),               XLBOBB_MASK,   PPCCOM,   POWER4,        {BI}},
-+{"btctr-",  XLO(19,BOTM4,528,0),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+{"btctrl-", XLO(19,BOTM4,528,1),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+{"btctr+",  XLO(19,BOTP4,528,0),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+{"btctrl+", XLO(19,BOTP4,528,1),      XLBOBB_MASK,   POWER4,   PPCNONE,       {BI}},
-+
-+{"bcctr-",  XLYLK(19,528,0,0),                XLYBB_MASK,    PPCCOM,   PPCNONE,       {BOE, BI}},
-+{"bcctrl-", XLYLK(19,528,0,1),                XLYBB_MASK,    PPCCOM,   PPCNONE,       {BOE, BI}},
-+{"bcctr+",  XLYLK(19,528,1,0),                XLYBB_MASK,    PPCCOM,   PPCNONE,       {BOE, BI}},
-+{"bcctrl+", XLYLK(19,528,1,1),                XLYBB_MASK,    PPCCOM,   PPCNONE,       {BOE, BI}},
-+{"bcctr",   XLLK(19,528,0),           XLBH_MASK,     PPCCOM,   PPCNONE,       {BO, BI, BH}},
-+{"bcc",     XLLK(19,528,0),           XLBB_MASK,     PWRCOM,   PPCNONE,       {BO, BI}},
-+{"bcctrl",  XLLK(19,528,1),           XLBH_MASK,     PPCCOM,   PPCNONE,       {BO, BI, BH}},
-+{"bccl",    XLLK(19,528,1),           XLBB_MASK,     PWRCOM,   PPCNONE,       {BO, BI}},
-+
-+{"rlwimi",    M(20,0),        M_MASK,      PPCCOM,    PPCNONE,        {RA, RS, SH, MBE, ME}},
-+{"rlimi",     M(20,0),        M_MASK,      PWRCOM,    PPCNONE,        {RA, RS, SH, MBE, ME}},
-+
-+{"rlwimi.",   M(20,1),        M_MASK,      PPCCOM,    PPCNONE,        {RA, RS, SH, MBE, ME}},
-+{"rlimi.",    M(20,1),        M_MASK,      PWRCOM,    PPCNONE,        {RA, RS, SH, MBE, ME}},
-+
-+{"rotlwi",    MME(21,31,0),   MMBME_MASK,  PPCCOM,    PPCNONE,        {RA, RS, SH}},
-+{"clrlwi",    MME(21,31,0),   MSHME_MASK,  PPCCOM,    PPCNONE,        {RA, RS, MB}},
-+{"rlwinm",    M(21,0),        M_MASK,      PPCCOM,    PPCNONE,        {RA, RS, SH, MBE, ME}},
-+{"rlinm",     M(21,0),        M_MASK,      PWRCOM,    PPCNONE,        {RA, RS, SH, MBE, ME}},
-+{"rotlwi.",   MME(21,31,1),   MMBME_MASK,  PPCCOM,    PPCNONE,        {RA, RS, SH}},
-+{"clrlwi.",   MME(21,31,1),   MSHME_MASK,  PPCCOM,    PPCNONE,        {RA, RS, MB}},
-+{"rlwinm.",   M(21,1),        M_MASK,      PPCCOM,    PPCNONE,        {RA, RS, SH, MBE, ME}},
-+{"rlinm.",    M(21,1),        M_MASK,      PWRCOM,    PPCNONE,        {RA, RS, SH, MBE, ME}},
-+
-+{"rlmi",      M(22,0),        M_MASK,      M601,      PPCNONE,        {RA, RS, RB, MBE, ME}},
-+{"rlmi.",     M(22,1),        M_MASK,      M601,      PPCNONE,        {RA, RS, RB, MBE, ME}},
-+
-+{"rotlw",     MME(23,31,0),   MMBME_MASK,  PPCCOM,    PPCNONE,        {RA, RS, RB}},
-+{"rlwnm",     M(23,0),        M_MASK,      PPCCOM,    PPCNONE,        {RA, RS, RB, MBE, ME}},
-+{"rlnm",      M(23,0),        M_MASK,      PWRCOM,    PPCNONE,        {RA, RS, RB, MBE, ME}},
-+{"rotlw.",    MME(23,31,1),   MMBME_MASK,  PPCCOM,    PPCNONE,        {RA, RS, RB}},
-+{"rlwnm.",    M(23,1),        M_MASK,      PPCCOM,    PPCNONE,        {RA, RS, RB, MBE, ME}},
-+{"rlnm.",     M(23,1),        M_MASK,      PWRCOM,    PPCNONE,        {RA, RS, RB, MBE, ME}},
-+
-+{"nop",               OP(24),         0xffffffff,  PPCCOM,    PPCNONE,        {0}},
-+{"ori",               OP(24),         OP_MASK,     PPCCOM,    PPCNONE,        {RA, RS, UI}},
-+{"oril",      OP(24),         OP_MASK,     PWRCOM,    PPCNONE,        {RA, RS, UI}},
-+
-+{"oris",      OP(25),         OP_MASK,     PPCCOM,    PPCNONE,        {RA, RS, UI}},
-+{"oriu",      OP(25),         OP_MASK,     PWRCOM,    PPCNONE,        {RA, RS, UI}},
-+
-+{"xori",      OP(26),         OP_MASK,     PPCCOM,    PPCNONE,        {RA, RS, UI}},
-+{"xoril",     OP(26),         OP_MASK,     PWRCOM,    PPCNONE,        {RA, RS, UI}},
-+
-+{"xoris",     OP(27),         OP_MASK,     PPCCOM,    PPCNONE,        {RA, RS, UI}},
-+{"xoriu",     OP(27),         OP_MASK,     PWRCOM,    PPCNONE,        {RA, RS, UI}},
-+
-+{"andi.",     OP(28),         OP_MASK,     PPCCOM,    PPCNONE,        {RA, RS, UI}},
-+{"andil.",    OP(28),         OP_MASK,     PWRCOM,    PPCNONE,        {RA, RS, UI}},
-+
-+{"andis.",    OP(29),         OP_MASK,     PPCCOM,    PPCNONE,        {RA, RS, UI}},
-+{"andiu.",    OP(29),         OP_MASK,     PWRCOM,    PPCNONE,        {RA, RS, UI}},
-+
-+{"rotldi",    MD(30,0,0),     MDMB_MASK,   PPC64,     PPCNONE,        {RA, RS, SH6}},
-+{"clrldi",    MD(30,0,0),     MDSH_MASK,   PPC64,     PPCNONE,        {RA, RS, MB6}},
-+{"rldicl",    MD(30,0,0),     MD_MASK,     PPC64,     PPCNONE,        {RA, RS, SH6, MB6}},
-+{"rotldi.",   MD(30,0,1),     MDMB_MASK,   PPC64,     PPCNONE,        {RA, RS, SH6}},
-+{"clrldi.",   MD(30,0,1),     MDSH_MASK,   PPC64,     PPCNONE,        {RA, RS, MB6}},
-+{"rldicl.",   MD(30,0,1),     MD_MASK,     PPC64,     PPCNONE,        {RA, RS, SH6, MB6}},
-+
-+{"rldicr",    MD(30,1,0),     MD_MASK,     PPC64,     PPCNONE,        {RA, RS, SH6, ME6}},
-+{"rldicr.",   MD(30,1,1),     MD_MASK,     PPC64,     PPCNONE,        {RA, RS, SH6, ME6}},
-+
-+{"rldic",     MD(30,2,0),     MD_MASK,     PPC64,     PPCNONE,        {RA, RS, SH6, MB6}},
-+{"rldic.",    MD(30,2,1),     MD_MASK,     PPC64,     PPCNONE,        {RA, RS, SH6, MB6}},
-+
-+{"rldimi",    MD(30,3,0),     MD_MASK,     PPC64,     PPCNONE,        {RA, RS, SH6, MB6}},
-+{"rldimi.",   MD(30,3,1),     MD_MASK,     PPC64,     PPCNONE,        {RA, RS, SH6, MB6}},
-+
-+{"rotld",     MDS(30,8,0),    MDSMB_MASK,  PPC64,     PPCNONE,        {RA, RS, RB}},
-+{"rldcl",     MDS(30,8,0),    MDS_MASK,    PPC64,     PPCNONE,        {RA, RS, RB, MB6}},
-+{"rotld.",    MDS(30,8,1),    MDSMB_MASK,  PPC64,     PPCNONE,        {RA, RS, RB}},
-+{"rldcl.",    MDS(30,8,1),    MDS_MASK,    PPC64,     PPCNONE,        {RA, RS, RB, MB6}},
-+
-+{"rldcr",     MDS(30,9,0),    MDS_MASK,    PPC64,     PPCNONE,        {RA, RS, RB, ME6}},
-+{"rldcr.",    MDS(30,9,1),    MDS_MASK,    PPC64,     PPCNONE,        {RA, RS, RB, ME6}},
-+
-+{"cmpw",      XOPL(31,0,0),   XCMPL_MASK,  PPCCOM,    PPCNONE,        {OBF, RA, RB}},
-+{"cmpd",      XOPL(31,0,1),   XCMPL_MASK,  PPC64,     PPCNONE,        {OBF, RA, RB}},
-+{"cmp",               X(31,0),        XCMP_MASK,   PPC,       PPCNONE,        {BF, L, RA, RB}},
-+{"cmp",               X(31,0),        XCMPL_MASK,  PWRCOM,    PPCNONE,        {BF, RA, RB}},
-+
-+{"twlgt",     XTO(31,4,TOLGT), XTO_MASK,   PPCCOM,    PPCNONE,        {RA, RB}},
-+{"tlgt",      XTO(31,4,TOLGT), XTO_MASK,   PWRCOM,    PPCNONE,        {RA, RB}},
-+{"twllt",     XTO(31,4,TOLLT), XTO_MASK,   PPCCOM,    PPCNONE,        {RA, RB}},
-+{"tllt",      XTO(31,4,TOLLT), XTO_MASK,   PWRCOM,    PPCNONE,        {RA, RB}},
-+{"tweq",      XTO(31,4,TOEQ),  XTO_MASK,   PPCCOM,    PPCNONE,        {RA, RB}},
-+{"teq",               XTO(31,4,TOEQ),  XTO_MASK,   PWRCOM,    PPCNONE,        {RA, RB}},
-+{"twlge",     XTO(31,4,TOLGE), XTO_MASK,   PPCCOM,    PPCNONE,        {RA, RB}},
-+{"tlge",      XTO(31,4,TOLGE), XTO_MASK,   PWRCOM,    PPCNONE,        {RA, RB}},
-+{"twlnl",     XTO(31,4,TOLNL), XTO_MASK,   PPCCOM,    PPCNONE,        {RA, RB}},
-+{"tlnl",      XTO(31,4,TOLNL), XTO_MASK,   PWRCOM,    PPCNONE,        {RA, RB}},
-+{"twlle",     XTO(31,4,TOLLE), XTO_MASK,   PPCCOM,    PPCNONE,        {RA, RB}},
-+{"tlle",      XTO(31,4,TOLLE), XTO_MASK,   PWRCOM,    PPCNONE,        {RA, RB}},
-+{"twlng",     XTO(31,4,TOLNG), XTO_MASK,   PPCCOM,    PPCNONE,        {RA, RB}},
-+{"tlng",      XTO(31,4,TOLNG), XTO_MASK,   PWRCOM,    PPCNONE,        {RA, RB}},
-+{"twgt",      XTO(31,4,TOGT),  XTO_MASK,   PPCCOM,    PPCNONE,        {RA, RB}},
-+{"tgt",               XTO(31,4,TOGT),  XTO_MASK,   PWRCOM,    PPCNONE,        {RA, RB}},
-+{"twge",      XTO(31,4,TOGE),  XTO_MASK,   PPCCOM,    PPCNONE,        {RA, RB}},
-+{"tge",               XTO(31,4,TOGE),  XTO_MASK,   PWRCOM,    PPCNONE,        {RA, RB}},
-+{"twnl",      XTO(31,4,TONL),  XTO_MASK,   PPCCOM,    PPCNONE,        {RA, RB}},
-+{"tnl",               XTO(31,4,TONL),  XTO_MASK,   PWRCOM,    PPCNONE,        {RA, RB}},
-+{"twlt",      XTO(31,4,TOLT),  XTO_MASK,   PPCCOM,    PPCNONE,        {RA, RB}},
-+{"tlt",               XTO(31,4,TOLT),  XTO_MASK,   PWRCOM,    PPCNONE,        {RA, RB}},
-+{"twle",      XTO(31,4,TOLE),  XTO_MASK,   PPCCOM,    PPCNONE,        {RA, RB}},
-+{"tle",               XTO(31,4,TOLE),  XTO_MASK,   PWRCOM,    PPCNONE,        {RA, RB}},
-+{"twng",      XTO(31,4,TONG),  XTO_MASK,   PPCCOM,    PPCNONE,        {RA, RB}},
-+{"tng",               XTO(31,4,TONG),  XTO_MASK,   PWRCOM,    PPCNONE,        {RA, RB}},
-+{"twne",      XTO(31,4,TONE),  XTO_MASK,   PPCCOM,    PPCNONE,        {RA, RB}},
-+{"tne",               XTO(31,4,TONE),  XTO_MASK,   PWRCOM,    PPCNONE,        {RA, RB}},
-+{"trap",      XTO(31,4,TOU),   0xffffffff, PPCCOM,    PPCNONE,        {0}},
-+{"tw",                X(31,4),         X_MASK,     PPCCOM,    PPCNONE,        {TO, RA, RB}},
-+{"t",         X(31,4),         X_MASK,     PWRCOM,    PPCNONE,        {TO, RA, RB}},
-+
-+{"lvsl",      X(31,6),        X_MASK,      PPCVEC,    PPCNONE,        {VD, RA, RB}},
-+{"lvebx",     X(31,7),        X_MASK,      PPCVEC,    PPCNONE,        {VD, RA, RB}},
-+{"lbfcmx",    APU(31,7,0),    APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"subfc",     XO(31,8,0,0),   XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"sf",                XO(31,8,0,0),   XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+{"subc",      XO(31,8,0,0),   XO_MASK,     PPC,       PPCNONE,        {RT, RB, RA}},
-+{"subfc.",    XO(31,8,0,1),   XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"sf.",               XO(31,8,0,1),   XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+{"subc.",     XO(31,8,0,1),   XO_MASK,     PPCCOM,    PPCNONE,        {RT, RB, RA}},
-+
-+{"mulhdu",    XO(31,9,0,0),   XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+{"mulhdu.",   XO(31,9,0,1),   XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+
-+{"addc",      XO(31,10,0,0),  XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"a",         XO(31,10,0,0),  XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+{"addc.",     XO(31,10,0,1),  XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"a.",                XO(31,10,0,1),  XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"mulhwu",    XO(31,11,0,0),  XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+{"mulhwu.",   XO(31,11,0,1),  XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+
-+{"isellt",    X(31,15),       X_MASK,      PPCISEL,   PPCNONE,        {RT, RA, RB}},
-+
-+{"mfcr",      XFXM(31,19,0,0), XRARB_MASK, COM,       POWER4,         {RT}},
-+{"mfcr",      XFXM(31,19,0,0), XFXFXM_MASK, POWER4,   PPCNONE,        {RT, FXM4}},
-+{"mfocrf",    XFXM(31,19,0,1), XFXFXM_MASK, COM,      PPCNONE,        {RT, FXM}},
-+
-+{"lwarx",     X(31,20),       XEH_MASK,    PPC,       PPCNONE,        {RT, RA0, RB, EH}},
-+
-+{"ldx",               X(31,21),       X_MASK,      PPC64,     PPCNONE,        {RT, RA0, RB}},
-+
-+{"icbt",      X(31,22),       X_MASK,  BOOKE|PPCE300, PPCNONE,        {CT, RA, RB}},
-+
-+{"lwzx",      X(31,23),       X_MASK,      PPCCOM,    PPCNONE,        {RT, RA0, RB}},
-+{"lx",                X(31,23),       X_MASK,      PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"slw",               XRC(31,24,0),   X_MASK,      PPCCOM,    PPCNONE,        {RA, RS, RB}},
-+{"sl",                XRC(31,24,0),   X_MASK,      PWRCOM,    PPCNONE,        {RA, RS, RB}},
-+{"slw.",      XRC(31,24,1),   X_MASK,      PPCCOM,    PPCNONE,        {RA, RS, RB}},
-+{"sl.",               XRC(31,24,1),   X_MASK,      PWRCOM,    PPCNONE,        {RA, RS, RB}},
-+
-+{"cntlzw",    XRC(31,26,0),   XRB_MASK,    PPCCOM,    PPCNONE,        {RA, RS}},
-+{"cntlz",     XRC(31,26,0),   XRB_MASK,    PWRCOM,    PPCNONE,        {RA, RS}},
-+{"cntlzw.",   XRC(31,26,1),   XRB_MASK,    PPCCOM,    PPCNONE,        {RA, RS}},
-+{"cntlz.",    XRC(31,26,1),   XRB_MASK,    PWRCOM,    PPCNONE,        {RA, RS}},
-+
-+{"sld",               XRC(31,27,0),   X_MASK,      PPC64,     PPCNONE,        {RA, RS, RB}},
-+{"sld.",      XRC(31,27,1),   X_MASK,      PPC64,     PPCNONE,        {RA, RS, RB}},
-+
-+{"and",               XRC(31,28,0),   X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+{"and.",      XRC(31,28,1),   X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+
-+{"maskg",     XRC(31,29,0),   X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+{"maskg.",    XRC(31,29,1),   X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+
-+{"ldepx",     X(31,29),       X_MASK,      E500MC,    PPCNONE,        {RT, RA, RB}},
-+{"lwepx",     X(31,31),       X_MASK,      E500MC,    PPCNONE,        {RT, RA, RB}},
-+
-+{"cmplw",     XOPL(31,32,0),  XCMPL_MASK,  PPCCOM,    PPCNONE,        {OBF, RA, RB}},
-+{"cmpld",     XOPL(31,32,1),  XCMPL_MASK,  PPC64,     PPCNONE,        {OBF, RA, RB}},
-+{"cmpl",      X(31,32),       XCMP_MASK,   PPC,       PPCNONE,        {BF, L, RA, RB}},
-+{"cmpl",      X(31,32),       XCMPL_MASK,  PWRCOM,    PPCNONE,        {BF, RA, RB}},
-+
-+{"lvsr",      X(31,38),       X_MASK,      PPCVEC,    PPCNONE,        {VD, RA, RB}},
-+{"lvehx",     X(31,39),       X_MASK,      PPCVEC,    PPCNONE,        {VD, RA, RB}},
-+{"lhfcmx",    APU(31,39,0),   APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"iselgt",    X(31,47),       X_MASK,      PPCISEL,   PPCNONE,        {RT, RA, RB}},
-+
-+{"lvewx",     X(31,71),       X_MASK,      PPCVEC,    PPCNONE,        {VD, RA, RB}},
-+
-+{"addg6s",    XO(31,74,0,0),  XO_MASK,     POWER6,    PPCNONE,        {RT, RA, RB}},
-+
-+{"iseleq",    X(31,79),       X_MASK,      PPCISEL,   PPCNONE,        {RT, RA, RB}},
-+
-+{"isel",      XISEL(31,15),   XISEL_MASK,  PPCISEL,   PPCNONE,        {RT, RA, RB, CRB}},
-+
-+{"subf",      XO(31,40,0,0),  XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+{"sub",               XO(31,40,0,0),  XO_MASK,     PPC,       PPCNONE,        {RT, RB, RA}},
-+{"subf.",     XO(31,40,0,1),  XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+{"sub.",      XO(31,40,0,1),  XO_MASK,     PPC,       PPCNONE,        {RT, RB, RA}},
-+
-+{"lbarx",     X(31,52),       XEH_MASK,    POWER7,    PPCNONE,        {RT, RA0, RB, EH}},
-+
-+{"ldux",      X(31,53),       X_MASK,      PPC64,     PPCNONE,        {RT, RAL, RB}},
-+
-+{"dcbst",     X(31,54),       XRT_MASK,    PPC,       PPCNONE,        {RA, RB}},
-+
-+{"lwzux",     X(31,55),       X_MASK,      PPCCOM,    PPCNONE,        {RT, RAL, RB}},
-+{"lux",               X(31,55),       X_MASK,      PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"cntlzd",    XRC(31,58,0),   XRB_MASK,    PPC64,     PPCNONE,        {RA, RS}},
-+{"cntlzd.",   XRC(31,58,1),   XRB_MASK,    PPC64,     PPCNONE,        {RA, RS}},
-+
-+{"andc",      XRC(31,60,0),   X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+{"andc.",     XRC(31,60,1),   X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+
-+{"waitrsv",   X(31,62)|(1<<21), 0xffffffff, POWER7|E500MC, PPCNONE,   {0}},
-+{"waitimpl",  X(31,62)|(2<<21), 0xffffffff, POWER7|E500MC, PPCNONE,   {0}},
-+{"wait",      X(31,62),       XWC_MASK, POWER7|E500MC, PPCNONE,       {WC}},
-+
-+{"dcbstep",   XRT(31,63,0),   XRT_MASK,    E500MC,    PPCNONE,        {RA, RB}},
-+
-+{"tdlgt",     XTO(31,68,TOLGT), XTO_MASK,  PPC64,     PPCNONE,        {RA, RB}},
-+{"tdllt",     XTO(31,68,TOLLT), XTO_MASK,  PPC64,     PPCNONE,        {RA, RB}},
-+{"tdeq",      XTO(31,68,TOEQ),  XTO_MASK,  PPC64,     PPCNONE,        {RA, RB}},
-+{"tdlge",     XTO(31,68,TOLGE), XTO_MASK,  PPC64,     PPCNONE,        {RA, RB}},
-+{"tdlnl",     XTO(31,68,TOLNL), XTO_MASK,  PPC64,     PPCNONE,        {RA, RB}},
-+{"tdlle",     XTO(31,68,TOLLE), XTO_MASK,  PPC64,     PPCNONE,        {RA, RB}},
-+{"tdlng",     XTO(31,68,TOLNG), XTO_MASK,  PPC64,     PPCNONE,        {RA, RB}},
-+{"tdgt",      XTO(31,68,TOGT),  XTO_MASK,  PPC64,     PPCNONE,        {RA, RB}},
-+{"tdge",      XTO(31,68,TOGE),  XTO_MASK,  PPC64,     PPCNONE,        {RA, RB}},
-+{"tdnl",      XTO(31,68,TONL),  XTO_MASK,  PPC64,     PPCNONE,        {RA, RB}},
-+{"tdlt",      XTO(31,68,TOLT),  XTO_MASK,  PPC64,     PPCNONE,        {RA, RB}},
-+{"tdle",      XTO(31,68,TOLE),  XTO_MASK,  PPC64,     PPCNONE,        {RA, RB}},
-+{"tdng",      XTO(31,68,TONG),  XTO_MASK,  PPC64,     PPCNONE,        {RA, RB}},
-+{"tdne",      XTO(31,68,TONE),  XTO_MASK,  PPC64,     PPCNONE,        {RA, RB}},
-+{"td",                X(31,68),       X_MASK,      PPC64,     PPCNONE,        {TO, RA, RB}},
-+
-+{"lwfcmx",    APU(31,71,0),   APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+{"mulhd",     XO(31,73,0,0),  XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+{"mulhd.",    XO(31,73,0,1),  XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+
-+{"mulhw",     XO(31,75,0,0),  XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+{"mulhw.",    XO(31,75,0,1),  XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+
-+{"dlmzb",     XRC(31,78,0),   X_MASK,  PPC403|PPC440, PPCNONE,        {RA, RS, RB}},
-+{"dlmzb.",    XRC(31,78,1),   X_MASK,  PPC403|PPC440, PPCNONE,        {RA, RS, RB}},
-+
-+{"mtsrd",     X(31,82),  XRB_MASK|(1<<20), PPC64,     PPCNONE,        {SR, RS}},
-+
-+{"mfmsr",     X(31,83),       XRARB_MASK,  COM,       PPCNONE,        {RT}},
-+
-+{"ldarx",     X(31,84),       XEH_MASK,    PPC64,     PPCNONE,        {RT, RA0, RB, EH}},
-+
-+{"dcbfl",     XOPL(31,86,1),  XRT_MASK,    POWER5,    PPCNONE,        {RA, RB}},
-+{"dcbf",      X(31,86),       XLRT_MASK,   PPC,       PPCNONE,        {RA, RB, L}},
-+
-+{"lbzx",      X(31,87),       X_MASK,      COM,       PPCNONE,        {RT, RA0, RB}},
-+
-+{"lbepx",     X(31,95),       X_MASK,      E500MC,    PPCNONE,        {RT, RA, RB}},
-+
-+{"lvx",               X(31,103),      X_MASK,      PPCVEC,    PPCNONE,        {VD, RA, RB}},
-+{"lqfcmx",    APU(31,103,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"neg",               XO(31,104,0,0), XORB_MASK,   COM,       PPCNONE,        {RT, RA}},
-+{"neg.",      XO(31,104,0,1), XORB_MASK,   COM,       PPCNONE,        {RT, RA}},
-+
-+{"mul",               XO(31,107,0,0), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+{"mul.",      XO(31,107,0,1), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+
-+{"mtsrdin",   X(31,114),      XRA_MASK,    PPC64,     PPCNONE,        {RS, RB}},
-+
-+{"lharx",     X(31,116),      XEH_MASK,    POWER7,    PPCNONE,        {RT, RA0, RB, EH}},
-+
-+{"clf",               X(31,118),      XTO_MASK,    POWER,     PPCNONE,        {RA, RB}},
-+
-+{"lbzux",     X(31,119),      X_MASK,      COM,       PPCNONE,        {RT, RAL, RB}},
-+
-+{"popcntb",   X(31,122),      XRB_MASK,    POWER5,    PPCNONE,        {RA, RS}},
-+
-+{"not",               XRC(31,124,0),  X_MASK,      COM,       PPCNONE,        {RA, RS, RBS}},
-+{"nor",               XRC(31,124,0),  X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+{"not.",      XRC(31,124,1),  X_MASK,      COM,       PPCNONE,        {RA, RS, RBS}},
-+{"nor.",      XRC(31,124,1),  X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+
-+{"dcbfep",    XRT(31,127,0),  XRT_MASK,    E500MC,    PPCNONE,        {RA, RB}},
-+
-+{"wrtee",     X(31,131),      XRARB_MASK, PPC403|BOOKE, PPCNONE,      {RS}},
-+
-+{"dcbtstls",  X(31,134),      X_MASK,      PPCCHLK,   PPCNONE,        {CT, RA, RB}},
-+
-+{"stvebx",    X(31,135),      X_MASK,      PPCVEC,    PPCNONE,        {VS, RA, RB}},
-+{"stbfcmx",   APU(31,135,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"subfe",     XO(31,136,0,0), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"sfe",               XO(31,136,0,0), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+{"subfe.",    XO(31,136,0,1), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"sfe.",      XO(31,136,0,1), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"adde",      XO(31,138,0,0), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"ae",                XO(31,138,0,0), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+{"adde.",     XO(31,138,0,1), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"ae.",               XO(31,138,0,1), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"dcbtstlse", X(31,142),      X_MASK,      PPCCHLK,   PPCNONE,        {CT, RA, RB}},
-+
-+{"mtcr",      XFXM(31,144,0xff,0), XRARB_MASK, COM,   PPCNONE,        {RS}},
-+{"mtcrf",     XFXM(31,144,0,0), XFXFXM_MASK, COM,     PPCNONE,        {FXM, RS}},
-+{"mtocrf",    XFXM(31,144,0,1), XFXFXM_MASK, COM,     PPCNONE,        {FXM, RS}},
-+
-+{"mtmsr",     X(31,146),      XRLARB_MASK, COM,       PPCNONE,        {RS, A_L}},
-+
-+{"stdx",      X(31,149),      X_MASK,      PPC64,     PPCNONE,        {RS, RA0, RB}},
-+
-+{"stwcx.",    XRC(31,150,1),  X_MASK,      PPC,       PPCNONE,        {RS, RA0, RB}},
-+
-+{"stwx",      X(31,151),      X_MASK,      PPCCOM,    PPCNONE,        {RS, RA0, RB}},
-+{"stx",               X(31,151),      X_MASK,      PWRCOM,    PPCNONE,        {RS, RA, RB}},
-+
-+{"slq",               XRC(31,152,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+{"slq.",      XRC(31,152,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+
-+{"sle",               XRC(31,153,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+{"sle.",      XRC(31,153,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+
-+{"prtyw",     X(31,154),      XRB_MASK,    POWER6,    PPCNONE,        {RA, RS}},
-+
-+{"stdepx",    X(31,157),      X_MASK,      E500MC,    PPCNONE,        {RS, RA, RB}},
-+
-+{"stwepx",    X(31,159),      X_MASK,      E500MC,    PPCNONE,        {RS, RA, RB}},
-+
-+{"wrteei",    X(31,163),      XE_MASK,  PPC403|BOOKE, PPCNONE,        {E}},
-+
-+{"dcbtls",    X(31,166),      X_MASK,      PPCCHLK,   PPCNONE,        {CT, RA, RB}},
-+
-+{"stvehx",    X(31,167),      X_MASK,      PPCVEC,    PPCNONE,        {VS, RA, RB}},
-+{"sthfcmx",   APU(31,167,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"dcbtlse",   X(31,174),      X_MASK,      PPCCHLK,   PPCNONE,        {CT, RA, RB}},
-+
-+{"mtmsrd",    X(31,178),      XRLARB_MASK, PPC64,     PPCNONE,        {RS, A_L}},
-+
-+{"stdux",     X(31,181),      X_MASK,      PPC64,     PPCNONE,        {RS, RAS, RB}},
-+
-+{"stwux",     X(31,183),      X_MASK,      PPCCOM,    PPCNONE,        {RS, RAS, RB}},
-+{"stux",      X(31,183),      X_MASK,      PWRCOM,    PPCNONE,        {RS, RA0, RB}},
-+
-+{"sliq",      XRC(31,184,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, SH}},
-+{"sliq.",     XRC(31,184,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, SH}},
-+
-+{"prtyd",     X(31,186),      XRB_MASK,    POWER6,    PPCNONE,        {RA, RS}},
-+
-+{"stvewx",    X(31,199),      X_MASK,      PPCVEC,    PPCNONE,        {VS, RA, RB}},
-+{"stwfcmx",   APU(31,199,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"subfze",    XO(31,200,0,0), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"sfze",      XO(31,200,0,0), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+{"subfze.",   XO(31,200,0,1), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"sfze.",     XO(31,200,0,1), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+
-+{"addze",     XO(31,202,0,0), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"aze",               XO(31,202,0,0), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+{"addze.",    XO(31,202,0,1), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"aze.",      XO(31,202,0,1), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+
-+{"msgsnd",    XRTRA(31,206,0,0),XRTRA_MASK,E500MC,    PPCNONE,        {RB}},
-+
-+{"mtsr",      X(31,210), XRB_MASK|(1<<20), COM32,     PPCNONE,        {SR, RS}},
-+
-+{"stdcx.",    XRC(31,214,1),  X_MASK,      PPC64,     PPCNONE,        {RS, RA0, RB}},
-+
-+{"stbx",      X(31,215),      X_MASK,      COM,       PPCNONE,        {RS, RA0, RB}},
-+
-+{"sllq",      XRC(31,216,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+{"sllq.",     XRC(31,216,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+
-+{"sleq",      XRC(31,217,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+{"sleq.",     XRC(31,217,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+
-+{"stbepx",    X(31,223),      X_MASK,      E500MC,    PPCNONE,        {RS, RA, RB}},
-+
-+{"icblc",     X(31,230),      X_MASK,      PPCCHLK,   PPCNONE,        {CT, RA, RB}},
-+
-+{"stvx",      X(31,231),      X_MASK,      PPCVEC,    PPCNONE,        {VS, RA, RB}},
-+{"stqfcmx",   APU(31,231,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"subfme",    XO(31,232,0,0), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"sfme",      XO(31,232,0,0), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+{"subfme.",   XO(31,232,0,1), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"sfme.",     XO(31,232,0,1), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+
-+{"mulld",     XO(31,233,0,0), XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+{"mulld.",    XO(31,233,0,1), XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+
-+{"addme",     XO(31,234,0,0), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"ame",               XO(31,234,0,0), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+{"addme.",    XO(31,234,0,1), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"ame.",      XO(31,234,0,1), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+
-+{"mullw",     XO(31,235,0,0), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"muls",      XO(31,235,0,0), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+{"mullw.",    XO(31,235,0,1), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"muls.",     XO(31,235,0,1), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"msgclr",    XRTRA(31,238,0,0),XRTRA_MASK,E500MC,    PPCNONE,        {RB}},
-+{"icblce",    X(31,238),      X_MASK,      PPCCHLK,   PPCNONE,        {CT, RA, RB}},
-+{"mtsrin",    X(31,242),      XRA_MASK,    PPC32,     PPCNONE,        {RS, RB}},
-+{"mtsri",     X(31,242),      XRA_MASK,    POWER32,   PPCNONE,        {RS, RB}},
-+
-+{"dcbtstt",   XRT(31,246,0x10), XRT_MASK,  POWER7,    PPCNONE,        {RA, RB}},
-+{"dcbtst",    X(31,246),      X_MASK,      PPC,       POWER4,         {CT, RA, RB}},
-+{"dcbtst",    X(31,246),      X_MASK,      POWER4,    PPCNONE,        {RA, RB, CT}},
-+
-+{"stbux",     X(31,247),      X_MASK,      COM,       PPCNONE,        {RS, RAS, RB}},
-+
-+{"slliq",     XRC(31,248,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, SH}},
-+{"slliq.",    XRC(31,248,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, SH}},
-+
-+{"bpermd",    X(31,252),      X_MASK,      POWER7,    PPCNONE,        {RA, RS, RB}},
-+
-+{"dcbtstep",  XRT(31,255,0),  X_MASK,      E500MC,    PPCNONE,        {RT, RA, RB}},
-+
-+{"mfdcrx",    X(31,259),      X_MASK,      BOOKE,     PPCNONE,        {RS, RA}},
-+
-+{"icbt",      X(31,262),      XRT_MASK,    PPC403,    PPCNONE,        {RA, RB}},
-+
-+{"ldfcmx",    APU(31,263,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+{"doz",               XO(31,264,0,0), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+{"doz.",      XO(31,264,0,1), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+
-+{"add",               XO(31,266,0,0), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"cax",               XO(31,266,0,0), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+{"add.",      XO(31,266,0,1), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"cax.",      XO(31,266,0,1), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"ehpriv",    X(31,270),      0xffffffff,  E500MC,    PPCNONE,        {0}},
-+
-+{"tlbiel",    X(31,274),      XRTLRA_MASK, POWER4,    PPCNONE,        {RB, L}},
-+
-+{"mfapidi",   X(31,275),      X_MASK,      BOOKE,     PPCNONE,        {RT, RA}},
-+
-+{"lscbx",     XRC(31,277,0),  X_MASK,      M601,      PPCNONE,        {RT, RA, RB}},
-+{"lscbx.",    XRC(31,277,1),  X_MASK,      M601,      PPCNONE,        {RT, RA, RB}},
-+
-+{"dcbtt",     XRT(31,278,0x10), XRT_MASK,  POWER7,    PPCNONE,        {RA, RB}},
-+{"dcbt",      X(31,278),      X_MASK,      PPC,       POWER4,         {CT, RA, RB}},
-+{"dcbt",      X(31,278),      X_MASK,      POWER4,    PPCNONE,        {RA, RB, CT}},
-+
-+{"lhzx",      X(31,279),      X_MASK,      COM,       PPCNONE,        {RT, RA0, RB}},
-+
-+{"cdtbcd",    X(31,282),      XRB_MASK,    POWER6,    PPCNONE,        {RA, RS}},
-+
-+{"eqv",               XRC(31,284,0),  X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+{"eqv.",      XRC(31,284,1),  X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+
-+{"lhepx",     X(31,287),      X_MASK,      E500MC,    PPCNONE,        {RT, RA, RB}},
-+
-+{"mfdcrux",   X(31,291),      X_MASK,      PPC464,    PPCNONE,        {RS, RA}},
-+
-+{"tlbie",     X(31,306),      XRTLRA_MASK, PPC,       PPCNONE,        {RB, L}},
-+{"tlbi",      X(31,306),      XRT_MASK,    POWER,     PPCNONE,        {RA0, RB}},
-+
-+{"eciwx",     X(31,310),      X_MASK,      PPC,       PPCNONE,        {RT, RA, RB}},
-+
-+{"lhzux",     X(31,311),      X_MASK,      COM,       PPCNONE,        {RT, RAL, RB}},
-+
-+{"cbcdtd",    X(31,314),      XRB_MASK,    POWER6,    PPCNONE,        {RA, RS}},
-+
-+{"xor",               XRC(31,316,0),  X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+{"xor.",      XRC(31,316,1),  X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+
-+{"dcbtep",    XRT(31,319,0),  X_MASK,      E500MC,    PPCNONE,        {RT, RA, RB}},
-+
-+{"mfexisr",   XSPR(31,323, 64), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfexier",   XSPR(31,323, 66), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfbr0",     XSPR(31,323,128), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfbr1",     XSPR(31,323,129), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfbr2",     XSPR(31,323,130), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfbr3",     XSPR(31,323,131), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfbr4",     XSPR(31,323,132), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfbr5",     XSPR(31,323,133), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfbr6",     XSPR(31,323,134), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfbr7",     XSPR(31,323,135), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfbear",    XSPR(31,323,144), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfbesr",    XSPR(31,323,145), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfiocr",    XSPR(31,323,160), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmacr0",  XSPR(31,323,192), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmact0",  XSPR(31,323,193), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmada0",  XSPR(31,323,194), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmasa0",  XSPR(31,323,195), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmacc0",  XSPR(31,323,196), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmacr1",  XSPR(31,323,200), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmact1",  XSPR(31,323,201), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmada1",  XSPR(31,323,202), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmasa1",  XSPR(31,323,203), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmacc1",  XSPR(31,323,204), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmacr2",  XSPR(31,323,208), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmact2",  XSPR(31,323,209), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmada2",  XSPR(31,323,210), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmasa2",  XSPR(31,323,211), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmacc2",  XSPR(31,323,212), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmacr3",  XSPR(31,323,216), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmact3",  XSPR(31,323,217), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmada3",  XSPR(31,323,218), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmasa3",  XSPR(31,323,219), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmacc3",  XSPR(31,323,220), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdmasr",   XSPR(31,323,224), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdcr",     X(31,323),      X_MASK,   PPC403|BOOKE, PPCNONE,        {RT, SPR}},
-+
-+{"div",               XO(31,331,0,0), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+{"div.",      XO(31,331,0,1), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+
-+{"lxvdsx",    X(31,332),      XX1_MASK,    PPCVSX,    PPCNONE,        {XT6, RA, RB}},
-+
-+{"mfpmr",     X(31,334),      X_MASK, PPCPMR|PPCE300, PPCNONE,        {RT, PMR}},
-+
-+{"mfmq",      XSPR(31,339,  0), XSPR_MASK, M601,      PPCNONE,        {RT}},
-+{"mfxer",     XSPR(31,339,  1), XSPR_MASK, COM,       PPCNONE,        {RT}},
-+{"mfrtcu",    XSPR(31,339,  4), XSPR_MASK, COM,       PPCNONE,        {RT}},
-+{"mfrtcl",    XSPR(31,339,  5), XSPR_MASK, COM,       PPCNONE,        {RT}},
-+{"mfdec",     XSPR(31,339,  6), XSPR_MASK, MFDEC1,    PPCNONE,        {RT}},
-+{"mflr",      XSPR(31,339,  8), XSPR_MASK, COM,       PPCNONE,        {RT}},
-+{"mfctr",     XSPR(31,339,  9), XSPR_MASK, COM,       PPCNONE,        {RT}},
-+{"mftid",     XSPR(31,339, 17), XSPR_MASK, POWER,     PPCNONE,        {RT}},
-+{"mfdsisr",   XSPR(31,339, 18), XSPR_MASK, COM,       PPCNONE,        {RT}},
-+{"mfdar",     XSPR(31,339, 19), XSPR_MASK, COM,       PPCNONE,        {RT}},
-+{"mfdec",     XSPR(31,339, 22), XSPR_MASK, MFDEC2,    PPCNONE,        {RT}},
-+{"mfsdr0",    XSPR(31,339, 24), XSPR_MASK, POWER,     PPCNONE,        {RT}},
-+{"mfsdr1",    XSPR(31,339, 25), XSPR_MASK, COM,       PPCNONE,        {RT}},
-+{"mfsrr0",    XSPR(31,339, 26), XSPR_MASK, COM,       PPCNONE,        {RT}},
-+{"mfsrr1",    XSPR(31,339, 27), XSPR_MASK, COM,       PPCNONE,        {RT}},
-+{"mfcfar",    XSPR(31,339, 28), XSPR_MASK, POWER6,    PPCNONE,        {RT}},
-+{"mfpid",     XSPR(31,339, 48), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfcsrr0",   XSPR(31,339, 58), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfcsrr1",   XSPR(31,339, 59), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfdear",    XSPR(31,339, 61), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfesr",     XSPR(31,339, 62), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivpr",    XSPR(31,339, 63), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfcmpa",    XSPR(31,339,144), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfcmpb",    XSPR(31,339,145), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfcmpc",    XSPR(31,339,146), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfcmpd",    XSPR(31,339,147), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mficr",     XSPR(31,339,148), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfder",     XSPR(31,339,149), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfcounta",  XSPR(31,339,150), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfcountb",  XSPR(31,339,151), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfcmpe",    XSPR(31,339,152), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfcmpf",    XSPR(31,339,153), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfcmpg",    XSPR(31,339,154), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfcmph",    XSPR(31,339,155), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mflctrl1",  XSPR(31,339,156), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mflctrl2",  XSPR(31,339,157), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfictrl",   XSPR(31,339,158), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfbar",     XSPR(31,339,159), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfvrsave",  XSPR(31,339,256), XSPR_MASK, PPCVEC,    PPCNONE,        {RT}},
-+{"mfusprg0",  XSPR(31,339,256), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfsprg",    XSPR(31,339,256), XSPRG_MASK, PPC,      PPCNONE,        {RT, SPRG}},
-+{"mfsprg4",   XSPR(31,339,260), XSPR_MASK, PPC405|BOOKE, PPCNONE,     {RT}},
-+{"mfsprg5",   XSPR(31,339,261), XSPR_MASK, PPC405|BOOKE, PPCNONE,     {RT}},
-+{"mfsprg6",   XSPR(31,339,262), XSPR_MASK, PPC405|BOOKE, PPCNONE,     {RT}},
-+{"mfsprg7",   XSPR(31,339,263), XSPR_MASK, PPC405|BOOKE, PPCNONE,     {RT}},
-+{"mftb",      XSPR(31,339,268), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mftbl",     XSPR(31,339,268), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mftbu",     XSPR(31,339,269), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfsprg0",   XSPR(31,339,272), XSPR_MASK, PPC,       PPCNONE,        {RT}},
-+{"mfsprg1",   XSPR(31,339,273), XSPR_MASK, PPC,       PPCNONE,        {RT}},
-+{"mfsprg2",   XSPR(31,339,274), XSPR_MASK, PPC,       PPCNONE,        {RT}},
-+{"mfsprg3",   XSPR(31,339,275), XSPR_MASK, PPC,       PPCNONE,        {RT}},
-+{"mfasr",     XSPR(31,339,280), XSPR_MASK, PPC64,     PPCNONE,        {RT}},
-+{"mfear",     XSPR(31,339,282), XSPR_MASK, PPC,       PPCNONE,        {RT}},
-+{"mfpir",     XSPR(31,339,286), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfpvr",     XSPR(31,339,287), XSPR_MASK, PPC,       PPCNONE,        {RT}},
-+{"mfdbsr",    XSPR(31,339,304), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfdbcr0",   XSPR(31,339,308), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfdbcr1",   XSPR(31,339,309), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfdbcr2",   XSPR(31,339,310), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfiac1",    XSPR(31,339,312), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfiac2",    XSPR(31,339,313), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfiac3",    XSPR(31,339,314), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfiac4",    XSPR(31,339,315), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfdac1",    XSPR(31,339,316), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfdac2",    XSPR(31,339,317), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfdvc1",    XSPR(31,339,318), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfdvc2",    XSPR(31,339,319), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mftsr",     XSPR(31,339,336), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mftcr",     XSPR(31,339,340), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor0",   XSPR(31,339,400), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor1",   XSPR(31,339,401), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor2",   XSPR(31,339,402), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor3",   XSPR(31,339,403), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor4",   XSPR(31,339,404), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor5",   XSPR(31,339,405), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor6",   XSPR(31,339,406), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor7",   XSPR(31,339,407), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor8",   XSPR(31,339,408), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor9",   XSPR(31,339,409), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor10",  XSPR(31,339,410), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor11",  XSPR(31,339,411), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor12",  XSPR(31,339,412), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor13",  XSPR(31,339,413), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor14",  XSPR(31,339,414), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfivor15",  XSPR(31,339,415), XSPR_MASK, BOOKE,     PPCNONE,        {RT}},
-+{"mfspefscr", XSPR(31,339,512), XSPR_MASK, PPCSPE,    PPCNONE,        {RT}},
-+{"mfbbear",   XSPR(31,339,513), XSPR_MASK, PPCBRLK,   PPCNONE,        {RT}},
-+{"mfbbtar",   XSPR(31,339,514), XSPR_MASK, PPCBRLK,   PPCNONE,        {RT}},
-+{"mfivor32",  XSPR(31,339,528), XSPR_MASK, PPCSPE,    PPCNONE,        {RT}},
-+{"mfibatu",   XSPR(31,339,528), XSPRBAT_MASK, PPC,    PPCNONE,        {RT, SPRBAT}},
-+{"mfivor33",  XSPR(31,339,529), XSPR_MASK, PPCSPE,    PPCNONE,        {RT}},
-+{"mfibatl",   XSPR(31,339,529), XSPRBAT_MASK, PPC,    PPCNONE,        {RT, SPRBAT}},
-+{"mfivor34",  XSPR(31,339,530), XSPR_MASK, PPCSPE,    PPCNONE,        {RT}},
-+{"mfivor35",  XSPR(31,339,531), XSPR_MASK, PPCPMR,    PPCNONE,        {RT}},
-+{"mfdbatu",   XSPR(31,339,536), XSPRBAT_MASK, PPC,    PPCNONE,        {RT, SPRBAT}},
-+{"mfdbatl",   XSPR(31,339,537), XSPRBAT_MASK, PPC,    PPCNONE,        {RT, SPRBAT}},
-+{"mfic_cst",  XSPR(31,339,560), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfic_adr",  XSPR(31,339,561), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfic_dat",  XSPR(31,339,562), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfdc_cst",  XSPR(31,339,568), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfdc_adr",  XSPR(31,339,569), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfdc_dat",  XSPR(31,339,570), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmcsrr0",  XSPR(31,339,570), XSPR_MASK, PPCRFMCI,  PPCNONE,        {RT}},
-+{"mfmcsrr1",  XSPR(31,339,571), XSPR_MASK, PPCRFMCI,  PPCNONE,        {RT}},
-+{"mfmcsr",    XSPR(31,339,572), XSPR_MASK, PPCRFMCI,  PPCNONE,        {RT}},
-+{"mfmcar",    XSPR(31,339,573), XSPR_MASK, PPCRFMCI,  PPCNONE,        {RT}},
-+{"mfdpdr",    XSPR(31,339,630), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfdpir",    XSPR(31,339,631), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfimmr",    XSPR(31,339,638), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmi_ctr",  XSPR(31,339,784), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmi_ap",   XSPR(31,339,786), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmi_epn",  XSPR(31,339,787), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmi_twc",  XSPR(31,339,789), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmi_rpn",  XSPR(31,339,790), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmd_ctr",  XSPR(31,339,792), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfm_casid", XSPR(31,339,793), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmd_ap",   XSPR(31,339,794), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmd_epn",  XSPR(31,339,795), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmd_twb",  XSPR(31,339,796), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmd_twc",  XSPR(31,339,797), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmd_rpn",  XSPR(31,339,798), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfm_tw",    XSPR(31,339,799), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmi_dbcam",        XSPR(31,339,816), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmi_dbram0",       XSPR(31,339,817), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmi_dbram1",       XSPR(31,339,818), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmd_dbcam",        XSPR(31,339,824), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmd_dbram0",       XSPR(31,339,825), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfmd_dbram1",       XSPR(31,339,826), XSPR_MASK, PPC860,    PPCNONE,        {RT}},
-+{"mfummcr0",  XSPR(31,339,936), XSPR_MASK, PPC750,    PPCNONE,        {RT}},
-+{"mfupmc1",   XSPR(31,339,937), XSPR_MASK, PPC750,    PPCNONE,        {RT}},
-+{"mfupmc2",   XSPR(31,339,938), XSPR_MASK, PPC750,    PPCNONE,        {RT}},
-+{"mfusia",    XSPR(31,339,939), XSPR_MASK, PPC750,    PPCNONE,        {RT}},
-+{"mfummcr1",  XSPR(31,339,940), XSPR_MASK, PPC750,    PPCNONE,        {RT}},
-+{"mfupmc3",   XSPR(31,339,941), XSPR_MASK, PPC750,    PPCNONE,        {RT}},
-+{"mfupmc4",   XSPR(31,339,942), XSPR_MASK, PPC750,    PPCNONE,        {RT}},
-+{"mfzpr",     XSPR(31,339,944), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfpid",     XSPR(31,339,945), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfccr0",    XSPR(31,339,947), XSPR_MASK, PPC405,    PPCNONE,        {RT}},
-+{"mfiac3",    XSPR(31,339,948), XSPR_MASK, PPC405,    PPCNONE,        {RT}},
-+{"mfiac4",    XSPR(31,339,949), XSPR_MASK, PPC405,    PPCNONE,        {RT}},
-+{"mfdvc1",    XSPR(31,339,950), XSPR_MASK, PPC405,    PPCNONE,        {RT}},
-+{"mfdvc2",    XSPR(31,339,951), XSPR_MASK, PPC405,    PPCNONE,        {RT}},
-+{"mfmmcr0",   XSPR(31,339,952), XSPR_MASK, PPC750,    PPCNONE,        {RT}},
-+{"mfpmc1",    XSPR(31,339,953), XSPR_MASK, PPC750,    PPCNONE,        {RT}},
-+{"mfsgr",     XSPR(31,339,953), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdcwr",    XSPR(31,339,954), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfpmc2",    XSPR(31,339,954), XSPR_MASK, PPC750,    PPCNONE,        {RT}},
-+{"mfsia",     XSPR(31,339,955), XSPR_MASK, PPC750,    PPCNONE,        {RT}},
-+{"mfsler",    XSPR(31,339,955), XSPR_MASK, PPC405,    PPCNONE,        {RT}},
-+{"mfmmcr1",   XSPR(31,339,956), XSPR_MASK, PPC750,    PPCNONE,        {RT}},
-+{"mfsu0r",    XSPR(31,339,956), XSPR_MASK, PPC405,    PPCNONE,        {RT}},
-+{"mfdbcr1",   XSPR(31,339,957), XSPR_MASK, PPC405,    PPCNONE,        {RT}},
-+{"mfpmc3",    XSPR(31,339,957), XSPR_MASK, PPC750,    PPCNONE,        {RT}},
-+{"mfpmc4",    XSPR(31,339,958), XSPR_MASK, PPC750,    PPCNONE,        {RT}},
-+{"mficdbdr",  XSPR(31,339,979), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfesr",     XSPR(31,339,980), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdear",    XSPR(31,339,981), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfevpr",    XSPR(31,339,982), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfcdbcr",   XSPR(31,339,983), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mftsr",     XSPR(31,339,984), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mftcr",     XSPR(31,339,986), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfpit",     XSPR(31,339,987), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mftbhi",    XSPR(31,339,988), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mftblo",    XSPR(31,339,989), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfsrr2",    XSPR(31,339,990), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfsrr3",    XSPR(31,339,991), XSPR_MASK, PPC403,    PPCNONE,        {RT}},
-+{"mfdbsr",    XSPR(31,339,1008), XSPR_MASK, PPC403,   PPCNONE,        {RT}},
-+{"mfdbcr0",   XSPR(31,339,1010), XSPR_MASK, PPC405,   PPCNONE,        {RT}},
-+{"mfiac1",    XSPR(31,339,1012), XSPR_MASK, PPC403,   PPCNONE,        {RT}},
-+{"mfiac2",    XSPR(31,339,1013), XSPR_MASK, PPC403,   PPCNONE,        {RT}},
-+{"mfdac1",    XSPR(31,339,1014), XSPR_MASK, PPC403,   PPCNONE,        {RT}},
-+{"mfdac2",    XSPR(31,339,1015), XSPR_MASK, PPC403,   PPCNONE,        {RT}},
-+{"mfl2cr",    XSPR(31,339,1017), XSPR_MASK, PPC750,   PPCNONE,        {RT}},
-+{"mfdccr",    XSPR(31,339,1018), XSPR_MASK, PPC403,   PPCNONE,        {RT}},
-+{"mficcr",    XSPR(31,339,1019), XSPR_MASK, PPC403,   PPCNONE,        {RT}},
-+{"mfictc",    XSPR(31,339,1019), XSPR_MASK, PPC750,   PPCNONE,        {RT}},
-+{"mfpbl1",    XSPR(31,339,1020), XSPR_MASK, PPC403,   PPCNONE,        {RT}},
-+{"mfthrm1",   XSPR(31,339,1020), XSPR_MASK, PPC750,   PPCNONE,        {RT}},
-+{"mfpbu1",    XSPR(31,339,1021), XSPR_MASK, PPC403,   PPCNONE,        {RT}},
-+{"mfthrm2",   XSPR(31,339,1021), XSPR_MASK, PPC750,   PPCNONE,        {RT}},
-+{"mfpbl2",    XSPR(31,339,1022), XSPR_MASK, PPC403,   PPCNONE,        {RT}},
-+{"mfthrm3",   XSPR(31,339,1022), XSPR_MASK, PPC750,   PPCNONE,        {RT}},
-+{"mfpbu2",    XSPR(31,339,1023), XSPR_MASK, PPC403,   PPCNONE,        {RT}},
-+{"mfspr",     X(31,339),      X_MASK,      COM,       PPCNONE,        {RT, SPR}},
-+
-+{"lwax",      X(31,341),      X_MASK,      PPC64,     PPCNONE,        {RT, RA0, RB}},
-+
-+{"dst",               XDSS(31,342,0), XDSS_MASK,   PPCVEC,    PPCNONE,        {RA, RB, STRM}},
-+
-+{"lhax",      X(31,343),      X_MASK,      COM,       PPCNONE,        {RT, RA0, RB}},
-+
-+{"lvxl",      X(31,359),      X_MASK,      PPCVEC,    PPCNONE,        {VD, RA, RB}},
-+
-+{"abs",               XO(31,360,0,0), XORB_MASK,   M601,      PPCNONE,        {RT, RA}},
-+{"abs.",      XO(31,360,0,1), XORB_MASK,   M601,      PPCNONE,        {RT, RA}},
-+
-+{"divs",      XO(31,363,0,0), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+{"divs.",     XO(31,363,0,1), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+
-+{"tlbia",     X(31,370),      0xffffffff,  PPC,       PPCNONE,        {0}},
-+
-+{"mftbl",     XSPR(31,371,268), XSPR_MASK, CLASSIC,   PPCNONE,        {RT}},
-+{"mftbu",     XSPR(31,371,269), XSPR_MASK, CLASSIC,   PPCNONE,        {RT}},
-+{"mftb",      X(31,371),      X_MASK,      CLASSIC,   POWER7,         {RT, TBR}},
-+
-+{"lwaux",     X(31,373),      X_MASK,      PPC64,     PPCNONE,        {RT, RAL, RB}},
-+
-+{"dstst",     XDSS(31,374,0), XDSS_MASK,   PPCVEC,    PPCNONE,        {RA, RB, STRM}},
-+
-+{"lhaux",     X(31,375),      X_MASK,      COM,       PPCNONE,        {RT, RAL, RB}},
-+
-+{"popcntw",   X(31,378),      XRB_MASK,    POWER7,    PPCNONE,        {RA, RS}},
-+
-+{"mtdcrx",    X(31,387),      X_MASK,      BOOKE,     PPCNONE,        {RA, RS}},
-+
-+{"dcblc",     X(31,390),      X_MASK,      PPCCHLK,   PPCNONE,        {CT, RA, RB}},
-+{"stdfcmx",   APU(31,391,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"divdeu",    XO(31,393,0,0), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+{"divdeu.",   XO(31,393,0,1), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+{"divweu",    XO(31,395,0,0), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+{"divweu.",   XO(31,395,0,1), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+
-+{"dcblce",    X(31,398),      X_MASK,      PPCCHLK,   PPCNONE,        {CT, RA, RB}},
-+
-+{"slbmte",    X(31,402),      XRA_MASK,    PPC64,     PPCNONE,        {RS, RB}},
-+
-+{"sthx",      X(31,407),      X_MASK,      COM,       PPCNONE,        {RS, RA0, RB}},
-+
-+{"orc",               XRC(31,412,0),  X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+{"orc.",      XRC(31,412,1),  X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+
-+{"sthepx",    X(31,415),      X_MASK,      E500MC,    PPCNONE,        {RS, RA, RB}},
-+
-+{"mtdcrux",   X(31,419),      X_MASK,      PPC464,    PPCNONE,        {RA, RS}},
-+
-+{"divde",     XO(31,425,0,0), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+{"divde.",    XO(31,425,0,1), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+{"divwe",     XO(31,427,0,0), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+{"divwe.",    XO(31,427,0,1), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+
-+{"slbie",     X(31,434),      XRTRA_MASK,  PPC64,     PPCNONE,        {RB}},
-+
-+{"ecowx",     X(31,438),      X_MASK,      PPC,       PPCNONE,        {RT, RA, RB}},
-+
-+{"sthux",     X(31,439),      X_MASK,      COM,       PPCNONE,        {RS, RAS, RB}},
-+
-+{"mdors",     0x7f9ce378,     0xffffffff,  E500MC,    PPCNONE,        {0}},
-+
-+{"mr",                XRC(31,444,0),  X_MASK,      COM,       PPCNONE,        {RA, RS, RBS}},
-+{"or",                XRC(31,444,0),  X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+{"mr.",               XRC(31,444,1),  X_MASK,      COM,       PPCNONE,        {RA, RS, RBS}},
-+{"or.",               XRC(31,444,1),  X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+
-+{"mtexisr",   XSPR(31,451, 64), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtexier",   XSPR(31,451, 66), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtbr0",     XSPR(31,451,128), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtbr1",     XSPR(31,451,129), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtbr2",     XSPR(31,451,130), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtbr3",     XSPR(31,451,131), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtbr4",     XSPR(31,451,132), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtbr5",     XSPR(31,451,133), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtbr6",     XSPR(31,451,134), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtbr7",     XSPR(31,451,135), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtbear",    XSPR(31,451,144), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtbesr",    XSPR(31,451,145), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtiocr",    XSPR(31,451,160), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmacr0",  XSPR(31,451,192), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmact0",  XSPR(31,451,193), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmada0",  XSPR(31,451,194), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmasa0",  XSPR(31,451,195), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmacc0",  XSPR(31,451,196), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmacr1",  XSPR(31,451,200), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmact1",  XSPR(31,451,201), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmada1",  XSPR(31,451,202), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmasa1",  XSPR(31,451,203), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmacc1",  XSPR(31,451,204), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmacr2",  XSPR(31,451,208), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmact2",  XSPR(31,451,209), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmada2",  XSPR(31,451,210), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmasa2",  XSPR(31,451,211), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmacc2",  XSPR(31,451,212), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmacr3",  XSPR(31,451,216), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmact3",  XSPR(31,451,217), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmada3",  XSPR(31,451,218), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmasa3",  XSPR(31,451,219), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmacc3",  XSPR(31,451,220), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdmasr",   XSPR(31,451,224), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdcr",     X(31,451),      X_MASK,   PPC403|BOOKE, PPCNONE,        {SPR, RS}},
-+
-+{"dccci",     X(31,454),     XRT_MASK, PPC403|PPC440, PPCNONE,        {RA, RB}},
-+
-+{"divdu",     XO(31,457,0,0), XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+{"divdu.",    XO(31,457,0,1), XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+
-+{"divwu",     XO(31,459,0,0), XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+{"divwu.",    XO(31,459,0,1), XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+
-+{"mtpmr",     X(31,462),      X_MASK, PPCPMR|PPCE300, PPCNONE,        {PMR, RS}},
-+
-+{"mtmq",      XSPR(31,467,  0), XSPR_MASK, M601,      PPCNONE,        {RS}},
-+{"mtxer",     XSPR(31,467,  1), XSPR_MASK, COM,       PPCNONE,        {RS}},
-+{"mtlr",      XSPR(31,467,  8), XSPR_MASK, COM,       PPCNONE,        {RS}},
-+{"mtctr",     XSPR(31,467,  9), XSPR_MASK, COM,       PPCNONE,        {RS}},
-+{"mttid",     XSPR(31,467, 17), XSPR_MASK, POWER,     PPCNONE,        {RS}},
-+{"mtdsisr",   XSPR(31,467, 18), XSPR_MASK, COM,       PPCNONE,        {RS}},
-+{"mtdar",     XSPR(31,467, 19), XSPR_MASK, COM,       PPCNONE,        {RS}},
-+{"mtrtcu",    XSPR(31,467, 20), XSPR_MASK, COM,       PPCNONE,        {RS}},
-+{"mtrtcl",    XSPR(31,467, 21), XSPR_MASK, COM,       PPCNONE,        {RS}},
-+{"mtdec",     XSPR(31,467, 22), XSPR_MASK, COM,       PPCNONE,        {RS}},
-+{"mtsdr0",    XSPR(31,467, 24), XSPR_MASK, POWER,     PPCNONE,        {RS}},
-+{"mtsdr1",    XSPR(31,467, 25), XSPR_MASK, COM,       PPCNONE,        {RS}},
-+{"mtsrr0",    XSPR(31,467, 26), XSPR_MASK, COM,       PPCNONE,        {RS}},
-+{"mtsrr1",    XSPR(31,467, 27), XSPR_MASK, COM,       PPCNONE,        {RS}},
-+{"mtcfar",    XSPR(31,467, 28), XSPR_MASK, POWER6,    PPCNONE,        {RS}},
-+{"mtpid",     XSPR(31,467, 48), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtdecar",   XSPR(31,467, 54), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtcsrr0",   XSPR(31,467, 58), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtcsrr1",   XSPR(31,467, 59), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtdear",    XSPR(31,467, 61), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtesr",     XSPR(31,467, 62), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivpr",    XSPR(31,467, 63), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtcmpa",    XSPR(31,467,144), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mtcmpb",    XSPR(31,467,145), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mtcmpc",    XSPR(31,467,146), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mtcmpd",    XSPR(31,467,147), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mticr",     XSPR(31,467,148), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mtder",     XSPR(31,467,149), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mtcounta",  XSPR(31,467,150), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mtcountb",  XSPR(31,467,151), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mtcmpe",    XSPR(31,467,152), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mtcmpf",    XSPR(31,467,153), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mtcmpg",    XSPR(31,467,154), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mtcmph",    XSPR(31,467,155), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mtlctrl1",  XSPR(31,467,156), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mtlctrl2",  XSPR(31,467,157), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mtictrl",   XSPR(31,467,158), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mtbar",     XSPR(31,467,159), XSPR_MASK, PPC860,    PPCNONE,        {RS}},
-+{"mtvrsave",  XSPR(31,467,256), XSPR_MASK, PPCVEC,    PPCNONE,        {RS}},
-+{"mtusprg0",  XSPR(31,467,256), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtsprg",    XSPR(31,467,256), XSPRG_MASK,PPC,       PPCNONE,        {SPRG, RS}},
-+{"mtsprg0",   XSPR(31,467,272), XSPR_MASK, PPC,       PPCNONE,        {RS}},
-+{"mtsprg1",   XSPR(31,467,273), XSPR_MASK, PPC,       PPCNONE,        {RS}},
-+{"mtsprg2",   XSPR(31,467,274), XSPR_MASK, PPC,       PPCNONE,        {RS}},
-+{"mtsprg3",   XSPR(31,467,275), XSPR_MASK, PPC,       PPCNONE,        {RS}},
-+{"mtsprg4",   XSPR(31,467,276), XSPR_MASK, PPC405|BOOKE, PPCNONE,     {RS}},
-+{"mtsprg5",   XSPR(31,467,277), XSPR_MASK, PPC405|BOOKE, PPCNONE,     {RS}},
-+{"mtsprg6",   XSPR(31,467,278), XSPR_MASK, PPC405|BOOKE, PPCNONE,     {RS}},
-+{"mtsprg7",   XSPR(31,467,279), XSPR_MASK, PPC405|BOOKE, PPCNONE,     {RS}},
-+{"mtasr",     XSPR(31,467,280), XSPR_MASK, PPC64,     PPCNONE,        {RS}},
-+{"mtear",     XSPR(31,467,282), XSPR_MASK, PPC,       PPCNONE,        {RS}},
-+{"mttbl",     XSPR(31,467,284), XSPR_MASK, PPC,       PPCNONE,        {RS}},
-+{"mttbu",     XSPR(31,467,285), XSPR_MASK, PPC,       PPCNONE,        {RS}},
-+{"mtdbsr",    XSPR(31,467,304), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtdbcr0",   XSPR(31,467,308), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtdbcr1",   XSPR(31,467,309), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtdbcr2",   XSPR(31,467,310), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtiac1",    XSPR(31,467,312), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtiac2",    XSPR(31,467,313), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtiac3",    XSPR(31,467,314), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtiac4",    XSPR(31,467,315), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtdac1",    XSPR(31,467,316), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtdac2",    XSPR(31,467,317), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtdvc1",    XSPR(31,467,318), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtdvc2",    XSPR(31,467,319), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mttsr",     XSPR(31,467,336), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mttcr",     XSPR(31,467,340), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor0",   XSPR(31,467,400), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor1",   XSPR(31,467,401), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor2",   XSPR(31,467,402), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor3",   XSPR(31,467,403), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor4",   XSPR(31,467,404), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor5",   XSPR(31,467,405), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor6",   XSPR(31,467,406), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor7",   XSPR(31,467,407), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor8",   XSPR(31,467,408), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor9",   XSPR(31,467,409), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor10",  XSPR(31,467,410), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor11",  XSPR(31,467,411), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor12",  XSPR(31,467,412), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor13",  XSPR(31,467,413), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor14",  XSPR(31,467,414), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtivor15",  XSPR(31,467,415), XSPR_MASK, BOOKE,     PPCNONE,        {RS}},
-+{"mtspefscr", XSPR(31,467,512), XSPR_MASK, PPCSPE,    PPCNONE,        {RS}},
-+{"mtbbear",   XSPR(31,467,513), XSPR_MASK, PPCBRLK,   PPCNONE,        {RS}},
-+{"mtbbtar",   XSPR(31,467,514), XSPR_MASK, PPCBRLK,   PPCNONE,        {RS}},
-+{"mtivor32",  XSPR(31,467,528), XSPR_MASK, PPCSPE,    PPCNONE,        {RS}},
-+{"mtibatu",   XSPR(31,467,528), XSPRBAT_MASK, PPC,    PPCNONE,        {SPRBAT, RS}},
-+{"mtivor33",  XSPR(31,467,529), XSPR_MASK, PPCSPE,    PPCNONE,        {RS}},
-+{"mtibatl",   XSPR(31,467,529), XSPRBAT_MASK, PPC,    PPCNONE,        {SPRBAT, RS}},
-+{"mtivor34",  XSPR(31,467,530), XSPR_MASK, PPCSPE,    PPCNONE,        {RS}},
-+{"mtivor35",  XSPR(31,467,531), XSPR_MASK, PPCPMR,    PPCNONE,        {RS}},
-+{"mtdbatu",   XSPR(31,467,536), XSPRBAT_MASK, PPC,    PPCNONE,        {SPRBAT, RS}},
-+{"mtdbatl",   XSPR(31,467,537), XSPRBAT_MASK, PPC,    PPCNONE,        {SPRBAT, RS}},
-+{"mtmcsrr0",  XSPR(31,467,570), XSPR_MASK, PPCRFMCI,  PPCNONE,        {RS}},
-+{"mtmcsrr1",  XSPR(31,467,571), XSPR_MASK, PPCRFMCI,  PPCNONE,        {RS}},
-+{"mtmcsr",    XSPR(31,467,572), XSPR_MASK, PPCRFMCI,  PPCNONE,        {RS}},
-+{"mtummcr0",  XSPR(31,467,936), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
-+{"mtupmc1",   XSPR(31,467,937), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
-+{"mtupmc2",   XSPR(31,467,938), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
-+{"mtusia",    XSPR(31,467,939), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
-+{"mtummcr1",  XSPR(31,467,940), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
-+{"mtupmc3",   XSPR(31,467,941), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
-+{"mtupmc4",   XSPR(31,467,942), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
-+{"mtzpr",     XSPR(31,467,944), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtpid",     XSPR(31,467,945), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtccr0",    XSPR(31,467,947), XSPR_MASK, PPC405,    PPCNONE,        {RS}},
-+{"mtiac3",    XSPR(31,467,948), XSPR_MASK, PPC405,    PPCNONE,        {RS}},
-+{"mtiac4",    XSPR(31,467,949), XSPR_MASK, PPC405,    PPCNONE,        {RS}},
-+{"mtdvc1",    XSPR(31,467,950), XSPR_MASK, PPC405,    PPCNONE,        {RS}},
-+{"mtdvc2",    XSPR(31,467,951), XSPR_MASK, PPC405,    PPCNONE,        {RS}},
-+{"mtmmcr0",   XSPR(31,467,952), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
-+{"mtpmc1",    XSPR(31,467,953), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
-+{"mtsgr",     XSPR(31,467,953), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdcwr",    XSPR(31,467,954), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtpmc2",    XSPR(31,467,954), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
-+{"mtsia",     XSPR(31,467,955), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
-+{"mtsler",    XSPR(31,467,955), XSPR_MASK, PPC405,    PPCNONE,        {RS}},
-+{"mtmmcr1",   XSPR(31,467,956), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
-+{"mtsu0r",    XSPR(31,467,956), XSPR_MASK, PPC405,    PPCNONE,        {RS}},
-+{"mtdbcr1",   XSPR(31,467,957), XSPR_MASK, PPC405,    PPCNONE,        {RS}},
-+{"mtpmc3",    XSPR(31,467,957), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
-+{"mtpmc4",    XSPR(31,467,958), XSPR_MASK, PPC750,    PPCNONE,        {RS}},
-+{"mticdbdr",  XSPR(31,467,979), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtesr",     XSPR(31,467,980), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdear",    XSPR(31,467,981), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtevpr",    XSPR(31,467,982), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtcdbcr",   XSPR(31,467,983), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mttsr",     XSPR(31,467,984), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mttcr",     XSPR(31,467,986), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtpit",     XSPR(31,467,987), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mttbhi",    XSPR(31,467,988), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mttblo",    XSPR(31,467,989), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtsrr2",    XSPR(31,467,990), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtsrr3",    XSPR(31,467,991), XSPR_MASK, PPC403,    PPCNONE,        {RS}},
-+{"mtdbsr",    XSPR(31,467,1008), XSPR_MASK, PPC403,   PPCNONE,        {RS}},
-+{"mtdbcr0",   XSPR(31,467,1010), XSPR_MASK, PPC405,   PPCNONE,        {RS}},
-+{"mtiac1",    XSPR(31,467,1012), XSPR_MASK, PPC403,   PPCNONE,        {RS}},
-+{"mtiac2",    XSPR(31,467,1013), XSPR_MASK, PPC403,   PPCNONE,        {RS}},
-+{"mtdac1",    XSPR(31,467,1014), XSPR_MASK, PPC403,   PPCNONE,        {RS}},
-+{"mtdac2",    XSPR(31,467,1015), XSPR_MASK, PPC403,   PPCNONE,        {RS}},
-+{"mtl2cr",    XSPR(31,467,1017), XSPR_MASK, PPC750,   PPCNONE,        {RS}},
-+{"mtdccr",    XSPR(31,467,1018), XSPR_MASK, PPC403,   PPCNONE,        {RS}},
-+{"mticcr",    XSPR(31,467,1019), XSPR_MASK, PPC403,   PPCNONE,        {RS}},
-+{"mtictc",    XSPR(31,467,1019), XSPR_MASK, PPC750,   PPCNONE,        {RS}},
-+{"mtpbl1",    XSPR(31,467,1020), XSPR_MASK, PPC403,   PPCNONE,        {RS}},
-+{"mtthrm1",   XSPR(31,467,1020), XSPR_MASK, PPC750,   PPCNONE,        {RS}},
-+{"mtpbu1",    XSPR(31,467,1021), XSPR_MASK, PPC403,   PPCNONE,        {RS}},
-+{"mtthrm2",   XSPR(31,467,1021), XSPR_MASK, PPC750,   PPCNONE,        {RS}},
-+{"mtpbl2",    XSPR(31,467,1022), XSPR_MASK, PPC403,   PPCNONE,        {RS}},
-+{"mtthrm3",   XSPR(31,467,1022), XSPR_MASK, PPC750,   PPCNONE,        {RS}},
-+{"mtpbu2",    XSPR(31,467,1023), XSPR_MASK, PPC403,   PPCNONE,        {RS}},
-+{"mtspr",     X(31,467),        X_MASK,    COM,       PPCNONE,        {SPR, RS}},
-+
-+{"dcbi",      X(31,470),      XRT_MASK,    PPC,       PPCNONE,        {RA, RB}},
-+
-+{"nand",      XRC(31,476,0),  X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+{"nand.",     XRC(31,476,1),  X_MASK,      COM,       PPCNONE,        {RA, RS, RB}},
-+
-+{"dsn",       X(31,483),      XRT_MASK,    E500MC,    PPCNONE,        {RA, RB}},
-+
-+{"dcread",    X(31,486),      X_MASK,  PPC403|PPC440, PPCNONE,        {RT, RA, RB}},
-+
-+{"icbtls",    X(31,486),      X_MASK,      PPCCHLK,   PPCNONE,        {CT, RA, RB}},
-+
-+{"stvxl",     X(31,487),      X_MASK,      PPCVEC,    PPCNONE,        {VS, RA, RB}},
-+
-+{"nabs",      XO(31,488,0,0), XORB_MASK,   M601,      PPCNONE,        {RT, RA}},
-+{"nabs.",     XO(31,488,0,1), XORB_MASK,   M601,      PPCNONE,        {RT, RA}},
-+
-+{"divd",      XO(31,489,0,0), XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+{"divd.",     XO(31,489,0,1), XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+
-+{"divw",      XO(31,491,0,0), XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+{"divw.",     XO(31,491,0,1), XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+
-+{"icbtlse",   X(31,494),      X_MASK,      PPCCHLK,   PPCNONE,        {CT, RA, RB}},
-+
-+{"slbia",     X(31,498),      0xffffffff,  PPC64,     PPCNONE,        {0}},
-+
-+{"cli",               X(31,502),      XRB_MASK,    POWER,     PPCNONE,        {RT, RA}},
-+
-+{"popcntd",   X(31,506),      XRB_MASK,    POWER7,    PPCNONE,        {RA, RS}},
-+
-+{"cmpb",      X(31,508),      X_MASK,      POWER6,    PPCNONE,        {RA, RS, RB}},
-+
-+{"mcrxr",     X(31,512), XRARB_MASK|(3<<21), COM,     POWER7,         {BF}},
-+
-+{"lbdx",      X(31,515),      X_MASK,      E500MC,    PPCNONE,        {RT, RA, RB}},
-+
-+{"bblels",    X(31,518),      X_MASK,      PPCBRLK,   PPCNONE,        {0}},
-+
-+{"lvlx",      X(31,519),      X_MASK,      CELL,      PPCNONE,        {VD, RA0, RB}},
-+{"lbfcmux",   APU(31,519,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"subfco",    XO(31,8,1,0),   XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"sfo",               XO(31,8,1,0),   XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+{"subco",     XO(31,8,1,0),   XO_MASK,     PPC,       PPCNONE,        {RT, RB, RA}},
-+{"subfco.",   XO(31,8,1,1),   XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"sfo.",      XO(31,8,1,1),   XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+{"subco.",    XO(31,8,1,1),   XO_MASK,     PPC,       PPCNONE,        {RT, RB, RA}},
-+
-+{"addco",     XO(31,10,1,0),  XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"ao",                XO(31,10,1,0),  XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+{"addco.",    XO(31,10,1,1),  XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"ao.",               XO(31,10,1,1),  XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"clcs",      X(31,531),      XRB_MASK,    M601,      PPCNONE,        {RT, RA}},
-+
-+{"ldbrx",     X(31,532),      X_MASK,    CELL|POWER7, PPCNONE,        {RT, RA0, RB}},
-+
-+{"lswx",      X(31,533),      X_MASK,      PPCCOM,    PPCNONE,        {RT, RA0, RB}},
-+{"lsx",               X(31,533),      X_MASK,      PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"lwbrx",     X(31,534),      X_MASK,      PPCCOM,    PPCNONE,        {RT, RA0, RB}},
-+{"lbrx",      X(31,534),      X_MASK,      PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"lfsx",      X(31,535),      X_MASK,      COM,       PPCNONE,        {FRT, RA0, RB}},
-+
-+{"srw",               XRC(31,536,0),  X_MASK,      PPCCOM,    PPCNONE,        {RA, RS, RB}},
-+{"sr",                XRC(31,536,0),  X_MASK,      PWRCOM,    PPCNONE,        {RA, RS, RB}},
-+{"srw.",      XRC(31,536,1),  X_MASK,      PPCCOM,    PPCNONE,        {RA, RS, RB}},
-+{"sr.",               XRC(31,536,1),  X_MASK,      PWRCOM,    PPCNONE,        {RA, RS, RB}},
-+
-+{"rrib",      XRC(31,537,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+{"rrib.",     XRC(31,537,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+
-+{"srd",               XRC(31,539,0),  X_MASK,      PPC64,     PPCNONE,        {RA, RS, RB}},
-+{"srd.",      XRC(31,539,1),  X_MASK,      PPC64,     PPCNONE,        {RA, RS, RB}},
-+
-+{"maskir",    XRC(31,541,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+{"maskir.",   XRC(31,541,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+
-+{"lhdx",      X(31,547),      X_MASK,      E500MC,    PPCNONE,        {RT, RA, RB}},
-+
-+{"bbelr",     X(31,550),      X_MASK,      PPCBRLK,   PPCNONE,        {0}},
-+
-+{"lvrx",      X(31,551),      X_MASK,      CELL,      PPCNONE,        {VD, RA0, RB}},
-+{"lhfcmux",   APU(31,551,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"subfo",     XO(31,40,1,0),  XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+{"subo",      XO(31,40,1,0),  XO_MASK,     PPC,       PPCNONE,        {RT, RB, RA}},
-+{"subfo.",    XO(31,40,1,1),  XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+{"subo.",     XO(31,40,1,1),  XO_MASK,     PPC,       PPCNONE,        {RT, RB, RA}},
-+
-+{"tlbsync",   X(31,566),      0xffffffff,  PPC,       PPCNONE,        {0}},
-+
-+{"lfsux",     X(31,567),      X_MASK,      COM,       PPCNONE,        {FRT, RAS, RB}},
-+
-+{"lwdx",      X(31,579),      X_MASK,      E500MC,    PPCNONE,        {RT, RA, RB}},
-+
-+{"lwfcmux",   APU(31,583,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"lxsdx",     X(31,588),      XX1_MASK,    PPCVSX,    PPCNONE,        {XT6, RA, RB}},
-+
-+{"mfsr",      X(31,595), XRB_MASK|(1<<20), COM32,     PPCNONE,        {RT, SR}},
-+
-+{"lswi",      X(31,597),      X_MASK,      PPCCOM,    PPCNONE,        {RT, RA0, NB}},
-+{"lsi",               X(31,597),      X_MASK,      PWRCOM,    PPCNONE,        {RT, RA0, NB}},
-+
-+{"msync",     X(31,598),      0xffffffff,  BOOKE,     PPCNONE,        {0}},
-+{"lwsync",    XSYNC(31,598,1), 0xffffffff, PPC,       PPCNONE,        {0}},
-+{"ptesync",   XSYNC(31,598,2), 0xffffffff, PPC64,     PPCNONE,        {0}},
-+{"sync",      X(31,598),      XSYNC_MASK,  PPCCOM,    PPCNONE,        {LS}},
-+{"dcs",               X(31,598),      0xffffffff,  PWRCOM,    PPCNONE,        {0}},
-+
-+{"lfdx",      X(31,599),      X_MASK,      COM,       PPCNONE,        {FRT, RA0, RB}},
-+
-+{"lfdepx",    X(31,607),      X_MASK,      E500MC,    PPCNONE,        {FRT, RA, RB}},
-+{"mffgpr",    XRC(31,607,0),  XRA_MASK,    POWER6,    POWER7,         {FRT, RB}},
-+
-+{"lddx",      X(31,611),      X_MASK,      E500MC,    PPCNONE,        {RT, RA, RB}},
-+
-+{"lqfcmux",   APU(31,615,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"nego",      XO(31,104,1,0), XORB_MASK,   COM,       PPCNONE,        {RT, RA}},
-+{"nego.",     XO(31,104,1,1), XORB_MASK,   COM,       PPCNONE,        {RT, RA}},
-+
-+{"mulo",      XO(31,107,1,0), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+{"mulo.",     XO(31,107,1,1), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+
-+{"lxsdux",    X(31,620),      XX1_MASK,    PPCVSX,    PPCNONE,        {XT6, RA, RB}},
-+
-+{"mfsri",     X(31,627),      X_MASK,      PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"dclst",     X(31,630),      XRB_MASK,    PWRCOM,    PPCNONE,        {RS, RA}},
-+
-+{"lfdux",     X(31,631),      X_MASK,      COM,       PPCNONE,        {FRT, RAS, RB}},
-+
-+{"stbdx",     X(31,643),      X_MASK,      E500MC,    PPCNONE,        {RS, RA, RB}},
-+
-+{"stvlx",     X(31,647),      X_MASK,      CELL,      PPCNONE,        {VS, RA0, RB}},
-+{"stbfcmux",  APU(31,647,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"subfeo",    XO(31,136,1,0), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"sfeo",      XO(31,136,1,0), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+{"subfeo.",   XO(31,136,1,1), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"sfeo.",     XO(31,136,1,1), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"addeo",     XO(31,138,1,0), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"aeo",               XO(31,138,1,0), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+{"addeo.",    XO(31,138,1,1), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"aeo.",      XO(31,138,1,1), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"mfsrin",    X(31,659),      XRA_MASK,    PPC32,     PPCNONE,        {RT, RB}},
-+
-+{"stdbrx",    X(31,660),      X_MASK,    CELL|POWER7, PPCNONE,        {RS, RA0, RB}},
-+
-+{"stswx",     X(31,661),      X_MASK,      PPCCOM,    PPCNONE,        {RS, RA0, RB}},
-+{"stsx",      X(31,661),      X_MASK,      PWRCOM,    PPCNONE,        {RS, RA0, RB}},
-+
-+{"stwbrx",    X(31,662),      X_MASK,      PPCCOM,    PPCNONE,        {RS, RA0, RB}},
-+{"stbrx",     X(31,662),      X_MASK,      PWRCOM,    PPCNONE,        {RS, RA0, RB}},
-+
-+{"stfsx",     X(31,663),      X_MASK,      COM,       PPCNONE,        {FRS, RA0, RB}},
-+
-+{"srq",               XRC(31,664,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+{"srq.",      XRC(31,664,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+
-+{"sre",               XRC(31,665,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+{"sre.",      XRC(31,665,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+
-+{"sthdx",     X(31,675),      X_MASK,      E500MC,    PPCNONE,        {RS, RA, RB}},
-+
-+{"stvrx",     X(31,679),      X_MASK,      CELL,      PPCNONE,        {VS, RA0, RB}},
-+{"sthfcmux",  APU(31,679,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"stbcx.",    XRC(31,694,1),  X_MASK,      POWER7,    PPCNONE,        {RS, RA0, RB}},
-+
-+{"stfsux",    X(31,695),      X_MASK,      COM,       PPCNONE,        {FRS, RAS, RB}},
-+
-+{"sriq",      XRC(31,696,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, SH}},
-+{"sriq.",     XRC(31,696,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, SH}},
-+
-+{"stwdx",     X(31,707),      X_MASK,      E500MC,    PPCNONE,        {RS, RA, RB}},
-+
-+{"stwfcmux",  APU(31,711,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"stxsdx",    X(31,716),      XX1_MASK,    PPCVSX,    PPCNONE,        {XS6, RA, RB}},
-+
-+{"subfzeo",   XO(31,200,1,0), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"sfzeo",     XO(31,200,1,0), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+{"subfzeo.",  XO(31,200,1,1), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"sfzeo.",    XO(31,200,1,1), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+
-+{"addzeo",    XO(31,202,1,0), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"azeo",      XO(31,202,1,0), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+{"addzeo.",   XO(31,202,1,1), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"azeo.",     XO(31,202,1,1), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+
-+{"stswi",     X(31,725),      X_MASK,      PPCCOM,    PPCNONE,        {RS, RA0, NB}},
-+{"stsi",      X(31,725),      X_MASK,      PWRCOM,    PPCNONE,        {RS, RA0, NB}},
-+
-+{"sthcx.",    XRC(31,726,1),  X_MASK,      POWER7,    PPCNONE,        {RS, RA0, RB}},
-+
-+{"stfdx",     X(31,727),      X_MASK,      COM,       PPCNONE,        {FRS, RA0, RB}},
-+
-+{"srlq",      XRC(31,728,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+{"srlq.",     XRC(31,728,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+
-+{"sreq",      XRC(31,729,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+{"sreq.",     XRC(31,729,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+
-+{"stfdepx",   X(31,735),      X_MASK,      E500MC,    PPCNONE,        {FRS, RA, RB}},
-+{"mftgpr",    XRC(31,735,0),  XRA_MASK,    POWER6,    POWER7,         {RT, FRB}},
-+
-+{"stddx",     X(31,739),      X_MASK,      E500MC,    PPCNONE,        {RS, RA, RB}},
-+
-+{"stqfcmux",  APU(31,743,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"stxsdux",   X(31,748),      XX1_MASK,    PPCVSX,    PPCNONE,        {XS6, RA, RB}},
-+
-+{"subfmeo",   XO(31,232,1,0), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"sfmeo",     XO(31,232,1,0), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+{"subfmeo.",  XO(31,232,1,1), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"sfmeo.",    XO(31,232,1,1), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+
-+{"mulldo",    XO(31,233,1,0), XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+{"mulldo.",   XO(31,233,1,1), XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+
-+{"addmeo",    XO(31,234,1,0), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"ameo",      XO(31,234,1,0), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+{"addmeo.",   XO(31,234,1,1), XORB_MASK,   PPCCOM,    PPCNONE,        {RT, RA}},
-+{"ameo.",     XO(31,234,1,1), XORB_MASK,   PWRCOM,    PPCNONE,        {RT, RA}},
-+
-+{"mullwo",    XO(31,235,1,0), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"mulso",     XO(31,235,1,0), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+{"mullwo.",   XO(31,235,1,1), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"mulso.",    XO(31,235,1,1), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"dcba",      X(31,758), XRT_MASK, PPC405|PPC7450|BOOKE, PPCNONE,     {RA, RB}},
-+{"dcbal",     XOPL(31,758,1), XRT_MASK,    E500MC,    PPCNONE,        {RA, RB}},
-+
-+{"stfdux",    X(31,759),      X_MASK,      COM,       PPCNONE,        {FRS, RAS, RB}},
-+
-+{"srliq",     XRC(31,760,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, SH}},
-+{"srliq.",    XRC(31,760,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, SH}},
-+
-+{"lvlxl",     X(31,775),      X_MASK,      CELL,      PPCNONE,        {VD, RA0, RB}},
-+{"ldfcmux",   APU(31,775,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"dozo",      XO(31,264,1,0), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+{"dozo.",     XO(31,264,1,1), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+
-+{"addo",      XO(31,266,1,0), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"caxo",      XO(31,266,1,0), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+{"addo.",     XO(31,266,1,1), XO_MASK,     PPCCOM,    PPCNONE,        {RT, RA, RB}},
-+{"caxo.",     XO(31,266,1,1), XO_MASK,     PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"lxvw4x",    X(31,780),      XX1_MASK,    PPCVSX,    PPCNONE,        {XT6, RA, RB}},
-+
-+{"tlbivax",   X(31,786),      XRT_MASK,    BOOKE,     PPCNONE,        {RA, RB}},
-+{"tlbilx",    X(31,787),      X_MASK,      E500MC,    PPCNONE,        {T, RA0, RB}},
-+{"tlbilxlpid",        XTO(31,787,0),  XTO_MASK,    E500MC,    PPCNONE,        {0}},
-+{"tlbilxpid", XTO(31,787,1),  XTO_MASK,    E500MC,    PPCNONE,        {0}},
-+{"tlbilxva",  XTO(31,787,3),  XTO_MASK,    E500MC,    PPCNONE,        {RA0, RB}},
-+
-+{"lwzcix",    X(31,789),      X_MASK,      POWER6,    PPCNONE,        {RT, RA0, RB}},
-+
-+{"lhbrx",     X(31,790),      X_MASK,      COM,       PPCNONE,        {RT, RA0, RB}},
-+
-+{"lfdpx",     X(31,791),      X_MASK,      POWER6,    POWER7,         {FRT, RA, RB}},
-+{"lfqx",      X(31,791),      X_MASK,      POWER2,    PPCNONE,        {FRT, RA, RB}},
-+
-+{"sraw",      XRC(31,792,0),  X_MASK,      PPCCOM,    PPCNONE,        {RA, RS, RB}},
-+{"sra",               XRC(31,792,0),  X_MASK,      PWRCOM,    PPCNONE,        {RA, RS, RB}},
-+{"sraw.",     XRC(31,792,1),  X_MASK,      PPCCOM,    PPCNONE,        {RA, RS, RB}},
-+{"sra.",      XRC(31,792,1),  X_MASK,      PWRCOM,    PPCNONE,        {RA, RS, RB}},
-+
-+{"srad",      XRC(31,794,0),  X_MASK,      PPC64,     PPCNONE,        {RA, RS, RB}},
-+{"srad.",     XRC(31,794,1),  X_MASK,      PPC64,     PPCNONE,        {RA, RS, RB}},
-+
-+{"lfddx",     X(31,803),      X_MASK,      E500MC,    PPCNONE,        {FRT, RA, RB}},
-+
-+{"lvrxl",     X(31,807),      X_MASK,      CELL,      PPCNONE,        {VD, RA0, RB}},
-+
-+{"lxvw4ux",   X(31,812),      XX1_MASK,    PPCVSX,    PPCNONE,        {XT6, RA, RB}},
-+
-+{"rac",               X(31,818),      X_MASK,      PWRCOM,    PPCNONE,        {RT, RA, RB}},
-+
-+{"lhzcix",    X(31,821),      X_MASK,      POWER6,    PPCNONE,        {RT, RA0, RB}},
-+
-+{"dss",               XDSS(31,822,0), XDSS_MASK,   PPCVEC,    PPCNONE,        {STRM}},
-+
-+{"lfqux",     X(31,823),      X_MASK,      POWER2,    PPCNONE,        {FRT, RA, RB}},
-+
-+{"srawi",     XRC(31,824,0),  X_MASK,      PPCCOM,    PPCNONE,        {RA, RS, SH}},
-+{"srai",      XRC(31,824,0),  X_MASK,      PWRCOM,    PPCNONE,        {RA, RS, SH}},
-+{"srawi.",    XRC(31,824,1),  X_MASK,      PPCCOM,    PPCNONE,        {RA, RS, SH}},
-+{"srai.",     XRC(31,824,1),  X_MASK,      PWRCOM,    PPCNONE,        {RA, RS, SH}},
-+
-+{"sradi",     XS(31,413,0),   XS_MASK,     PPC64,     PPCNONE,        {RA, RS, SH6}},
-+{"sradi.",    XS(31,413,1),   XS_MASK,     PPC64,     PPCNONE,        {RA, RS, SH6}},
-+
-+{"divo",      XO(31,331,1,0), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+{"divo.",     XO(31,331,1,1), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+
-+{"lxvd2x",    X(31,844),      XX1_MASK,    PPCVSX,    PPCNONE,        {XT6, RA, RB}},
-+
-+{"slbmfev",   X(31,851),      XRA_MASK,    PPC64,     PPCNONE,        {RT, RB}},
-+
-+{"lbzcix",    X(31,853),      X_MASK,      POWER6,    PPCNONE,        {RT, RA0, RB}},
-+
-+{"mbar",      X(31,854),      X_MASK,      BOOKE,     PPCNONE,        {MO}},
-+{"eieio",     X(31,854),      0xffffffff,  PPC,       PPCNONE,        {0}},
-+
-+{"lfiwax",    X(31,855),      X_MASK,      POWER6,    PPCNONE,        {FRT, RA0, RB}},
-+
-+{"abso",      XO(31,360,1,0), XORB_MASK,   M601,      PPCNONE,        {RT, RA}},
-+{"abso.",     XO(31,360,1,1), XORB_MASK,   M601,      PPCNONE,        {RT, RA}},
-+
-+{"divso",     XO(31,363,1,0), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+{"divso.",    XO(31,363,1,1), XO_MASK,     M601,      PPCNONE,        {RT, RA, RB}},
-+
-+{"lxvd2ux",   X(31,876),      XX1_MASK,    PPCVSX,    PPCNONE,        {XT6, RA, RB}},
-+
-+{"ldcix",     X(31,885),      X_MASK,      POWER6,    PPCNONE,        {RT, RA0, RB}},
-+
-+{"lfiwzx",    X(31,887),      X_MASK,      POWER7,    PPCNONE,        {FRT, RA0, RB}},
-+
-+{"stvlxl",    X(31,903),      X_MASK,      CELL,      PPCNONE,        {VS, RA0, RB}},
-+{"stdfcmux",  APU(31,903,0),  APU_MASK,    PPC405,    PPCNONE,        {FCRT, RA, RB}},
-+
-+{"divdeuo",   XO(31,393,1,0), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+{"divdeuo.",  XO(31,393,1,1), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+{"divweuo",   XO(31,395,1,0), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+{"divweuo.",  XO(31,395,1,1), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+
-+{"stxvw4x",   X(31,908),      XX1_MASK,    PPCVSX,    PPCNONE,        {XS6, RA, RB}},
-+
-+{"tlbsx",     XRC(31,914,0),  X_MASK,   PPC403|BOOKE, PPCNONE,        {RTO, RA, RB}},
-+{"tlbsx.",    XRC(31,914,1),  X_MASK,   PPC403|BOOKE, PPCNONE,        {RTO, RA, RB}},
-+
-+{"slbmfee",   X(31,915),      XRA_MASK,    PPC64,     PPCNONE,        {RT, RB}},
-+
-+{"stwcix",    X(31,917),      X_MASK,      POWER6,    PPCNONE,        {RS, RA0, RB}},
-+
-+{"sthbrx",    X(31,918),      X_MASK,      COM,       PPCNONE,        {RS, RA0, RB}},
-+
-+{"stfdpx",    X(31,919),      X_MASK,      POWER6,    PPCNONE,        {FRS, RA, RB}},
-+{"stfqx",     X(31,919),      X_MASK,      POWER2,    PPCNONE,        {FRS, RA, RB}},
-+
-+{"sraq",      XRC(31,920,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+{"sraq.",     XRC(31,920,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+
-+{"srea",      XRC(31,921,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+{"srea.",     XRC(31,921,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, RB}},
-+
-+{"extsh",     XRC(31,922,0),  XRB_MASK,    PPCCOM,    PPCNONE,        {RA, RS}},
-+{"exts",      XRC(31,922,0),  XRB_MASK,    PWRCOM,    PPCNONE,        {RA, RS}},
-+{"extsh.",    XRC(31,922,1),  XRB_MASK,    PPCCOM,    PPCNONE,        {RA, RS}},
-+{"exts.",     XRC(31,922,1),  XRB_MASK,    PWRCOM,    PPCNONE,        {RA, RS}},
-+
-+{"stfddx",    X(31,931),      X_MASK,      E500MC,    PPCNONE,        {FRS, RA, RB}},
-+
-+{"stvrxl",    X(31,935),      X_MASK,      CELL,      PPCNONE,        {VS, RA0, RB}},
-+
-+{"divdeo",    XO(31,425,1,0), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+{"divdeo.",   XO(31,425,1,1), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+{"divweo",    XO(31,427,1,0), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+{"divweo.",   XO(31,427,1,1), XO_MASK,     POWER7,    PPCNONE,        {RT, RA, RB}},
-+
-+{"stxvw4ux",  X(31,940),      XX1_MASK,    PPCVSX,    PPCNONE,        {XS6, RA, RB}},
-+
-+{"tlbrehi",   XTLB(31,946,0), XTLB_MASK,   PPC403,    PPCNONE,        {RT, RA}},
-+{"tlbrelo",   XTLB(31,946,1), XTLB_MASK,   PPC403,    PPCNONE,        {RT, RA}},
-+{"tlbre",     X(31,946),      X_MASK,   PPC403|BOOKE, PPCNONE,        {RSO, RAOPT, SHO}},
-+
-+{"sthcix",    X(31,949),      X_MASK,      POWER6,    PPCNONE,        {RS, RA0, RB}},
-+
-+{"stfqux",    X(31,951),      X_MASK,      POWER2,    PPCNONE,        {FRS, RA, RB}},
-+
-+{"sraiq",     XRC(31,952,0),  X_MASK,      M601,      PPCNONE,        {RA, RS, SH}},
-+{"sraiq.",    XRC(31,952,1),  X_MASK,      M601,      PPCNONE,        {RA, RS, SH}},
-+
-+{"extsb",     XRC(31,954,0),  XRB_MASK,    PPC,       PPCNONE,        {RA, RS}},
-+{"extsb.",    XRC(31,954,1),  XRB_MASK,    PPC,       PPCNONE,        {RA, RS}},
-+
-+{"iccci",     X(31,966),     XRT_MASK, PPC403|PPC440, PPCNONE,        {RA, RB}},
-+
-+{"divduo",    XO(31,457,1,0), XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+{"divduo.",   XO(31,457,1,1), XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+
-+{"divwuo",    XO(31,459,1,0), XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+{"divwuo.",   XO(31,459,1,1), XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+
-+{"stxvd2x",   X(31,972),      XX1_MASK,    PPCVSX,    PPCNONE,        {XS6, RA, RB}},
-+
-+{"tlbwehi",   XTLB(31,978,0), XTLB_MASK,   PPC403,    PPCNONE,        {RT, RA}},
-+{"tlbwelo",   XTLB(31,978,1), XTLB_MASK,   PPC403,    PPCNONE,        {RT, RA}},
-+{"tlbwe",     X(31,978),      X_MASK,   PPC403|BOOKE, PPCNONE,        {RSO, RAOPT, SHO}},
-+{"tlbld",     X(31,978),      XRTRA_MASK,  PPC,       PPCNONE,        {RB}},
-+
-+{"stbcix",    X(31,981),      X_MASK,      POWER6,    PPCNONE,        {RS, RA0, RB}},
-+
-+{"icbi",      X(31,982),      XRT_MASK,    PPC,       PPCNONE,        {RA, RB}},
-+
-+{"stfiwx",    X(31,983),      X_MASK,      PPC,       PPCNONE,        {FRS, RA0, RB}},
-+
-+{"extsw",     XRC(31,986,0),  XRB_MASK,    PPC64,     PPCNONE,        {RA, RS}},
-+{"extsw.",    XRC(31,986,1),  XRB_MASK,    PPC64,     PPCNONE,        {RA, RS}},
-+
-+{"icbiep",    XRT(31,991,0),  XRT_MASK,    E500MC,    PPCNONE,        {RA, RB}},
-+
-+{"icread",    X(31,998),     XRT_MASK, PPC403|PPC440, PPCNONE,        {RA, RB}},
-+
-+{"nabso",     XO(31,488,1,0), XORB_MASK,   M601,      PPCNONE,        {RT, RA}},
-+{"nabso.",    XO(31,488,1,1), XORB_MASK,   M601,      PPCNONE,        {RT, RA}},
-+
-+{"divdo",     XO(31,489,1,0), XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+{"divdo.",    XO(31,489,1,1), XO_MASK,     PPC64,     PPCNONE,        {RT, RA, RB}},
-+
-+{"divwo",     XO(31,491,1,0), XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+{"divwo.",    XO(31,491,1,1), XO_MASK,     PPC,       PPCNONE,        {RT, RA, RB}},
-+
-+{"stxvd2ux",  X(31,1004),     XX1_MASK,    PPCVSX,    PPCNONE,        {XS6, RA, RB}},
-+
-+{"tlbli",     X(31,1010),     XRTRA_MASK,  PPC,       PPCNONE,        {RB}},
-+
-+{"stdcix",    X(31,1013),     X_MASK,      POWER6,    PPCNONE,        {RS, RA0, RB}},
-+
-+{"dcbz",      X(31,1014),     XRT_MASK,    PPC,       PPCNONE,        {RA, RB}},
-+{"dclz",      X(31,1014),     XRT_MASK,    PPC,       PPCNONE,        {RA, RB}},
-+
-+{"dcbzep",    XRT(31,1023,0), XRT_MASK,    E500MC,    PPCNONE,        {RA, RB}},
-+
-+{"dcbzl",     XOPL(31,1014,1), XRT_MASK,   POWER4,    PPCNONE,        {RA, RB}},
-+{"dcbzl",     XOPL(31,1014,1), XRT_MASK,   PPCCOM|E500MC,POWER4,      {RA, RB}},
-+
-+{"cctpl",     0x7c210b78,     0xffffffff,  CELL,      PPCNONE,        {0}},
-+{"cctpm",     0x7c421378,     0xffffffff,  CELL,      PPCNONE,        {0}},
-+{"cctph",     0x7c631b78,     0xffffffff,  CELL,      PPCNONE,        {0}},
-+
-+{"dstt",      XDSS(31,342,1), XDSS_MASK,   PPCVEC,    PPCNONE,        {RA, RB, STRM}},
-+{"dststt",    XDSS(31,374,1), XDSS_MASK,   PPCVEC,    PPCNONE,        {RA, RB, STRM}},
-+{"dssall",    XDSS(31,822,1), XDSS_MASK,   PPCVEC,    PPCNONE,        {0}},
-+
-+{"db8cyc",    0x7f9ce378,     0xffffffff,  CELL,      PPCNONE,        {0}},
-+{"db10cyc",   0x7fbdeb78,     0xffffffff,  CELL,      PPCNONE,        {0}},
-+{"db12cyc",   0x7fdef378,     0xffffffff,  CELL,      PPCNONE,        {0}},
-+{"db16cyc",   0x7ffffb78,     0xffffffff,  CELL,      PPCNONE,        {0}},
-+
-+{"lwz",               OP(32),         OP_MASK,     PPCCOM,    PPCNONE,        {RT, D, RA0}},
-+{"l",         OP(32),         OP_MASK,     PWRCOM,    PPCNONE,        {RT, D, RA0}},
-+
-+{"lwzu",      OP(33),         OP_MASK,     PPCCOM,    PPCNONE,        {RT, D, RAL}},
-+{"lu",                OP(33),         OP_MASK,     PWRCOM,    PPCNONE,        {RT, D, RA0}},
-+
-+{"lbz",               OP(34),         OP_MASK,     COM,       PPCNONE,        {RT, D, RA0}},
-+
-+{"lbzu",      OP(35),         OP_MASK,     COM,       PPCNONE,        {RT, D, RAL}},
-+
-+{"stw",               OP(36),         OP_MASK,     PPCCOM,    PPCNONE,        {RS, D, RA0}},
-+{"st",                OP(36),         OP_MASK,     PWRCOM,    PPCNONE,        {RS, D, RA0}},
-+
-+{"stwu",      OP(37),         OP_MASK,     PPCCOM,    PPCNONE,        {RS, D, RAS}},
-+{"stu",               OP(37),         OP_MASK,     PWRCOM,    PPCNONE,        {RS, D, RA0}},
-+
-+{"stb",               OP(38),         OP_MASK,     COM,       PPCNONE,        {RS, D, RA0}},
-+
-+{"stbu",      OP(39),         OP_MASK,     COM,       PPCNONE,        {RS, D, RAS}},
-+
-+{"lhz",               OP(40),         OP_MASK,     COM,       PPCNONE,        {RT, D, RA0}},
-+
-+{"lhzu",      OP(41),         OP_MASK,     COM,       PPCNONE,        {RT, D, RAL}},
-+
-+{"lha",               OP(42),         OP_MASK,     COM,       PPCNONE,        {RT, D, RA0}},
-+
-+{"lhau",      OP(43),         OP_MASK,     COM,       PPCNONE,        {RT, D, RAL}},
-+
-+{"sth",               OP(44),         OP_MASK,     COM,       PPCNONE,        {RS, D, RA0}},
-+
-+{"sthu",      OP(45),         OP_MASK,     COM,       PPCNONE,        {RS, D, RAS}},
-+
-+{"lmw",               OP(46),         OP_MASK,     PPCCOM,    PPCNONE,        {RT, D, RAM}},
-+{"lm",                OP(46),         OP_MASK,     PWRCOM,    PPCNONE,        {RT, D, RA0}},
-+
-+{"stmw",      OP(47),         OP_MASK,     PPCCOM,    PPCNONE,        {RS, D, RA0}},
-+{"stm",               OP(47),         OP_MASK,     PWRCOM,    PPCNONE,        {RS, D, RA0}},
-+
-+{"lfs",               OP(48),         OP_MASK,     COM,       PPCNONE,        {FRT, D, RA0}},
-+
-+{"lfsu",      OP(49),         OP_MASK,     COM,       PPCNONE,        {FRT, D, RAS}},
-+
-+{"lfd",               OP(50),         OP_MASK,     COM,       PPCNONE,        {FRT, D, RA0}},
-+
-+{"lfdu",      OP(51),         OP_MASK,     COM,       PPCNONE,        {FRT, D, RAS}},
-+
-+{"stfs",      OP(52),         OP_MASK,     COM,       PPCNONE,        {FRS, D, RA0}},
-+
-+{"stfsu",     OP(53),         OP_MASK,     COM,       PPCNONE,        {FRS, D, RAS}},
-+
-+{"stfd",      OP(54),         OP_MASK,     COM,       PPCNONE,        {FRS, D, RA0}},
-+
-+{"stfdu",     OP(55),         OP_MASK,     COM,       PPCNONE,        {FRS, D, RAS}},
-+
-+{"lq",                OP(56),         OP_MASK,     POWER4,    PPCNONE,        {RTQ, DQ, RAQ}},
-+
-+{"lfq",               OP(56),         OP_MASK,     POWER2,    PPCNONE,        {FRT, D, RA0}},
-+
-+{"psq_l",     OP(56),         OP_MASK,     PPCPS,     PPCNONE,        {FRT,PSD,RA,PSW,PSQ}},
-+
-+{"lfdp",      OP(57),         OP_MASK,     POWER6,    POWER7,         {FRT, D, RA0}},
-+
-+{"lfqu",      OP(57),         OP_MASK,     POWER2,    PPCNONE,        {FRT, D, RA0}},
-+
-+{"psq_lu",    OP(57),         OP_MASK,     PPCPS,     PPCNONE,        {FRT,PSD,RA,PSW,PSQ}},
-+
-+{"ld",                DSO(58,0),      DS_MASK,     PPC64,     PPCNONE,        {RT, DS, RA0}},
-+{"ldu",               DSO(58,1),      DS_MASK,     PPC64,     PPCNONE,        {RT, DS, RAL}},
-+{"lwa",               DSO(58,2),      DS_MASK,     PPC64,     PPCNONE,        {RT, DS, RA0}},
-+
-+{"dadd",      XRC(59,2,0),    X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+{"dadd.",     XRC(59,2,1),    X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"dqua",      ZRC(59,3,0),    Z2_MASK,     POWER6,    PPCNONE,        {FRT,FRA,FRB,RMC}},
-+{"dqua.",     ZRC(59,3,1),    Z2_MASK,     POWER6,    PPCNONE,        {FRT,FRA,FRB,RMC}},
-+
-+{"fdivs",     A(59,18,0),     AFRC_MASK,   PPC,       PPCNONE,        {FRT, FRA, FRB}},
-+{"fdivs.",    A(59,18,1),     AFRC_MASK,   PPC,       PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"fsubs",     A(59,20,0),     AFRC_MASK,   PPC,       PPCNONE,        {FRT, FRA, FRB}},
-+{"fsubs.",    A(59,20,1),     AFRC_MASK,   PPC,       PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"fadds",     A(59,21,0),     AFRC_MASK,   PPC,       PPCNONE,        {FRT, FRA, FRB}},
-+{"fadds.",    A(59,21,1),     AFRC_MASK,   PPC,       PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"fsqrts",    A(59,22,0),    AFRAFRC_MASK, PPC,       PPCNONE,        {FRT, FRB}},
-+{"fsqrts.",   A(59,22,1),    AFRAFRC_MASK, PPC,       PPCNONE,        {FRT, FRB}},
-+
-+{"fres",      A(59,24,0),   AFRALFRC_MASK, PPC,       POWER7,         {FRT, FRB, A_L}},
-+{"fres.",     A(59,24,1),   AFRALFRC_MASK, PPC,       POWER7,         {FRT, FRB, A_L}},
-+{"fres",      A(59,24,0),   AFRAFRC_MASK,  POWER7,    PPCNONE,        {FRT, FRB}},
-+{"fres.",     A(59,24,1),   AFRAFRC_MASK,  POWER7,    PPCNONE,        {FRT, FRB}},
-+
-+{"fmuls",     A(59,25,0),     AFRB_MASK,   PPC,       PPCNONE,        {FRT, FRA, FRC}},
-+{"fmuls.",    A(59,25,1),     AFRB_MASK,   PPC,       PPCNONE,        {FRT, FRA, FRC}},
-+
-+{"frsqrtes",  A(59,26,0),   AFRALFRC_MASK, POWER5,    POWER7,         {FRT, FRB, A_L}},
-+{"frsqrtes.", A(59,26,1),   AFRALFRC_MASK, POWER5,    POWER7,         {FRT, FRB, A_L}},
-+{"frsqrtes",  A(59,26,0),   AFRAFRC_MASK,  POWER7,    PPCNONE,        {FRT, FRB}},
-+{"frsqrtes.", A(59,26,1),   AFRAFRC_MASK,  POWER7,    PPCNONE,        {FRT, FRB}},
-+
-+{"fmsubs",    A(59,28,0),     A_MASK,      PPC,       PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fmsubs.",   A(59,28,1),     A_MASK,      PPC,       PPCNONE,        {FRT, FRA, FRC, FRB}},
-+
-+{"fmadds",    A(59,29,0),     A_MASK,      PPC,       PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fmadds.",   A(59,29,1),     A_MASK,      PPC,       PPCNONE,        {FRT, FRA, FRC, FRB}},
-+
-+{"fnmsubs",   A(59,30,0),     A_MASK,      PPC,       PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fnmsubs.",  A(59,30,1),     A_MASK,      PPC,       PPCNONE,        {FRT, FRA, FRC, FRB}},
-+
-+{"fnmadds",   A(59,31,0),     A_MASK,      PPC,       PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fnmadds.",  A(59,31,1),     A_MASK,      PPC,       PPCNONE,        {FRT, FRA, FRC, FRB}},
-+
-+{"dmul",      XRC(59,34,0),   X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+{"dmul.",     XRC(59,34,1),   X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"drrnd",     ZRC(59,35,0),   Z2_MASK,     POWER6,    PPCNONE,        {FRT, FRA, FRB, RMC}},
-+{"drrnd.",    ZRC(59,35,1),   Z2_MASK,     POWER6,    PPCNONE,        {FRT, FRA, FRB, RMC}},
-+
-+{"dscli",     ZRC(59,66,0),   Z_MASK,      POWER6,    PPCNONE,        {FRT, FRA, SH16}},
-+{"dscli.",    ZRC(59,66,1),   Z_MASK,      POWER6,    PPCNONE,        {FRT, FRA, SH16}},
-+
-+{"dquai",     ZRC(59,67,0),   Z2_MASK,     POWER6,    PPCNONE,        {TE, FRT,FRB,RMC}},
-+{"dquai.",    ZRC(59,67,1),   Z2_MASK,     POWER6,    PPCNONE,        {TE, FRT,FRB,RMC}},
-+
-+{"dscri",     ZRC(59,98,0),   Z_MASK,      POWER6,    PPCNONE,        {FRT, FRA, SH16}},
-+{"dscri.",    ZRC(59,98,1),   Z_MASK,      POWER6,    PPCNONE,        {FRT, FRA, SH16}},
-+
-+{"drintx",    ZRC(59,99,0),   Z2_MASK,     POWER6,    PPCNONE,        {R, FRT, FRB, RMC}},
-+{"drintx.",   ZRC(59,99,1),   Z2_MASK,     POWER6,    PPCNONE,        {R, FRT, FRB, RMC}},
-+
-+{"dcmpo",     X(59,130),      X_MASK,      POWER6,    PPCNONE,        {BF,  FRA, FRB}},
-+
-+{"dtstex",    X(59,162),      X_MASK,      POWER6,    PPCNONE,        {BF,  FRA, FRB}},
-+{"dtstdc",    Z(59,194),      Z_MASK,      POWER6,    PPCNONE,        {BF,  FRA, DCM}},
-+{"dtstdg",    Z(59,226),      Z_MASK,      POWER6,    PPCNONE,        {BF,  FRA, DGM}},
-+
-+{"drintn",    ZRC(59,227,0),  Z2_MASK,     POWER6,    PPCNONE,        {R, FRT, FRB, RMC}},
-+{"drintn.",   ZRC(59,227,1),  Z2_MASK,     POWER6,    PPCNONE,        {R, FRT, FRB, RMC}},
-+
-+{"dctdp",     XRC(59,258,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+{"dctdp.",    XRC(59,258,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+
-+{"dctfix",    XRC(59,290,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+{"dctfix.",   XRC(59,290,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+
-+{"ddedpd",    XRC(59,322,0),  X_MASK,      POWER6,    PPCNONE,        {SP, FRT, FRB}}, 
-+{"ddedpd.",   XRC(59,322,1),  X_MASK,      POWER6,    PPCNONE,        {SP, FRT, FRB}}, 
-+
-+{"dxex",      XRC(59,354,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+{"dxex.",     XRC(59,354,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+
-+{"dsub",      XRC(59,514,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+{"dsub.",     XRC(59,514,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"ddiv",      XRC(59,546,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+{"ddiv.",     XRC(59,546,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"dcmpu",     X(59,642),      X_MASK,      POWER6,    PPCNONE,        {BF,  FRA, FRB}},
-+
-+{"dtstsf",    X(59,674),      X_MASK,      POWER6,    PPCNONE,        {BF,  FRA, FRB}},
-+
-+{"drsp",      XRC(59,770,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+{"drsp.",     XRC(59,770,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+
-+{"dcffix",    XRC(59,802,0), X_MASK|FRA_MASK, POWER7, PPCNONE,        {FRT, FRB}},
-+{"dcffix.",   XRC(59,802,1), X_MASK|FRA_MASK, POWER7, PPCNONE,        {FRT, FRB}},
-+
-+{"denbcd",    XRC(59,834,0),  X_MASK,      POWER6,    PPCNONE,        {S, FRT, FRB}},
-+{"denbcd.",   XRC(59,834,1),  X_MASK,      POWER6,    PPCNONE,        {S, FRT, FRB}},
-+
-+{"fcfids",    XRC(59,846,0),  XRA_MASK,    POWER7,    PPCNONE,        {FRT, FRB}},
-+{"fcfids.",   XRC(59,846,1),  XRA_MASK,    POWER7,    PPCNONE,        {FRT, FRB}},
-+
-+{"diex",      XRC(59,866,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+{"diex.",     XRC(59,866,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"fcfidus",   XRC(59,974,0),  XRA_MASK,    POWER7,    PPCNONE,        {FRT, FRB}},
-+{"fcfidus.",  XRC(59,974,1),  XRA_MASK,    POWER7,    PPCNONE,        {FRT, FRB}},
-+
-+{"xxsldwi",   XX3(60,2),      XX3SHW_MASK, PPCVSX,    PPCNONE,        {XT6, XA6, XB6, SHW}},
-+{"xxsel",     XX4(60,3),      XX4_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6, XC6}},
-+{"xxspltd",   XX3(60,10),     XX3DM_MASK,  PPCVSX,    PPCNONE,        {XT6, XA6, XB6S, DMEX}},
-+{"xxmrghd",   XX3(60,10),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xxswapd",   XX3(60,10)|(2<<8), XX3_MASK, PPCVSX,    PPCNONE,        {XT6, XA6, XB6S}},
-+{"xxmrgld",   XX3(60,10)|(3<<8), XX3_MASK, PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xxpermdi",  XX3(60,10),     XX3DM_MASK,  PPCVSX,    PPCNONE,        {XT6, XA6, XB6, DM}},
-+{"xxmrghw",   XX3(60,18),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xsadddp",   XX3(60,32),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xsmaddadp", XX3(60,33),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xscmpudp",  XX3(60,35),     XX3BF_MASK,  PPCVSX,    PPCNONE,        {BF, XA6, XB6}},
-+{"xssubdp",   XX3(60,40),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xsmaddmdp", XX3(60,41),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xscmpodp",  XX3(60,43),     XX3BF_MASK,  PPCVSX,    PPCNONE,        {BF, XA6, XB6}},
-+{"xsmuldp",   XX3(60,48),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xsmsubadp", XX3(60,49),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xxmrglw",   XX3(60,50),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xsdivdp",   XX3(60,56),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xsmsubmdp", XX3(60,57),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xstdivdp",  XX3(60,61),     XX3BF_MASK,  PPCVSX,    PPCNONE,        {BF, XA6, XB6}},
-+{"xvaddsp",   XX3(60,64),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvmaddasp", XX3(60,65),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcmpeqsp", XX3RC(60,67,0), XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcmpeqsp.",        XX3RC(60,67,1), XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvsubsp",   XX3(60,72),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xscvdpuxws",        XX2(60,72),     XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvmaddmsp", XX3(60,73),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xsrdpi",    XX2(60,73),     XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xsrsqrtedp",        XX2(60,74),     XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xssqrtdp",  XX2(60,75),     XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvcmpgtsp", XX3RC(60,75,0), XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcmpgtsp.",        XX3RC(60,75,1), XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvmulsp",   XX3(60,80),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvmsubasp", XX3(60,81),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcmpgesp", XX3RC(60,83,0), XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcmpgesp.",        XX3RC(60,83,1), XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvdivsp",   XX3(60,88),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xscvdpsxws",        XX2(60,88),     XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvmsubmsp", XX3(60,89),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xsrdpiz",   XX2(60,89),     XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xsredp",    XX2(60,90),     XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvtdivsp",  XX3(60,93),     XX3BF_MASK,  PPCVSX,    PPCNONE,        {BF, XA6, XB6}},
-+{"xvadddp",   XX3(60,96),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvmaddadp", XX3(60,97),     XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcmpeqdp", XX3RC(60,99,0), XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcmpeqdp.",        XX3RC(60,99,1), XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvsubdp",   XX3(60,104),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvmaddmdp", XX3(60,105),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xsrdpip",   XX2(60,105),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xstsqrtdp", XX2(60,106),    XX2BF_MASK,  PPCVSX,    PPCNONE,        {BF, XB6}},
-+{"xsrdpic",   XX2(60,107),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvcmpgtdp", XX3RC(60,107,0), XX3_MASK,   PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcmpgtdp.",        XX3RC(60,107,1), XX3_MASK,   PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvmuldp",   XX3(60,112),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvmsubadp", XX3(60,113),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcmpgedp", XX3RC(60,115,0), XX3_MASK,   PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcmpgedp.",        XX3RC(60,115,1), XX3_MASK,   PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvdivdp",   XX3(60,120),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvmsubmdp", XX3(60,121),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xsrdpim",   XX2(60,121),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvtdivdp",  XX3(60,125),    XX3BF_MASK,  PPCVSX,    PPCNONE,        {BF, XA6, XB6}},
-+{"xxland",    XX3(60,130),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcvspuxws",        XX2(60,136),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvrspi",    XX2(60,137),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xxlandc",   XX3(60,138),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvrsqrtesp",        XX2(60,138),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvsqrtsp",  XX2(60,139),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xxlor",     XX3(60,146),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcvspsxws",        XX2(60,152),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvrspiz",   XX2(60,153),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xxlxor",    XX3(60,154),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvresp",    XX2(60,154),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xsmaxdp",   XX3(60,160),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xsnmaddadp",        XX3(60,161),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xxlnor",    XX3(60,162),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xxspltw",   XX2(60,164),    XX2UIM_MASK, PPCVSX,    PPCNONE,        {XT6, XB6, UIM}},
-+{"xsmindp",   XX3(60,168),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcvuxwsp", XX2(60,168),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xsnmaddmdp",        XX3(60,169),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvrspip",   XX2(60,169),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvtsqrtsp", XX2(60,170),    XX2BF_MASK,  PPCVSX,    PPCNONE,        {BF, XB6}},
-+{"xvrspic",   XX2(60,171),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xscpsgndp", XX3(60,176),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xsnmsubadp",        XX3(60,177),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcvsxwsp", XX2(60,184),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xsnmsubmdp",        XX3(60,185),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvrspim",   XX2(60,185),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvmaxsp",   XX3(60,192),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvnmaddasp",        XX3(60,193),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvminsp",   XX3(60,200),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcvdpuxws",        XX2(60,200),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvnmaddmsp",        XX3(60,201),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvrdpi",    XX2(60,201),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvrsqrtedp",        XX2(60,202),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvsqrtdp",  XX2(60,203),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvmovsp",   XX3(60,208),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6S}},
-+{"xvcpsgnsp", XX3(60,208),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvnmsubasp",        XX3(60,209),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcvdpsxws",        XX2(60,216),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvnmsubmsp",        XX3(60,217),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvrdpiz",   XX2(60,217),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvredp",    XX2(60,218),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvmaxdp",   XX3(60,224),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvnmaddadp",        XX3(60,225),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvmindp",   XX3(60,232),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvnmaddmdp",        XX3(60,233),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcvuxwdp", XX2(60,232),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvrdpip",   XX2(60,233),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvtsqrtdp", XX2(60,234),    XX2BF_MASK,  PPCVSX,    PPCNONE,        {BF, XB6}},
-+{"xvrdpic",   XX2(60,235),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvmovdp",   XX3(60,240),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6S}},
-+{"xvcpsgndp", XX3(60,240),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvnmsubadp",        XX3(60,241),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvcvsxwdp", XX2(60,248),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvnmsubmdp",        XX3(60,249),    XX3_MASK,    PPCVSX,    PPCNONE,        {XT6, XA6, XB6}},
-+{"xvrdpim",   XX2(60,249),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xscvdpsp",  XX2(60,265),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xscvdpuxds",        XX2(60,328),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xscvspdp",  XX2(60,329),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xscvdpsxds",        XX2(60,344),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xsabsdp",   XX2(60,345),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xscvuxddp", XX2(60,360),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xsnabsdp",  XX2(60,361),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xscvsxddp", XX2(60,376),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xsnegdp",   XX2(60,377),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvcvspuxds",        XX2(60,392),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvcvdpsp",  XX2(60,393),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvcvspsxds",        XX2(60,408),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvabssp",   XX2(60,409),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvcvuxdsp", XX2(60,424),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvnabssp",  XX2(60,425),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvcvsxdsp", XX2(60,440),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvnegsp",   XX2(60,441),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvcvdpuxds",        XX2(60,456),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvcvspdp",  XX2(60,457),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvcvdpsxds",        XX2(60,472),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvabsdp",   XX2(60,473),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvcvuxddp", XX2(60,488),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvnabsdp",  XX2(60,489),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvcvsxddp", XX2(60,504),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+{"xvnegdp",   XX2(60,505),    XX2_MASK,    PPCVSX,    PPCNONE,        {XT6, XB6}},
-+
-+{"stfq",      OP(60),         OP_MASK,     POWER2,    PPCNONE,        {FRS, D, RA}},
-+
-+{"psq_st",    OP(60),         OP_MASK,     PPCPS,     PPCNONE,        {FRS,PSD,RA,PSW,PSQ}},
-+
-+{"stfdp",     OP(61),         OP_MASK,     POWER6,    PPCNONE,        {FRT, D, RA0}},
-+
-+{"stfqu",     OP(61),         OP_MASK,     POWER2,    PPCNONE,        {FRS, D, RA}},
-+
-+{"psq_stu",   OP(61),         OP_MASK,     PPCPS,     PPCNONE,        {FRS,PSD,RA,PSW,PSQ}},
-+
-+{"std",               DSO(62,0),      DS_MASK,     PPC64,     PPCNONE,        {RS, DS, RA0}},
-+{"stdu",      DSO(62,1),      DS_MASK,     PPC64,     PPCNONE,        {RS, DS, RAS}},
-+{"stq",               DSO(62,2),      DS_MASK,     POWER4,    PPCNONE,        {RSQ, DS, RA0}},
-+
-+{"fcmpu",     X(63,0),     X_MASK|(3<<21), COM,       PPCNONE,        {BF, FRA, FRB}},
-+
-+{"daddq",     XRC(63,2,0),    X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+{"daddq.",    XRC(63,2,1),    X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"dquaq",     ZRC(63,3,0),    Z2_MASK,     POWER6,    PPCNONE,        {FRT, FRA, FRB, RMC}},
-+{"dquaq.",    ZRC(63,3,1),    Z2_MASK,     POWER6,    PPCNONE,        {FRT, FRA, FRB, RMC}},
-+
-+{"fcpsgn",    XRC(63,8,0),    X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+{"fcpsgn.",   XRC(63,8,1),    X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"frsp",      XRC(63,12,0),   XRA_MASK,    COM,       PPCNONE,        {FRT, FRB}},
-+{"frsp.",     XRC(63,12,1),   XRA_MASK,    COM,       PPCNONE,        {FRT, FRB}},
-+
-+{"fctiw",     XRC(63,14,0),   XRA_MASK,    PPCCOM,    PPCNONE,        {FRT, FRB}},
-+{"fcir",      XRC(63,14,0),   XRA_MASK,    POWER2,    PPCNONE,        {FRT, FRB}},
-+{"fctiw.",    XRC(63,14,1),   XRA_MASK,    PPCCOM,    PPCNONE,        {FRT, FRB}},
-+{"fcir.",     XRC(63,14,1),   XRA_MASK,    POWER2,    PPCNONE,        {FRT, FRB}},
-+
-+{"fctiwz",    XRC(63,15,0),   XRA_MASK,    PPCCOM,    PPCNONE,        {FRT, FRB}},
-+{"fcirz",     XRC(63,15,0),   XRA_MASK,    POWER2,    PPCNONE,        {FRT, FRB}},
-+{"fctiwz.",   XRC(63,15,1),   XRA_MASK,    PPCCOM,    PPCNONE,        {FRT, FRB}},
-+{"fcirz.",    XRC(63,15,1),   XRA_MASK,    POWER2,    PPCNONE,        {FRT, FRB}},
-+
-+{"fdiv",      A(63,18,0),     AFRC_MASK,   PPCCOM,    PPCNONE,        {FRT, FRA, FRB}},
-+{"fd",                A(63,18,0),     AFRC_MASK,   PWRCOM,    PPCNONE,        {FRT, FRA, FRB}},
-+{"fdiv.",     A(63,18,1),     AFRC_MASK,   PPCCOM,    PPCNONE,        {FRT, FRA, FRB}},
-+{"fd.",               A(63,18,1),     AFRC_MASK,   PWRCOM,    PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"fsub",      A(63,20,0),     AFRC_MASK,   PPCCOM,    PPCNONE,        {FRT, FRA, FRB}},
-+{"fs",                A(63,20,0),     AFRC_MASK,   PWRCOM,    PPCNONE,        {FRT, FRA, FRB}},
-+{"fsub.",     A(63,20,1),     AFRC_MASK,   PPCCOM,    PPCNONE,        {FRT, FRA, FRB}},
-+{"fs.",               A(63,20,1),     AFRC_MASK,   PWRCOM,    PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"fadd",      A(63,21,0),     AFRC_MASK,   PPCCOM,    PPCNONE,        {FRT, FRA, FRB}},
-+{"fa",                A(63,21,0),     AFRC_MASK,   PWRCOM,    PPCNONE,        {FRT, FRA, FRB}},
-+{"fadd.",     A(63,21,1),     AFRC_MASK,   PPCCOM,    PPCNONE,        {FRT, FRA, FRB}},
-+{"fa.",               A(63,21,1),     AFRC_MASK,   PWRCOM,    PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"fsqrt",     A(63,22,0),    AFRAFRC_MASK, PPCPWR2,   PPCNONE,        {FRT, FRB}},
-+{"fsqrt.",    A(63,22,1),    AFRAFRC_MASK, PPCPWR2,   PPCNONE,        {FRT, FRB}},
-+
-+{"fsel",      A(63,23,0),     A_MASK,      PPC,       PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fsel.",     A(63,23,1),     A_MASK,      PPC,       PPCNONE,        {FRT, FRA, FRC, FRB}},
-+
-+{"fre",               A(63,24,0),   AFRALFRC_MASK, POWER5,    POWER7,         {FRT, FRB, A_L}},
-+{"fre.",      A(63,24,1),   AFRALFRC_MASK, POWER5,    POWER7,         {FRT, FRB, A_L}},
-+{"fre",               A(63,24,0),   AFRAFRC_MASK,  POWER7,    PPCNONE,        {FRT, FRB}},
-+{"fre.",      A(63,24,1),   AFRAFRC_MASK,  POWER7,    PPCNONE,        {FRT, FRB}},
-+
-+{"fmul",      A(63,25,0),     AFRB_MASK,   PPCCOM,    PPCNONE,        {FRT, FRA, FRC}},
-+{"fm",                A(63,25,0),     AFRB_MASK,   PWRCOM,    PPCNONE,        {FRT, FRA, FRC}},
-+{"fmul.",     A(63,25,1),     AFRB_MASK,   PPCCOM,    PPCNONE,        {FRT, FRA, FRC}},
-+{"fm.",               A(63,25,1),     AFRB_MASK,   PWRCOM,    PPCNONE,        {FRT, FRA, FRC}},
-+
-+{"frsqrte",   A(63,26,0),   AFRALFRC_MASK, PPC,       POWER7,         {FRT, FRB, A_L}},
-+{"frsqrte.",  A(63,26,1),   AFRALFRC_MASK, PPC,       POWER7,         {FRT, FRB, A_L}},
-+{"frsqrte",   A(63,26,0),   AFRAFRC_MASK,  POWER7,    PPCNONE,        {FRT, FRB}},
-+{"frsqrte.",  A(63,26,1),   AFRAFRC_MASK,  POWER7,    PPCNONE,        {FRT, FRB}},
-+
-+{"fmsub",     A(63,28,0),     A_MASK,      PPCCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fms",               A(63,28,0),     A_MASK,      PWRCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fmsub.",    A(63,28,1),     A_MASK,      PPCCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fms.",      A(63,28,1),     A_MASK,      PWRCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+
-+{"fmadd",     A(63,29,0),     A_MASK,      PPCCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fma",               A(63,29,0),     A_MASK,      PWRCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fmadd.",    A(63,29,1),     A_MASK,      PPCCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fma.",      A(63,29,1),     A_MASK,      PWRCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+
-+{"fnmsub",    A(63,30,0),     A_MASK,      PPCCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fnms",      A(63,30,0),     A_MASK,      PWRCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fnmsub.",   A(63,30,1),     A_MASK,      PPCCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fnms.",     A(63,30,1),     A_MASK,      PWRCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+
-+{"fnmadd",    A(63,31,0),     A_MASK,      PPCCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fnma",      A(63,31,0),     A_MASK,      PWRCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fnmadd.",   A(63,31,1),     A_MASK,      PPCCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+{"fnma.",     A(63,31,1),     A_MASK,      PWRCOM,    PPCNONE,        {FRT, FRA, FRC, FRB}},
-+
-+{"fcmpo",     X(63,32),    X_MASK|(3<<21), COM,       PPCNONE,        {BF, FRA, FRB}},
-+
-+{"dmulq",     XRC(63,34,0),   X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+{"dmulq.",    XRC(63,34,1),   X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"drrndq",    ZRC(63,35,0),   Z2_MASK,     POWER6,    PPCNONE,        {FRT, FRA, FRB, RMC}},
-+{"drrndq.",   ZRC(63,35,1),   Z2_MASK,     POWER6,    PPCNONE,        {FRT, FRA, FRB, RMC}},
-+
-+{"mtfsb1",    XRC(63,38,0),   XRARB_MASK,  COM,       PPCNONE,        {BT}},
-+{"mtfsb1.",   XRC(63,38,1),   XRARB_MASK,  COM,       PPCNONE,        {BT}},
-+
-+{"fneg",      XRC(63,40,0),   XRA_MASK,    COM,       PPCNONE,        {FRT, FRB}},
-+{"fneg.",     XRC(63,40,1),   XRA_MASK,    COM,       PPCNONE,        {FRT, FRB}},
-+
-+{"mcrfs",      X(63,64), XRB_MASK|(3<<21)|(3<<16), COM,       PPCNONE,        {BF, BFA}},
-+
-+{"dscliq",    ZRC(63,66,0),   Z_MASK,      POWER6,    PPCNONE,        {FRT, FRA, SH16}},
-+{"dscliq.",   ZRC(63,66,1),   Z_MASK,      POWER6,    PPCNONE,        {FRT, FRA, SH16}},
-+
-+{"dquaiq",    ZRC(63,67,0),   Z2_MASK,     POWER6,    PPCNONE,        {TE, FRT, FRB, RMC}},
-+{"dquaiq.",   ZRC(63,67,1),   Z2_MASK,     POWER6,    PPCNONE,        {TE, FRT, FRB, RMC}},
-+
-+{"mtfsb0",    XRC(63,70,0),   XRARB_MASK,  COM,       PPCNONE,        {BT}},
-+{"mtfsb0.",   XRC(63,70,1),   XRARB_MASK,  COM,       PPCNONE,        {BT}},
-+
-+{"fmr",               XRC(63,72,0),   XRA_MASK,    COM,       PPCNONE,        {FRT, FRB}},
-+{"fmr.",      XRC(63,72,1),   XRA_MASK,    COM,       PPCNONE,        {FRT, FRB}},
-+
-+{"dscriq",    ZRC(63,98,0),   Z_MASK,      POWER6,    PPCNONE,        {FRT, FRA, SH16}},
-+{"dscriq.",   ZRC(63,98,1),   Z_MASK,      POWER6,    PPCNONE,        {FRT, FRA, SH16}},
-+
-+{"drintxq",   ZRC(63,99,0),   Z2_MASK,     POWER6,    PPCNONE,        {R, FRT, FRB, RMC}},
-+{"drintxq.",  ZRC(63,99,1),   Z2_MASK,     POWER6,    PPCNONE,        {R, FRT, FRB, RMC}},
-+
-+{"ftdiv",     X(63,128),   X_MASK|(3<<21), POWER7,    PPCNONE,        {BF, FRA, FRB}},
-+
-+{"dcmpoq",    X(63,130),      X_MASK,      POWER6,    PPCNONE,        {BF, FRA, FRB}},
-+
-+{"mtfsfi",  XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6,     {BFF, U}},
-+{"mtfsfi",  XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), POWER6, PPCNONE,        {BFF, U, W}},
-+{"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6,     {BFF, U}},
-+{"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), POWER6, PPCNONE,        {BFF, U, W}},
-+
-+{"fnabs",     XRC(63,136,0),  XRA_MASK,    COM,       PPCNONE,        {FRT, FRB}},
-+{"fnabs.",    XRC(63,136,1),  XRA_MASK,    COM,       PPCNONE,        {FRT, FRB}},
-+
-+{"fctiwu",    XRC(63,142,0),  XRA_MASK,    POWER7,    PPCNONE,        {FRT, FRB}},
-+{"fctiwu.",   XRC(63,142,1),  XRA_MASK,    POWER7,    PPCNONE,        {FRT, FRB}},
-+{"fctiwuz",   XRC(63,143,0),  XRA_MASK,    POWER7,    PPCNONE,        {FRT, FRB}},
-+{"fctiwuz.",  XRC(63,143,1),  XRA_MASK,    POWER7,    PPCNONE,        {FRT, FRB}},
-+
-+{"ftsqrt",    X(63,160), X_MASK|(3<<21|FRA_MASK), POWER7, PPCNONE,    {BF, FRB}},
-+
-+{"dtstexq",   X(63,162),      X_MASK,      POWER6,    PPCNONE,        {BF, FRA, FRB}},
-+{"dtstdcq",   Z(63,194),      Z_MASK,      POWER6,    PPCNONE,        {BF, FRA, DCM}},
-+{"dtstdgq",   Z(63,226),      Z_MASK,      POWER6,    PPCNONE,        {BF, FRA, DGM}},
-+
-+{"drintnq",   ZRC(63,227,0),  Z2_MASK,     POWER6,    PPCNONE,        {R, FRT, FRB, RMC}},
-+{"drintnq.",  ZRC(63,227,1),  Z2_MASK,     POWER6,    PPCNONE,        {R, FRT, FRB, RMC}},
-+
-+{"dctqpq",    XRC(63,258,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+{"dctqpq.",   XRC(63,258,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+
-+{"fabs",      XRC(63,264,0),  XRA_MASK,    COM,       PPCNONE,        {FRT, FRB}},
-+{"fabs.",     XRC(63,264,1),  XRA_MASK,    COM,       PPCNONE,        {FRT, FRB}},
-+
-+{"dctfixq",   XRC(63,290,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+{"dctfixq.",  XRC(63,290,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+
-+{"ddedpdq",   XRC(63,322,0),  X_MASK,      POWER6,    PPCNONE,        {SP, FRT, FRB}},
-+{"ddedpdq.",  XRC(63,322,1),  X_MASK,      POWER6,    PPCNONE,        {SP, FRT, FRB}},
-+
-+{"dxexq",     XRC(63,354,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+{"dxexq.",    XRC(63,354,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+
-+{"frin",      XRC(63,392,0),  XRA_MASK,    POWER5,    PPCNONE,        {FRT, FRB}},
-+{"frin.",     XRC(63,392,1),  XRA_MASK,    POWER5,    PPCNONE,        {FRT, FRB}},
-+{"friz",      XRC(63,424,0),  XRA_MASK,    POWER5,    PPCNONE,        {FRT, FRB}},
-+{"friz.",     XRC(63,424,1),  XRA_MASK,    POWER5,    PPCNONE,        {FRT, FRB}},
-+{"frip",      XRC(63,456,0),  XRA_MASK,    POWER5,    PPCNONE,        {FRT, FRB}},
-+{"frip.",     XRC(63,456,1),  XRA_MASK,    POWER5,    PPCNONE,        {FRT, FRB}},
-+{"frim",      XRC(63,488,0),  XRA_MASK,    POWER5,    PPCNONE,        {FRT, FRB}},
-+{"frim.",     XRC(63,488,1),  XRA_MASK,    POWER5,    PPCNONE,        {FRT, FRB}},
-+
-+{"dsubq",     XRC(63,514,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+{"dsubq.",    XRC(63,514,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"ddivq",     XRC(63,546,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+{"ddivq.",    XRC(63,546,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+
-+{"mffs",      XRC(63,583,0),  XRARB_MASK,  COM,       PPCNONE,        {FRT}},
-+{"mffs.",     XRC(63,583,1),  XRARB_MASK,  COM,       PPCNONE,        {FRT}},
-+
-+{"dcmpuq",    X(63,642),      X_MASK,      POWER6,    PPCNONE,        {BF, FRA, FRB}},
-+
-+{"dtstsfq",   X(63,674),      X_MASK,      POWER6,    PPCNONE,        {BF, FRA, FRB}},
-+
-+{"mtfsf",     XFL(63,711,0),  XFL_MASK,    COM,       POWER6,         {FLM, FRB}},
-+{"mtfsf",     XFL(63,711,0),  XFL_MASK,    POWER6,    PPCNONE,        {FLM, FRB, XFL_L, W}},
-+{"mtfsf.",    XFL(63,711,1),  XFL_MASK,    COM,       POWER6,         {FLM, FRB}},
-+{"mtfsf.",    XFL(63,711,1),  XFL_MASK,    POWER6,    PPCNONE,        {FLM, FRB, XFL_L, W}},
-+
-+{"drdpq",     XRC(63,770,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+{"drdpq.",    XRC(63,770,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+
-+{"dcffixq",   XRC(63,802,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+{"dcffixq.",  XRC(63,802,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRB}},
-+
-+{"fctid",     XRC(63,814,0),  XRA_MASK,    PPC64,     PPCNONE,        {FRT, FRB}},
-+{"fctid.",    XRC(63,814,1),  XRA_MASK,    PPC64,     PPCNONE,        {FRT, FRB}},
-+
-+{"fctidz",    XRC(63,815,0),  XRA_MASK,    PPC64,     PPCNONE,        {FRT, FRB}},
-+{"fctidz.",   XRC(63,815,1),  XRA_MASK,    PPC64,     PPCNONE,        {FRT, FRB}},
-+
-+{"denbcdq",   XRC(63,834,0),  X_MASK,      POWER6,    PPCNONE,        {S, FRT, FRB}},
-+{"denbcdq.",  XRC(63,834,1),  X_MASK,      POWER6,    PPCNONE,        {S, FRT, FRB}},
-+
-+{"fcfid",     XRC(63,846,0),  XRA_MASK,    PPC64,     PPCNONE,        {FRT, FRB}},
-+{"fcfid.",    XRC(63,846,1),  XRA_MASK,    PPC64,     PPCNONE,        {FRT, FRB}},
-+
-+{"diexq",     XRC(63,866,0),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
-+{"diexq.",    XRC(63,866,1),  X_MASK,      POWER6,    PPCNONE,        {FRT, FRA, FRB}},
--{"fcfid",     XRC(63,846,0),  XRA_MASK,    PPC64,     {FRT, FRB}},
--{"fcfid.",    XRC(63,846,1),  XRA_MASK,    PPC64,     {FRT, FRB}},
-+{"fctidu",    XRC(63,942,0),  XRA_MASK,    POWER7,    PPCNONE,        {FRT, FRB}},
-+{"fctidu.",   XRC(63,942,1),  XRA_MASK,    POWER7,    PPCNONE,        {FRT, FRB}},
--{"diexq",     XRC(63,866,0),  X_MASK,      POWER6,    {FRT, FRA, FRB}},
--{"diexq.",    XRC(63,866,1),  X_MASK,      POWER6,    {FRT, FRA, FRB}},
-+{"fctiduz",   XRC(63,943,0),  XRA_MASK,    POWER7,    PPCNONE,        {FRT, FRB}},
-+{"fctiduz.",  XRC(63,943,1),  XRA_MASK,    POWER7,    PPCNONE,        {FRT, FRB}},
-+{"fcfidu",    XRC(63,974,0),  XRA_MASK,    POWER7,    PPCNONE,        {FRT, FRB}},
-+{"fcfidu.",   XRC(63,974,1),  XRA_MASK,    POWER7,    PPCNONE,        {FRT, FRB}},
- };
- const int powerpc_num_opcodes =