diff options
| author | Zhenhua Luo <b19537@freescale.com> | 2012-03-09 10:57:35 +0000 |
|---|---|---|
| committer | Matthew McClintock <msm@freescale.com> | 2012-03-13 12:41:42 -0500 |
| commit | 122c5bfdad95930de96e191aafb0304fded007b2 (patch) | |
| tree | ea66cb9147fed9ceacd9eacd5913b10bb64734a1 /recipes-devtools/binutils | |
| parent | 4f2d99fbb0afd19376e404583700ee31428f7c2e (diff) | |
| download | meta-fsl-ppc-122c5bfdad95930de96e191aafb0304fded007b2.tar.gz | |
integrate fsl toolchain patches
binutils:
bin.e500mc_nop.patch
bin.e5500.patch
bin.e6500-2.patch
eglibc:
generate-supported.mk
glibc.e500mc_subspecies_of_powerpc_is_not_supported.patch
glibc.fixgcc4.6.patch
glibc.fix_prof.patch
glibc.fix_sqrt.patch
glibc.readv_proto.patch
glibc.undefined_static.patch
gcc:
gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
gcc.fix_longversionstring.patch
gcc.rm_slow_tests.patch
gcc.fix_mingw32.patch
gcc.fix_cloogstatic2.patch
gcc.fix_build-with-cxx.patch
gcc.e6500-FSF46.patch
gcc.ld_unaligned-460.patch
gcc.local_unaligned_altivec.patch
gcc.soft_float-460.patch
gcc.case_values.patch
gcc.builtin_isel.patch
gcc.experimental_move.patch
gcc.widen_types-46.patch
gcc.extelim-v3.patch
gcc.e5500_mfocr.patch
gcc.opt-array-offset.patch
gcc.load_on_store_bypass-462.patch
gcc.fix_constvector.patch
gcc.fix_MTWX51204-dwarf-vector-reg.patch
gcc.fix_ira-loop-pressure.patch
optional_libstdc.patch
gcc.remove_CCUNSmode_reference.patch
gcc.check_path_validity.patch
gcc.fix_header_issue.patch
gcc.fix_SSIZE_MAX_undefine_issue.patch
gettext:
gettext.fix_testcase.patch
Signed-off-by: Zhenhua Luo <b19537@freescale.com>
Diffstat (limited to 'recipes-devtools/binutils')
8 files changed, 904 insertions, 0 deletions
diff --git a/recipes-devtools/binutils/binutils-cross-canadian_2.21.1a.bbappend b/recipes-devtools/binutils/binutils-cross-canadian_2.21.1a.bbappend new file mode 100644 index 0000000..d46b87a --- /dev/null +++ b/recipes-devtools/binutils/binutils-cross-canadian_2.21.1a.bbappend | |||
| @@ -0,0 +1 @@ | |||
| require binutils-fsl.inc | |||
diff --git a/recipes-devtools/binutils/binutils-cross_2.21.1a.bbappend b/recipes-devtools/binutils/binutils-cross_2.21.1a.bbappend new file mode 100644 index 0000000..d46b87a --- /dev/null +++ b/recipes-devtools/binutils/binutils-cross_2.21.1a.bbappend | |||
| @@ -0,0 +1 @@ | |||
| require binutils-fsl.inc | |||
diff --git a/recipes-devtools/binutils/binutils-crosssdk_2.21.1a.bbappend b/recipes-devtools/binutils/binutils-crosssdk_2.21.1a.bbappend new file mode 100644 index 0000000..d46b87a --- /dev/null +++ b/recipes-devtools/binutils/binutils-crosssdk_2.21.1a.bbappend | |||
| @@ -0,0 +1 @@ | |||
| require binutils-fsl.inc | |||
diff --git a/recipes-devtools/binutils/binutils-fsl.inc b/recipes-devtools/binutils/binutils-fsl.inc new file mode 100644 index 0000000..e425d42 --- /dev/null +++ b/recipes-devtools/binutils/binutils-fsl.inc | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | SRC_URI = "\ | ||
| 2 | ${GNU_MIRROR}/binutils/binutils-${PV}.tar.bz2 \ | ||
| 3 | file://bin.e5500.patch \ | ||
| 4 | file://bin.e6500-2.patch \ | ||
| 5 | file://bin.e500mc_nop.patch \ | ||
| 6 | " | ||
| 7 | |||
| 8 | FILESEXTRAPATHS_prepend := "${THISDIR}/files:" | ||
| 9 | |||
| 10 | PR .= "+${DISTRO}.0" | ||
diff --git a/recipes-devtools/binutils/binutils_2.21.1a.bbappend b/recipes-devtools/binutils/binutils_2.21.1a.bbappend new file mode 100644 index 0000000..d46b87a --- /dev/null +++ b/recipes-devtools/binutils/binutils_2.21.1a.bbappend | |||
| @@ -0,0 +1 @@ | |||
| require binutils-fsl.inc | |||
diff --git a/recipes-devtools/binutils/files/bin.e500mc_nop.patch b/recipes-devtools/binutils/files/bin.e500mc_nop.patch new file mode 100644 index 0000000..9c9d52c --- /dev/null +++ b/recipes-devtools/binutils/files/bin.e500mc_nop.patch | |||
| @@ -0,0 +1,114 @@ | |||
| 1 | Generate the preferred NOP: ori r0, r0, 0 in the place of ori r2, r2, 0 | ||
| 2 | and add the nop test cases in gas for e500mc64, e5500 and e6500. | ||
| 3 | |||
| 4 | diff -ruN binutils-4.6.0-orig/gas/config/tc-ppc.c binutils-4.6.0-new/gas/config/tc-ppc.c | ||
| 5 | --- binutils-4.6.0-orig/gas/config/tc-ppc.c 2011-08-18 16:02:21.847979825 -0500 | ||
| 6 | +++ binutils-4.6.0-new/gas/config/tc-ppc.c 2011-08-19 10:09:19.888849978 -0500 | ||
| 7 | @@ -5815,8 +5817,14 @@ | ||
| 8 | } | ||
| 9 | |||
| 10 | if ((ppc_cpu & PPC_OPCODE_POWER7) != 0) | ||
| 11 | - /* power7 group terminating nop: "ori 2,2,0". */ | ||
| 12 | - md_number_to_chars (dest, 0x60420000, 4); | ||
| 13 | + { | ||
| 14 | + if (ppc_cpu & PPC_OPCODE_E500MC) | ||
| 15 | + /* e500mc group terminating nop: "ori 0,0,0". */ | ||
| 16 | + md_number_to_chars (dest, 0x60000000, 4); | ||
| 17 | + else | ||
| 18 | + /* power7 group terminating nop: "ori 2,2,0". */ | ||
| 19 | + md_number_to_chars (dest, 0x60420000, 4); | ||
| 20 | + } | ||
| 21 | else | ||
| 22 | /* power6 group terminating nop: "ori 1,1,0". */ | ||
| 23 | md_number_to_chars (dest, 0x60210000, 4); | ||
| 24 | diff -ruN binutils-4.6.0-orig/gas/testsuite/gas/ppc/e500mc64_nop.d binutils-4.6.0-new/gas/testsuite/gas/ppc/e500mc64_nop.d | ||
| 25 | --- binutils-4.6.0-orig/gas/testsuite/gas/ppc/e500mc64_nop.d 1969-12-31 18:00:00.000000000 -0600 | ||
| 26 | +++ binutils-4.6.0-new/gas/testsuite/gas/ppc/e500mc64_nop.d 2011-08-19 10:16:29.561849966 -0500 | ||
| 27 | @@ -0,0 +1,13 @@ | ||
| 28 | +#as: -mppc -me500mc64 | ||
| 29 | +#objdump: -dr -Me500mc64 | ||
| 30 | +#name: Power E500MC64 nop tests | ||
| 31 | + | ||
| 32 | +.*: +file format elf(32)?(64)?-powerpc.* | ||
| 33 | + | ||
| 34 | +Disassembly of section \.text: | ||
| 35 | + | ||
| 36 | +0+00 <start>: | ||
| 37 | + 0: 60 00 00 00 nop | ||
| 38 | + 4: 60 00 00 00 nop | ||
| 39 | + 8: 60 00 00 00 nop | ||
| 40 | + c: 60 00 00 00 nop | ||
| 41 | diff -ruN binutils-4.6.0-orig/gas/testsuite/gas/ppc/e500mc64_nop.s binutils-4.6.0-new/gas/testsuite/gas/ppc/e500mc64_nop.s | ||
| 42 | --- binutils-4.6.0-orig/gas/testsuite/gas/ppc/e500mc64_nop.s 1969-12-31 18:00:00.000000000 -0600 | ||
| 43 | +++ binutils-4.6.0-new/gas/testsuite/gas/ppc/e500mc64_nop.s 2011-08-19 10:16:29.561849966 -0500 | ||
| 44 | @@ -0,0 +1,5 @@ | ||
| 45 | +# Power E500MC64 nop tests | ||
| 46 | + .section ".text" | ||
| 47 | +start: | ||
| 48 | + nop | ||
| 49 | + .p2align 4,,15 | ||
| 50 | diff -ruN binutils-4.6.0-orig/gas/testsuite/gas/ppc/e5500_nop.d binutils-4.6.0-new/gas/testsuite/gas/ppc/e5500_nop.d | ||
| 51 | --- binutils-4.6.0-orig/gas/testsuite/gas/ppc/e5500_nop.d 1969-12-31 18:00:00.000000000 -0600 | ||
| 52 | +++ binutils-4.6.0-new/gas/testsuite/gas/ppc/e5500_nop.d 2011-08-19 10:16:29.561849966 -0500 | ||
| 53 | @@ -0,0 +1,13 @@ | ||
| 54 | +#as: -mppc -me5500 | ||
| 55 | +#objdump: -dr -Me5500 | ||
| 56 | +#name: Power E5500 nop tests | ||
| 57 | + | ||
| 58 | +.*: +file format elf(32)?(64)?-powerpc.* | ||
| 59 | + | ||
| 60 | +Disassembly of section \.text: | ||
| 61 | + | ||
| 62 | +0+00 <start>: | ||
| 63 | + 0: 60 00 00 00 nop | ||
| 64 | + 4: 60 00 00 00 nop | ||
| 65 | + 8: 60 00 00 00 nop | ||
| 66 | + c: 60 00 00 00 nop | ||
| 67 | diff -ruN binutils-4.6.0-orig/gas/testsuite/gas/ppc/e5500_nop.s binutils-4.6.0-new/gas/testsuite/gas/ppc/e5500_nop.s | ||
| 68 | --- binutils-4.6.0-orig/gas/testsuite/gas/ppc/e5500_nop.s 1969-12-31 18:00:00.000000000 -0600 | ||
| 69 | +++ binutils-4.6.0-new/gas/testsuite/gas/ppc/e5500_nop.s 2011-08-19 10:16:29.561849966 -0500 | ||
| 70 | @@ -0,0 +1,5 @@ | ||
| 71 | +# Power E5500 nop tests | ||
| 72 | + .section ".text" | ||
| 73 | +start: | ||
| 74 | + nop | ||
| 75 | + .p2align 4,,15 | ||
| 76 | diff -ruN binutils-4.6.0-orig/gas/testsuite/gas/ppc/e6500_nop.d binutils-4.6.0-new/gas/testsuite/gas/ppc/e6500_nop.d | ||
| 77 | --- binutils-4.6.0-orig/gas/testsuite/gas/ppc/e6500_nop.d 1969-12-31 18:00:00.000000000 -0600 | ||
| 78 | +++ binutils-4.6.0-new/gas/testsuite/gas/ppc/e6500_nop.d 2011-08-19 10:16:29.561849966 -0500 | ||
| 79 | @@ -0,0 +1,13 @@ | ||
| 80 | +#as: -mppc -me6500 | ||
| 81 | +#objdump: -dr -Me6500 | ||
| 82 | +#name: Power E6500 nop tests | ||
| 83 | + | ||
| 84 | +.*: +file format elf(32)?(64)?-powerpc.* | ||
| 85 | + | ||
| 86 | +Disassembly of section \.text: | ||
| 87 | + | ||
| 88 | +0+00 <start>: | ||
| 89 | + 0: 60 00 00 00 nop | ||
| 90 | + 4: 60 00 00 00 nop | ||
| 91 | + 8: 60 00 00 00 nop | ||
| 92 | + c: 60 00 00 00 nop | ||
| 93 | diff -ruN binutils-4.6.0-orig/gas/testsuite/gas/ppc/e6500_nop.s binutils-4.6.0-new/gas/testsuite/gas/ppc/e6500_nop.s | ||
| 94 | --- binutils-4.6.0-orig/gas/testsuite/gas/ppc/e6500_nop.s 1969-12-31 18:00:00.000000000 -0600 | ||
| 95 | +++ binutils-4.6.0-new/gas/testsuite/gas/ppc/e6500_nop.s 2011-08-19 10:16:29.562849956 -0500 | ||
| 96 | @@ -0,0 +1,5 @@ | ||
| 97 | +# Power E6500 nop tests | ||
| 98 | + .section ".text" | ||
| 99 | +start: | ||
| 100 | + nop | ||
| 101 | + .p2align 4,,15 | ||
| 102 | diff -ruN binutils-4.6.0-orig/gas/testsuite/gas/ppc/ppc.exp binutils-4.6.0-new/gas/testsuite/gas/ppc/ppc.exp | ||
| 103 | --- binutils-4.6.0-orig/gas/testsuite/gas/ppc/ppc.exp 2011-08-19 10:15:29.445978575 -0500 | ||
| 104 | +++ binutils-4.6.0-new/gas/testsuite/gas/ppc/ppc.exp 2011-08-19 10:16:17.827852501 -0500 | ||
| 105 | @@ -43,6 +43,9 @@ | ||
| 106 | run_dump_test "ppc750ps" | ||
| 107 | run_dump_test "e500mc" | ||
| 108 | run_dump_test "e6500" | ||
| 109 | + run_dump_test "e500mc64_nop" | ||
| 110 | + run_dump_test "e5500_nop" | ||
| 111 | + run_dump_test "e6500_nop" | ||
| 112 | run_dump_test "a2" | ||
| 113 | run_dump_test "cell" | ||
| 114 | run_dump_test "common" | ||
diff --git a/recipes-devtools/binutils/files/bin.e5500.patch b/recipes-devtools/binutils/files/bin.e5500.patch new file mode 100644 index 0000000..800590c --- /dev/null +++ b/recipes-devtools/binutils/files/bin.e5500.patch | |||
| @@ -0,0 +1,102 @@ | |||
| 1 | bin.e5500 | ||
| 2 | |||
| 3 | Implements target e5500 and -me5500, etc.. | ||
| 4 | |||
| 5 | diff -r -u binutils-2.21-20110211-orig/bfd/archures.c binutils-2.21-20110211/bfd/archures.c | ||
| 6 | --- binutils-2.21-20110211-orig/bfd/archures.c 2010-12-30 18:33:31.000000000 -0600 | ||
| 7 | +++ binutils-2.21-20110211/bfd/archures.c 2011-02-14 13:17:00.528340236 -0600 | ||
| 8 | @@ -234,6 +234,7 @@ | ||
| 9 | .#define bfd_mach_ppc_e500 500 | ||
| 10 | .#define bfd_mach_ppc_e500mc 5001 | ||
| 11 | .#define bfd_mach_ppc_e500mc64 5005 | ||
| 12 | +.#define bfd_mach_ppc_e5500 5006 | ||
| 13 | .#define bfd_mach_ppc_titan 83 | ||
| 14 | . bfd_arch_rs6000, {* IBM RS/6000 *} | ||
| 15 | .#define bfd_mach_rs6k 6000 | ||
| 16 | diff -r -u binutils-2.21-20110211-orig/bfd/bfd-in2.h binutils-2.21-20110211/bfd/bfd-in2.h | ||
| 17 | --- binutils-2.21-20110211-orig/bfd/bfd-in2.h 2011-02-11 10:57:58.000000000 -0600 | ||
| 18 | +++ binutils-2.21-20110211/bfd/bfd-in2.h 2011-02-14 13:19:57.365092179 -0600 | ||
| 19 | @@ -1921,6 +1921,7 @@ | ||
| 20 | #define bfd_mach_ppc_e500 500 | ||
| 21 | #define bfd_mach_ppc_e500mc 5001 | ||
| 22 | #define bfd_mach_ppc_e500mc64 5005 | ||
| 23 | +#define bfd_mach_ppc_e5500 5006 | ||
| 24 | #define bfd_mach_ppc_titan 83 | ||
| 25 | bfd_arch_rs6000, /* IBM RS/6000 */ | ||
| 26 | #define bfd_mach_rs6k 6000 | ||
| 27 | diff -r -u binutils-2.21-20110211-orig/bfd/cpu-powerpc.c binutils-2.21-20110211/bfd/cpu-powerpc.c | ||
| 28 | --- binutils-2.21-20110211-orig/bfd/cpu-powerpc.c 2010-02-07 19:59:34.000000000 -0600 | ||
| 29 | +++ binutils-2.21-20110211/bfd/cpu-powerpc.c 2011-02-14 13:21:48.802403135 -0600 | ||
| 30 | @@ -352,6 +352,20 @@ | ||
| 31 | FALSE, /* not the default */ | ||
| 32 | powerpc_compatible, | ||
| 33 | bfd_default_scan, | ||
| 34 | + &bfd_powerpc_archs[19] | ||
| 35 | + }, | ||
| 36 | + { | ||
| 37 | + 64, /* 64 bits in a word */ | ||
| 38 | + 64, /* 64 bits in an address */ | ||
| 39 | + 8, /* 8 bits in a byte */ | ||
| 40 | + bfd_arch_powerpc, | ||
| 41 | + bfd_mach_ppc_e5500, | ||
| 42 | + "powerpc", | ||
| 43 | + "powerpc:e5500", | ||
| 44 | + 3, | ||
| 45 | + FALSE, /* not the default */ | ||
| 46 | + powerpc_compatible, | ||
| 47 | + bfd_default_scan, | ||
| 48 | 0 | ||
| 49 | } | ||
| 50 | }; | ||
| 51 | diff -r -u binutils-2.21-20110211-orig/gas/config/tc-ppc.c binutils-2.21-20110211/gas/config/tc-ppc.c | ||
| 52 | --- binutils-2.21-20110211-orig/gas/config/tc-ppc.c 2011-02-11 10:58:01.000000000 -0600 | ||
| 53 | +++ binutils-2.21-20110211/gas/config/tc-ppc.c 2011-02-14 13:23:39.478340515 -0600 | ||
| 54 | @@ -1235,6 +1235,7 @@ | ||
| 55 | -me500, -me500x2 generate code for Motorola e500 core complex\n\ | ||
| 56 | -me500mc, generate code for Freescale e500mc core complex\n\ | ||
| 57 | -me500mc64, generate code for Freescale e500mc64 core complex\n\ | ||
| 58 | +-me5500, generate code for Freescale e5500 core complex\n\ | ||
| 59 | -mspe generate code for Motorola SPE instructions\n\ | ||
| 60 | -mtitan generate code for AppliedMicro Titan core complex\n\ | ||
| 61 | -mregnames Allow symbolic names for registers\n\ | ||
| 62 | diff -r -u binutils-2.21-20110211-orig/gas/doc/as.texinfo binutils-2.21-20110211/gas/doc/as.texinfo | ||
| 63 | --- binutils-2.21-20110211-orig/gas/doc/as.texinfo 2011-02-11 10:58:01.000000000 -0600 | ||
| 64 | +++ binutils-2.21-20110211/gas/doc/as.texinfo 2011-02-14 13:26:01.383403323 -0600 | ||
| 65 | @@ -431,7 +431,7 @@ | ||
| 66 | [@b{-a32}|@b{-a64}] | ||
| 67 | [@b{-mpwrx}|@b{-mpwr2}|@b{-mpwr}|@b{-m601}|@b{-mppc}|@b{-mppc32}|@b{-m603}|@b{-m604}|@b{-m403}|@b{-m405}| | ||
| 68 | @b{-m440}|@b{-m464}|@b{-m476}|@b{-m7400}|@b{-m7410}|@b{-m7450}|@b{-m7455}|@b{-m750cl}|@b{-mppc64}| | ||
| 69 | - @b{-m620}|@b{-me500}|@b{-e500x2}|@b{-me500mc}|@b{-me500mc64}|@b{-mppc64bridge}|@b{-mbooke}| | ||
| 70 | + @b{-m620}|@b{-me500}|@b{-e500x2}|@b{-me500mc}|@b{-me500mc64}|@b{-me5500}|@b{-mppc64bridge}|@b{-mbooke}| | ||
| 71 | @b{-mpower4}|@b{-mpr4}|@b{-mpower5}|@b{-mpwr5}|@b{-mpwr5x}|@b{-mpower6}|@b{-mpwr6}| | ||
| 72 | @b{-mpower7}|@b{-mpw7}|@b{-ma2}|@b{-mcell}|@b{-mspe}|@b{-mtitan}|@b{-me300}|@b{-mcom}] | ||
| 73 | [@b{-many}] [@b{-maltivec}|@b{-mvsx}] | ||
| 74 | diff -r -u binutils-2.21-20110211-orig/gas/doc/c-ppc.texi binutils-2.21-20110211/gas/doc/c-ppc.texi | ||
| 75 | --- binutils-2.21-20110211-orig/gas/doc/c-ppc.texi 2011-02-11 10:58:04.000000000 -0600 | ||
| 76 | +++ binutils-2.21-20110211/gas/doc/c-ppc.texi 2011-02-14 13:26:31.140090956 -0600 | ||
| 77 | @@ -88,6 +88,9 @@ | ||
| 78 | @item -me500mc64 | ||
| 79 | Generate code for Freescale e500mc64 core complex. | ||
| 80 | |||
| 81 | +@item -me5500 | ||
| 82 | +Generate code for Freescale e5500 core complex. | ||
| 83 | + | ||
| 84 | @item -mspe | ||
| 85 | Generate code for Motorola SPE instructions. | ||
| 86 | |||
| 87 | diff -r -u binutils-2.21-20110211-orig/opcodes/ppc-dis.c binutils-2.21-20110211/opcodes/ppc-dis.c | ||
| 88 | --- binutils-2.21-20110211-orig/opcodes/ppc-dis.c 2010-07-03 03:27:23.000000000 -0500 | ||
| 89 | +++ binutils-2.21-20110211/opcodes/ppc-dis.c 2011-02-14 13:28:54.384090879 -0600 | ||
| 90 | @@ -114,6 +114,12 @@ | ||
| 91 | | PPC_OPCODE_E500MC | PPC_OPCODE_64 | PPC_OPCODE_POWER5 | ||
| 92 | | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7), | ||
| 93 | 0 }, | ||
| 94 | + { "e5500", (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_ISEL | ||
| 95 | + | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI | ||
| 96 | + | PPC_OPCODE_E500MC | PPC_OPCODE_64 | PPC_OPCODE_POWER4 | ||
| 97 | + | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | ||
| 98 | + | PPC_OPCODE_POWER7), | ||
| 99 | + 0 }, | ||
| 100 | { "e500x2", (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_SPE | ||
| 101 | | PPC_OPCODE_ISEL | PPC_OPCODE_EFS | PPC_OPCODE_BRLOCK | ||
| 102 | | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI | ||
diff --git a/recipes-devtools/binutils/files/bin.e6500-2.patch b/recipes-devtools/binutils/files/bin.e6500-2.patch new file mode 100644 index 0000000..e863323 --- /dev/null +++ b/recipes-devtools/binutils/files/bin.e6500-2.patch | |||
| @@ -0,0 +1,674 @@ | |||
| 1 | bin.e6500-2 | ||
| 2 | Implements target e6500 and -me6500, etc.. | ||
| 3 | |||
| 4 | Also enables some cell instructions but using different opcodes. (This | ||
| 5 | should be temporary until new mnemonics are chosen. Likely to be | ||
| 6 | defined only when ISA 2.07 comes out) | ||
| 7 | |||
| 8 | Also implements new altivec instructions, and a few other e6500 | ||
| 9 | instructions like miso, and sync with two arguments. | ||
| 10 | |||
| 11 | diff -ruN binutils-2.21-20110211-e5500/bfd/archures.c binutils-2.21-20110211-e6500/bfd/archures.c | ||
| 12 | --- binutils-2.21-20110211-e5500/bfd/archures.c 2011-05-03 16:04:03.828069461 -0500 | ||
| 13 | +++ binutils-2.21-20110211-e6500/bfd/archures.c 2011-05-03 16:04:15.253938636 -0500 | ||
| 14 | @@ -235,6 +235,7 @@ | ||
| 15 | .#define bfd_mach_ppc_e500mc 5001 | ||
| 16 | .#define bfd_mach_ppc_e500mc64 5005 | ||
| 17 | .#define bfd_mach_ppc_e5500 5006 | ||
| 18 | +.#define bfd_mach_ppc_e6500 5007 | ||
| 19 | .#define bfd_mach_ppc_titan 83 | ||
| 20 | . bfd_arch_rs6000, {* IBM RS/6000 *} | ||
| 21 | .#define bfd_mach_rs6k 6000 | ||
| 22 | diff -ruN binutils-2.21-20110211-e5500/bfd/bfd-in2.h binutils-2.21-20110211-e6500/bfd/bfd-in2.h | ||
| 23 | --- binutils-2.21-20110211-e5500/bfd/bfd-in2.h 2011-05-03 16:04:03.836064584 -0500 | ||
| 24 | +++ binutils-2.21-20110211-e6500/bfd/bfd-in2.h 2011-05-03 16:04:15.260938268 -0500 | ||
| 25 | @@ -1922,6 +1922,7 @@ | ||
| 26 | #define bfd_mach_ppc_e500mc 5001 | ||
| 27 | #define bfd_mach_ppc_e500mc64 5005 | ||
| 28 | #define bfd_mach_ppc_e5500 5006 | ||
| 29 | +#define bfd_mach_ppc_e6500 5007 | ||
| 30 | #define bfd_mach_ppc_titan 83 | ||
| 31 | bfd_arch_rs6000, /* IBM RS/6000 */ | ||
| 32 | #define bfd_mach_rs6k 6000 | ||
| 33 | diff -ruN binutils-2.21-20110211-e5500/bfd/cpu-powerpc.c binutils-2.21-20110211-e6500/bfd/cpu-powerpc.c | ||
| 34 | --- binutils-2.21-20110211-e5500/bfd/cpu-powerpc.c 2011-05-03 16:04:03.839066505 -0500 | ||
| 35 | +++ binutils-2.21-20110211-e6500/bfd/cpu-powerpc.c 2011-05-03 16:04:15.272066052 -0500 | ||
| 36 | @@ -366,6 +366,20 @@ | ||
| 37 | FALSE, /* not the default */ | ||
| 38 | powerpc_compatible, | ||
| 39 | bfd_default_scan, | ||
| 40 | + &bfd_powerpc_archs[20] | ||
| 41 | + }, | ||
| 42 | + { | ||
| 43 | + 64, /* 64 bits in a word */ | ||
| 44 | + 64, /* 64 bits in an address */ | ||
| 45 | + 8, /* 8 bits in a byte */ | ||
| 46 | + bfd_arch_powerpc, | ||
| 47 | + bfd_mach_ppc_e6500, | ||
| 48 | + "powerpc", | ||
| 49 | + "powerpc:e6500", | ||
| 50 | + 3, | ||
| 51 | + FALSE, /* not the default */ | ||
| 52 | + powerpc_compatible, | ||
| 53 | + bfd_default_scan, | ||
| 54 | 0 | ||
| 55 | } | ||
| 56 | }; | ||
| 57 | diff -ruN binutils-2.21-20110211-e5500/gas/config/tc-ppc.c binutils-2.21-20110211-e6500/gas/config/tc-ppc.c | ||
| 58 | --- binutils-2.21-20110211-e5500/gas/config/tc-ppc.c 2011-05-03 16:04:03.847063157 -0500 | ||
| 59 | +++ binutils-2.21-20110211-e6500/gas/config/tc-ppc.c 2011-05-03 16:04:15.279062744 -0500 | ||
| 60 | @@ -1236,6 +1236,7 @@ | ||
| 61 | -me500mc, generate code for Freescale e500mc core complex\n\ | ||
| 62 | -me500mc64, generate code for Freescale e500mc64 core complex\n\ | ||
| 63 | -me5500, generate code for Freescale e5500 core complex\n\ | ||
| 64 | +-me6500, generate code for Freescale e6500 core complex\n\ | ||
| 65 | -mspe generate code for Motorola SPE instructions\n\ | ||
| 66 | -mtitan generate code for AppliedMicro Titan core complex\n\ | ||
| 67 | -mregnames Allow symbolic names for registers\n\ | ||
| 68 | diff -ruN binutils-2.21-20110211-e5500/gas/doc/as.texinfo binutils-2.21-20110211-e6500/gas/doc/as.texinfo | ||
| 69 | --- binutils-2.21-20110211-e5500/gas/doc/as.texinfo 2011-05-03 16:04:03.857062970 -0500 | ||
| 70 | +++ binutils-2.21-20110211-e6500/gas/doc/as.texinfo 2011-05-03 16:04:15.289062767 -0500 | ||
| 71 | @@ -431,8 +431,8 @@ | ||
| 72 | [@b{-a32}|@b{-a64}] | ||
| 73 | [@b{-mpwrx}|@b{-mpwr2}|@b{-mpwr}|@b{-m601}|@b{-mppc}|@b{-mppc32}|@b{-m603}|@b{-m604}|@b{-m403}|@b{-m405}| | ||
| 74 | @b{-m440}|@b{-m464}|@b{-m476}|@b{-m7400}|@b{-m7410}|@b{-m7450}|@b{-m7455}|@b{-m750cl}|@b{-mppc64}| | ||
| 75 | - @b{-m620}|@b{-me500}|@b{-e500x2}|@b{-me500mc}|@b{-me500mc64}|@b{-me5500}|@b{-mppc64bridge}|@b{-mbooke}| | ||
| 76 | - @b{-mpower4}|@b{-mpr4}|@b{-mpower5}|@b{-mpwr5}|@b{-mpwr5x}|@b{-mpower6}|@b{-mpwr6}| | ||
| 77 | + @b{-m620}|@b{-me500}|@b{-e500x2}|@b{-me500mc}|@b{-me500mc64}|@b{-me5500}|@b{-me6500}|@b{-mppc64bridge}| | ||
| 78 | + @b{-mbooke}|@b{-mpower4}|@b{-mpr4}|@b{-mpower5}|@b{-mpwr5}|@b{-mpwr5x}|@b{-mpower6}|@b{-mpwr6}| | ||
| 79 | @b{-mpower7}|@b{-mpw7}|@b{-ma2}|@b{-mcell}|@b{-mspe}|@b{-mtitan}|@b{-me300}|@b{-mcom}] | ||
| 80 | [@b{-many}] [@b{-maltivec}|@b{-mvsx}] | ||
| 81 | [@b{-mregnames}|@b{-mno-regnames}] | ||
| 82 | diff -ruN binutils-2.21-20110211-e5500/gas/doc/c-ppc.texi binutils-2.21-20110211-e6500/gas/doc/c-ppc.texi | ||
| 83 | --- binutils-2.21-20110211-e5500/gas/doc/c-ppc.texi 2011-05-03 16:04:03.859065711 -0500 | ||
| 84 | +++ binutils-2.21-20110211-e6500/gas/doc/c-ppc.texi 2011-05-03 16:04:15.291064458 -0500 | ||
| 85 | @@ -91,6 +91,9 @@ | ||
| 86 | @item -me5500 | ||
| 87 | Generate code for Freescale e5500 core complex. | ||
| 88 | |||
| 89 | +@item -me6500 | ||
| 90 | +Generate code for Freescale e6500 core complex. | ||
| 91 | + | ||
| 92 | @item -mspe | ||
| 93 | Generate code for Motorola SPE instructions. | ||
| 94 | |||
| 95 | diff -ruN binutils-2.21-20110211-e5500/gas/testsuite/gas/ppc/e6500.d binutils-2.21-20110211-e6500/gas/testsuite/gas/ppc/e6500.d | ||
| 96 | --- binutils-2.21-20110211-e5500/gas/testsuite/gas/ppc/e6500.d 1969-12-31 18:00:00.000000000 -0600 | ||
| 97 | +++ binutils-2.21-20110211-e6500/gas/testsuite/gas/ppc/e6500.d 2011-05-03 17:04:13.611815418 -0500 | ||
| 98 | @@ -0,0 +1,75 @@ | ||
| 99 | +#as: -mppc -me6500 | ||
| 100 | +#objdump: -dr -Me6500 | ||
| 101 | +#name: Power E6500 tests | ||
| 102 | + | ||
| 103 | +.*: +file format elf(32)?(64)?-powerpc.* | ||
| 104 | + | ||
| 105 | +Disassembly of section \.text: | ||
| 106 | + | ||
| 107 | +0+00 <start>: | ||
| 108 | + 0: 10 01 10 c0 vabsdub v0,v1,v2 | ||
| 109 | + 4: 10 01 11 00 vabsduh v0,v1,v2 | ||
| 110 | + 8: 10 01 11 40 vabsduw v0,v1,v2 | ||
| 111 | + c: 7c 01 10 dc mvidsplt v0,r1,r2 | ||
| 112 | + 10: 7c 01 11 1c mviwsplt v0,r1,r2 | ||
| 113 | + 14: 7c 00 12 0a lvexbx v0,0,r2 | ||
| 114 | + 18: 7c 01 12 0a lvexbx v0,r1,r2 | ||
| 115 | + 1c: 7c 00 12 4a lvexhx v0,0,r2 | ||
| 116 | + 20: 7c 01 12 4a lvexhx v0,r1,r2 | ||
| 117 | + 24: 7c 00 12 8a lvexwx v0,0,r2 | ||
| 118 | + 28: 7c 01 12 8a lvexwx v0,r1,r2 | ||
| 119 | + 2c: 7c 00 13 0a stvexbx v0,0,r2 | ||
| 120 | + 30: 7c 01 13 0a stvexbx v0,r1,r2 | ||
| 121 | + 34: 7c 00 13 4a stvexhx v0,0,r2 | ||
| 122 | + 38: 7c 01 13 4a stvexhx v0,r1,r2 | ||
| 123 | + 3c: 7c 00 13 8a stvexwx v0,0,r2 | ||
| 124 | + 40: 7c 01 13 8a stvexwx v0,r1,r2 | ||
| 125 | + 44: 7c 00 12 4e lvepx v0,0,r2 | ||
| 126 | + 48: 7c 01 12 4e lvepx v0,r1,r2 | ||
| 127 | + 4c: 7c 00 12 0e lvepxl v0,0,r2 | ||
| 128 | + 50: 7c 01 12 0e lvepxl v0,r1,r2 | ||
| 129 | + 54: 7c 00 16 4e stvepx v0,0,r2 | ||
| 130 | + 58: 7c 01 16 4e stvepx v0,r1,r2 | ||
| 131 | + 5c: 7c 00 16 0e stvepxl v0,0,r2 | ||
| 132 | + 60: 7c 01 16 0e stvepxl v0,r1,r2 | ||
| 133 | + 64: 7c 00 14 8a lvlx v0,0,r2 | ||
| 134 | + 68: 7c 01 14 8a lvlx v0,r1,r2 | ||
| 135 | + 6c: 7c 00 16 8a lvlxl v0,0,r2 | ||
| 136 | + 70: 7c 01 16 8a lvlxl v0,r1,r2 | ||
| 137 | + 74: 7c 00 14 4a lvrx v0,0,r2 | ||
| 138 | + 78: 7c 01 14 4a lvrx v0,r1,r2 | ||
| 139 | + 7c: 7c 00 16 4a lvrxl v0,0,r2 | ||
| 140 | + 80: 7c 01 16 4a lvrxl v0,r1,r2 | ||
| 141 | + 84: 7c 00 15 8a stvlx v0,0,r2 | ||
| 142 | + 88: 7c 01 15 8a stvlx v0,r1,r2 | ||
| 143 | + 8c: 7c 00 17 8a stvlxl v0,0,r2 | ||
| 144 | + 90: 7c 01 17 8a stvlxl v0,r1,r2 | ||
| 145 | + 94: 7c 00 15 4a stvrx v0,0,r2 | ||
| 146 | + 98: 7c 01 15 4a stvrx v0,r1,r2 | ||
| 147 | + 9c: 7c 00 17 4a stvrxl v0,0,r2 | ||
| 148 | + a0: 7c 01 17 4a stvrxl v0,r1,r2 | ||
| 149 | + a4: 7c 00 14 ca lvswx v0,0,r2 | ||
| 150 | + a8: 7c 01 14 ca lvswx v0,r1,r2 | ||
| 151 | + ac: 7c 00 16 ca lvswxl v0,0,r2 | ||
| 152 | + b0: 7c 01 16 ca lvswxl v0,r1,r2 | ||
| 153 | + b4: 7c 00 15 ca stvswx v0,0,r2 | ||
| 154 | + b8: 7c 01 15 ca stvswx v0,r1,r2 | ||
| 155 | + bc: 7c 00 17 ca stvswxl v0,0,r2 | ||
| 156 | + c0: 7c 01 17 ca stvswxl v0,r1,r2 | ||
| 157 | + c4: 7c 00 16 0a lvsm v0,0,r2 | ||
| 158 | + c8: 7c 01 16 0a lvsm v0,r1,r2 | ||
| 159 | + cc: 7f 5a d3 78 miso | ||
| 160 | + d0: 7c 00 04 ac sync | ||
| 161 | + d4: 7c 00 04 ac sync | ||
| 162 | + d8: 7c 20 04 ac lwsync | ||
| 163 | + dc: 7c 00 04 ac sync | ||
| 164 | + e0: 7c 07 04 ac sync 0,7 | ||
| 165 | + e4: 7c 28 04 ac sync 1,8 | ||
| 166 | + e8: 7c 00 00 c3 dni 0,0 | ||
| 167 | + ec: 7f ff 00 c3 dni 31,31 | ||
| 168 | + f0: 7c 40 0b 4d dcblq. 2,0,r1 | ||
| 169 | + f4: 7c 43 0b 4d dcblq. 2,r3,r1 | ||
| 170 | + f8: 7c 40 09 8d icblq. 2,0,r1 | ||
| 171 | + fc: 7c 43 09 8d icblq. 2,r3,r1 | ||
| 172 | + 100: 7c 10 02 dc mftmr r0,16 | ||
| 173 | + 104: 7c 10 03 dc mttmr 16,r0 | ||
| 174 | diff -ruN binutils-2.21-20110211-e5500/gas/testsuite/gas/ppc/e6500.s binutils-2.21-20110211-e6500/gas/testsuite/gas/ppc/e6500.s | ||
| 175 | --- binutils-2.21-20110211-e5500/gas/testsuite/gas/ppc/e6500.s 1969-12-31 18:00:00.000000000 -0600 | ||
| 176 | +++ binutils-2.21-20110211-e6500/gas/testsuite/gas/ppc/e6500.s 2011-05-03 16:35:30.724819687 -0500 | ||
| 177 | @@ -0,0 +1,69 @@ | ||
| 178 | +# Power E6500 tests | ||
| 179 | + .section ".text" | ||
| 180 | +start: | ||
| 181 | + vabsdub 0, 1, 2 | ||
| 182 | + vabsduh 0, 1, 2 | ||
| 183 | + vabsduw 0, 1, 2 | ||
| 184 | + mvidsplt 0, 1, 2 | ||
| 185 | + mviwsplt 0, 1, 2 | ||
| 186 | + lvexbx 0, 0, 2 | ||
| 187 | + lvexbx 0, 1, 2 | ||
| 188 | + lvexhx 0, 0, 2 | ||
| 189 | + lvexhx 0, 1, 2 | ||
| 190 | + lvexwx 0, 0, 2 | ||
| 191 | + lvexwx 0, 1, 2 | ||
| 192 | + stvexbx 0, 0, 2 | ||
| 193 | + stvexbx 0, 1, 2 | ||
| 194 | + stvexhx 0, 0, 2 | ||
| 195 | + stvexhx 0, 1, 2 | ||
| 196 | + stvexwx 0, 0, 2 | ||
| 197 | + stvexwx 0, 1, 2 | ||
| 198 | + lvepx 0, 0, 2 | ||
| 199 | + lvepx 0, 1, 2 | ||
| 200 | + lvepxl 0, 0, 2 | ||
| 201 | + lvepxl 0, 1, 2 | ||
| 202 | + stvepx 0, 0, 2 | ||
| 203 | + stvepx 0, 1, 2 | ||
| 204 | + stvepxl 0, 0, 2 | ||
| 205 | + stvepxl 0, 1, 2 | ||
| 206 | + lvlx 0, 0, 2 | ||
| 207 | + lvlx 0, 1, 2 | ||
| 208 | + lvlxl 0, 0, 2 | ||
| 209 | + lvlxl 0, 1, 2 | ||
| 210 | + lvrx 0, 0, 2 | ||
| 211 | + lvrx 0, 1, 2 | ||
| 212 | + lvrxl 0, 0, 2 | ||
| 213 | + lvrxl 0, 1, 2 | ||
| 214 | + stvlx 0, 0, 2 | ||
| 215 | + stvlx 0, 1, 2 | ||
| 216 | + stvlxl 0, 0, 2 | ||
| 217 | + stvlxl 0, 1, 2 | ||
| 218 | + stvrx 0, 0, 2 | ||
| 219 | + stvrx 0, 1, 2 | ||
| 220 | + stvrxl 0, 0, 2 | ||
| 221 | + stvrxl 0, 1, 2 | ||
| 222 | + lvswx 0, 0, 2 | ||
| 223 | + lvswx 0, 1, 2 | ||
| 224 | + lvswxl 0, 0, 2 | ||
| 225 | + lvswxl 0, 1, 2 | ||
| 226 | + stvswx 0, 0, 2 | ||
| 227 | + stvswx 0, 1, 2 | ||
| 228 | + stvswxl 0, 0, 2 | ||
| 229 | + stvswxl 0, 1, 2 | ||
| 230 | + lvsm 0, 0, 2 | ||
| 231 | + lvsm 0, 1, 2 | ||
| 232 | + miso | ||
| 233 | + sync | ||
| 234 | + sync 0,0 | ||
| 235 | + sync 1,0 | ||
| 236 | + sync 2,0 | ||
| 237 | + sync 3,7 | ||
| 238 | + sync 3,8 | ||
| 239 | + dni 0,0 | ||
| 240 | + dni 31,31 | ||
| 241 | + dcblq. 2,0,1 | ||
| 242 | + dcblq. 2,3,1 | ||
| 243 | + icblq. 2,0,1 | ||
| 244 | + icblq. 2,3,1 | ||
| 245 | + mftmr 0,16 | ||
| 246 | + mttmr 16,0 | ||
| 247 | diff -ruN binutils-2.21-20110211-e5500/gas/testsuite/gas/ppc/ppc.exp binutils-2.21-20110211-e6500/gas/testsuite/gas/ppc/ppc.exp | ||
| 248 | --- binutils-2.21-20110211-e5500/gas/testsuite/gas/ppc/ppc.exp 2010-02-07 19:59:38.000000000 -0600 | ||
| 249 | +++ binutils-2.21-20110211-e6500/gas/testsuite/gas/ppc/ppc.exp 2011-05-03 16:04:15.297067070 -0500 | ||
| 250 | @@ -42,6 +42,7 @@ | ||
| 251 | run_list_test "range" "-a32" | ||
| 252 | run_dump_test "ppc750ps" | ||
| 253 | run_dump_test "e500mc" | ||
| 254 | + run_dump_test "e6500" | ||
| 255 | run_dump_test "a2" | ||
| 256 | run_dump_test "cell" | ||
| 257 | run_dump_test "common" | ||
| 258 | diff -ruN binutils-2.21-20110211-e5500/include/opcode/ppc.h binutils-2.21-20110211-e6500/include/opcode/ppc.h | ||
| 259 | --- binutils-2.21-20110211-e5500/include/opcode/ppc.h 2010-07-03 01:51:53.000000000 -0500 | ||
| 260 | +++ binutils-2.21-20110211-e6500/include/opcode/ppc.h 2011-05-03 16:04:15.298069340 -0500 | ||
| 261 | @@ -174,6 +174,15 @@ | ||
| 262 | /* Opcode which is supported by the e500 family */ | ||
| 263 | #define PPC_OPCODE_E500 0x100000000ull | ||
| 264 | |||
| 265 | +/* Opcode is supported by Extended Altivec Vector Unit */ | ||
| 266 | +#define PPC_OPCODE_ALTIVEC2 0x200000000ull | ||
| 267 | + | ||
| 268 | +/* Opcode is supported by Power E6500 */ | ||
| 269 | +#define PPC_OPCODE_E6500 0x400000000ull | ||
| 270 | + | ||
| 271 | +/* Opcode is supported by Thread management APU */ | ||
| 272 | +#define PPC_OPCODE_TMR 0x800000000ull | ||
| 273 | + | ||
| 274 | /* A macro to extract the major opcode from an instruction. */ | ||
| 275 | #define PPC_OP(i) (((i) >> 26) & 0x3f) | ||
| 276 | |||
| 277 | diff -ruN binutils-2.21-20110211-e5500/opcodes/ppc-dis.c binutils-2.21-20110211-e6500/opcodes/ppc-dis.c | ||
| 278 | --- binutils-2.21-20110211-e5500/opcodes/ppc-dis.c 2011-05-03 16:04:03.862065832 -0500 | ||
| 279 | +++ binutils-2.21-20110211-e6500/opcodes/ppc-dis.c 2011-05-03 16:04:15.300067851 -0500 | ||
| 280 | @@ -120,6 +120,12 @@ | ||
| 281 | | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | ||
| 282 | | PPC_OPCODE_POWER7), | ||
| 283 | 0 }, | ||
| 284 | + { "e6500", (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_ISEL | ||
| 285 | + | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI | ||
| 286 | + | PPC_OPCODE_E500MC | PPC_OPCODE_64 | PPC_OPCODE_ALTIVEC | ||
| 287 | + | PPC_OPCODE_ALTIVEC2 | PPC_OPCODE_E6500 | PPC_OPCODE_POWER4 | ||
| 288 | + | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7), | ||
| 289 | + 0 }, | ||
| 290 | { "e500x2", (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_SPE | ||
| 291 | | PPC_OPCODE_ISEL | PPC_OPCODE_EFS | PPC_OPCODE_BRLOCK | ||
| 292 | | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI | ||
| 293 | diff -ruN binutils-2.21-20110211-e5500/opcodes/ppc-opc.c binutils-2.21-20110211-e6500/opcodes/ppc-opc.c | ||
| 294 | --- binutils-2.21-20110211-e5500/opcodes/ppc-opc.c 2011-02-11 10:58:12.000000000 -0600 | ||
| 295 | +++ binutils-2.21-20110211-e6500/opcodes/ppc-opc.c 2011-05-03 17:22:20.260813917 -0500 | ||
| 296 | @@ -53,6 +53,7 @@ | ||
| 297 | static long extract_boe (unsigned long, ppc_cpu_t, int *); | ||
| 298 | static unsigned long insert_fxm (unsigned long, long, ppc_cpu_t, const char **); | ||
| 299 | static long extract_fxm (unsigned long, ppc_cpu_t, int *); | ||
| 300 | +static unsigned long insert_ls (unsigned long, long, ppc_cpu_t, const char **); | ||
| 301 | static unsigned long insert_mbe (unsigned long, long, ppc_cpu_t, const char **); | ||
| 302 | static long extract_mbe (unsigned long, ppc_cpu_t, int *); | ||
| 303 | static unsigned long insert_mb6 (unsigned long, long, ppc_cpu_t, const char **); | ||
| 304 | @@ -450,6 +451,7 @@ | ||
| 305 | lower 5 bits are stored in the upper 5 and vice- versa. */ | ||
| 306 | #define SPR SISIGNOPT + 1 | ||
| 307 | #define PMR SPR | ||
| 308 | +#define TMR SPR | ||
| 309 | #define SPR_MASK (0x3ff << 11) | ||
| 310 | { 0x3ff, 11, insert_spr, extract_spr, 0 }, | ||
| 311 | |||
| 312 | @@ -472,8 +474,12 @@ | ||
| 313 | #define T STRM | ||
| 314 | { 0x3, 21, NULL, NULL, 0 }, | ||
| 315 | |||
| 316 | + /* The ESYNC field in an X (sync) form instruction. */ | ||
| 317 | +#define ESYNC STRM + 1 | ||
| 318 | + { 0xf, 16, insert_ls, NULL, PPC_OPERAND_OPTIONAL }, | ||
| 319 | + | ||
| 320 | /* The SV field in a POWER SC form instruction. */ | ||
| 321 | -#define SV STRM + 1 | ||
| 322 | +#define SV ESYNC + 1 | ||
| 323 | { 0x3fff, 2, NULL, NULL, 0 }, | ||
| 324 | |||
| 325 | /* The TBR field in an XFX form instruction. This is like the SPR | ||
| 326 | @@ -515,6 +521,7 @@ | ||
| 327 | |||
| 328 | /* The UIMM field in a VX form instruction. */ | ||
| 329 | #define UIMM SIMM + 1 | ||
| 330 | +#define DCTL UIMM | ||
| 331 | { 0x1f, 16, NULL, NULL, 0 }, | ||
| 332 | |||
| 333 | /* The SHB field in a VA form instruction. */ | ||
| 334 | @@ -996,6 +1003,32 @@ | ||
| 335 | return mask; | ||
| 336 | } | ||
| 337 | |||
| 338 | +/* The LS field in a sync instruction that accepts 2 operands | ||
| 339 | + Values 2 and 3 are reserved, | ||
| 340 | + must be treated as 0 for future compatibility | ||
| 341 | + Values 0 and 1 can be accepted, if field ESYNC is zero | ||
| 342 | + Otherwise L = complement of ESYNC-bit2 (1<<18) */ | ||
| 343 | + | ||
| 344 | +static unsigned long | ||
| 345 | +insert_ls (unsigned long insn, | ||
| 346 | + long value, | ||
| 347 | + ppc_cpu_t dialect ATTRIBUTE_UNUSED, | ||
| 348 | + const char **errmsg ATTRIBUTE_UNUSED) | ||
| 349 | +{ | ||
| 350 | + unsigned long ls; | ||
| 351 | + | ||
| 352 | + ls = (insn >> 21) & 0x03; | ||
| 353 | + if (value == 0) | ||
| 354 | + { | ||
| 355 | + if (ls > 1) | ||
| 356 | + return insn & ~(0x3 << 21); | ||
| 357 | + return insn; | ||
| 358 | + } | ||
| 359 | + if ((value & 0x2) != 0) | ||
| 360 | + return (insn & ~(0x3 << 21)) | ((value & 0xf) << 16); | ||
| 361 | + return (insn & ~(0x3 << 21)) | (0x1 << 21) | ((value & 0xf) << 16); | ||
| 362 | +} | ||
| 363 | + | ||
| 364 | /* The MB and ME fields in an M form instruction expressed as a single | ||
| 365 | operand which is itself a bitmask. The extraction function always | ||
| 366 | marks it as invalid, since we never want to recognize an | ||
| 367 | @@ -1728,6 +1761,9 @@ | ||
| 368 | /* An X form sync instruction with everything filled in except the LS field. */ | ||
| 369 | #define XSYNC_MASK (0xff9fffff) | ||
| 370 | |||
| 371 | +/* An X form sync instruction with everything filled in except the L and E fields. */ | ||
| 372 | +#define XSYNCLE_MASK (0xff90ffff) | ||
| 373 | + | ||
| 374 | /* An X_MASK, but with the EH bit clear. */ | ||
| 375 | #define XEH_MASK (X_MASK & ~((unsigned long )1)) | ||
| 376 | |||
| 377 | @@ -1922,6 +1958,7 @@ | ||
| 378 | #define PPC860 PPC | ||
| 379 | #define PPCPS PPC_OPCODE_PPCPS | ||
| 380 | #define PPCVEC PPC_OPCODE_ALTIVEC | ||
| 381 | +#define PPCVEC2 PPC_OPCODE_ALTIVEC2 | ||
| 382 | #define PPCVSX PPC_OPCODE_VSX | ||
| 383 | #define POWER PPC_OPCODE_POWER | ||
| 384 | #define POWER2 PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | ||
| 385 | @@ -1940,6 +1977,7 @@ | ||
| 386 | #define PPCEFS PPC_OPCODE_EFS | ||
| 387 | #define PPCBRLK PPC_OPCODE_BRLOCK | ||
| 388 | #define PPCPMR PPC_OPCODE_PMR | ||
| 389 | +#define PPCTMR PPC_OPCODE_TMR | ||
| 390 | #define PPCCHLK PPC_OPCODE_CACHELCK | ||
| 391 | #define PPCRFMCI PPC_OPCODE_RFMCI | ||
| 392 | #define E500MC PPC_OPCODE_E500MC | ||
| 393 | @@ -1947,6 +1985,7 @@ | ||
| 394 | #define TITAN PPC_OPCODE_TITAN | ||
| 395 | #define MULHW PPC_OPCODE_405 | PPC_OPCODE_440 | TITAN | ||
| 396 | #define E500 PPC_OPCODE_E500 | ||
| 397 | +#define E6500 PPC_OPCODE_E6500 | ||
| 398 | |||
| 399 | /* The opcode table. | ||
| 400 | |||
| 401 | @@ -2112,12 +2151,14 @@ | ||
| 402 | {"machhwsu", XO (4, 76,0,0),XO_MASK, MULHW, PPCNONE, {RT, RA, RB}}, | ||
| 403 | {"machhwsu.", XO (4, 76,0,1),XO_MASK, MULHW, PPCNONE, {RT, RA, RB}}, | ||
| 404 | {"ps_cmpo1", X (4, 96), X_MASK|(3<<21), PPCPS, PPCNONE, {BF, FRA, FRB}}, | ||
| 405 | +{"vabsdub", VX (4, 192), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}}, | ||
| 406 | {"vcmpeqfp", VXR(4, 198,0), VXR_MASK, PPCVEC, PPCNONE, {VD, VA, VB}}, | ||
| 407 | {"vpkuwus", VX (4, 206), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}}, | ||
| 408 | {"machhws", XO (4, 108,0,0),XO_MASK, MULHW, PPCNONE, {RT, RA, RB}}, | ||
| 409 | {"machhws.", XO (4, 108,0,1),XO_MASK, MULHW, PPCNONE, {RT, RA, RB}}, | ||
| 410 | {"nmachhws", XO (4, 110,0,0),XO_MASK, MULHW, PPCNONE, {RT, RA, RB}}, | ||
| 411 | {"nmachhws.", XO (4, 110,0,1),XO_MASK, MULHW, PPCNONE, {RT, RA, RB}}, | ||
| 412 | +{"vabsduh", VX (4, 256), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}}, | ||
| 413 | {"vmaxsb", VX (4, 258), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}}, | ||
| 414 | {"vslb", VX (4, 260), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}}, | ||
| 415 | {"vmulosb", VX (4, 264), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}}, | ||
| 416 | @@ -2130,6 +2171,7 @@ | ||
| 417 | {"mulchwu.", XRC(4, 136,1), X_MASK, MULHW, PPCNONE, {RT, RA, RB}}, | ||
| 418 | {"macchwu", XO (4, 140,0,0),XO_MASK, MULHW, PPCNONE, {RT, RA, RB}}, | ||
| 419 | {"macchwu.", XO (4, 140,0,1),XO_MASK, MULHW, PPCNONE, {RT, RA, RB}}, | ||
| 420 | +{"vabsduw", VX (4, 320), VX_MASK, PPCVEC2, PPCNONE, {VD, VA, VB}}, | ||
| 421 | {"vmaxsh", VX (4, 322), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}}, | ||
| 422 | {"vslh", VX (4, 324), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}}, | ||
| 423 | {"vmulosh", VX (4, 328), VX_MASK, PPCVEC, PPCNONE, {VD, VA, VB}}, | ||
| 424 | @@ -3613,6 +3655,8 @@ | ||
| 425 | |||
| 426 | {"lbepx", X(31,95), X_MASK, E500MC|PPCA2, PPCNONE, {RT, RA, RB}}, | ||
| 427 | |||
| 428 | +{"dni", XRC(31,97,1), XRB_MASK, E6500, PPCNONE, {DUI, DCTL}}, | ||
| 429 | + | ||
| 430 | {"lvx", X(31,103), X_MASK, PPCVEC, PPCNONE, {VD, RA, RB}}, | ||
| 431 | {"lqfcmx", APU(31,103,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}}, | ||
| 432 | |||
| 433 | @@ -3622,6 +3666,8 @@ | ||
| 434 | {"mul", XO(31,107,0,0), XO_MASK, M601, PPCNONE, {RT, RA, RB}}, | ||
| 435 | {"mul.", XO(31,107,0,1), XO_MASK, M601, PPCNONE, {RT, RA, RB}}, | ||
| 436 | |||
| 437 | +{"mvidsplt", X(31,110), X_MASK, PPCVEC2, PPCNONE, {VD, RA, RB}}, | ||
| 438 | + | ||
| 439 | {"mtsrdin", X(31,114), XRA_MASK, PPC64, PPCNONE, {RS, RB}}, | ||
| 440 | |||
| 441 | {"lharx", X(31,116), XEH_MASK, POWER7, PPCNONE, {RT, RA0, RB, EH}}, | ||
| 442 | @@ -3656,6 +3702,8 @@ | ||
| 443 | {"adde.", XO(31,138,0,1), XO_MASK, PPCCOM, PPCNONE, {RT, RA, RB}}, | ||
| 444 | {"ae.", XO(31,138,0,1), XO_MASK, PWRCOM, PPCNONE, {RT, RA, RB}}, | ||
| 445 | |||
| 446 | +{"mviwsplt", X(31,142), X_MASK, PPCVEC2, PPCNONE, {VD, RA, RB}}, | ||
| 447 | + | ||
| 448 | {"dcbtstlse", X(31,142), X_MASK, PPCCHLK, PPCNONE, {CT, RA, RB}}, | ||
| 449 | |||
| 450 | {"mtcr", XFXM(31,144,0xff,0), XRARB_MASK, COM, PPCNONE, {RS}}, | ||
| 451 | @@ -3711,6 +3759,8 @@ | ||
| 452 | |||
| 453 | {"prtyd", X(31,186), XRB_MASK, POWER6|PPCA2, PPCNONE, {RA, RS}}, | ||
| 454 | |||
| 455 | +{"icblq.", XRC(31,198,1), X_MASK, E6500, PPCNONE, {CT, RA0, RB}}, | ||
| 456 | + | ||
| 457 | {"stvewx", X(31,199), X_MASK, PPCVEC, PPCNONE, {VS, RA, RB}}, | ||
| 458 | {"stwfcmx", APU(31,199,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}}, | ||
| 459 | |||
| 460 | @@ -3788,8 +3838,12 @@ | ||
| 461 | {"mfdcrx", X(31,259), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RS, RA}}, | ||
| 462 | {"mfdcrx.", XRC(31,259,1), X_MASK, PPCA2, PPCNONE, {RS, RA}}, | ||
| 463 | |||
| 464 | +{"lvexbx", X(31,261), X_MASK, PPCVEC2, PPCNONE, {VD, RA0, RB}}, | ||
| 465 | + | ||
| 466 | {"icbt", X(31,262), XRT_MASK, PPC403, PPCNONE, {RA, RB}}, | ||
| 467 | |||
| 468 | +{"lvepxl", X(31,263), X_MASK, PPCVEC2, PPCNONE, {VD, RA0, RB}}, | ||
| 469 | + | ||
| 470 | {"ldfcmx", APU(31,263,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}}, | ||
| 471 | {"doz", XO(31,264,0,0), XO_MASK, M601, PPCNONE, {RT, RA, RB}}, | ||
| 472 | {"doz.", XO(31,264,0,1), XO_MASK, M601, PPCNONE, {RT, RA, RB}}, | ||
| 473 | @@ -3823,6 +3877,9 @@ | ||
| 474 | |||
| 475 | {"mfdcrux", X(31,291), X_MASK, PPC464, PPCNONE, {RS, RA}}, | ||
| 476 | |||
| 477 | +{"lvexhx", X(31,293), X_MASK, PPCVEC2, PPCNONE, {VD, RA0, RB}}, | ||
| 478 | +{"lvepx", X(31,295), X_MASK, PPCVEC2, PPCNONE, {VD, RA0, RB}}, | ||
| 479 | + | ||
| 480 | {"tlbie", X(31,306), XRTLRA_MASK, PPC, TITAN, {RB, L}}, | ||
| 481 | {"tlbi", X(31,306), XRT_MASK, POWER, PPCNONE, {RA0, RB}}, | ||
| 482 | |||
| 483 | @@ -3874,6 +3931,8 @@ | ||
| 484 | {"mfdcr", X(31,323), X_MASK, PPC403|BOOKE|PPCA2|PPC476, TITAN, {RT, SPR}}, | ||
| 485 | {"mfdcr.", XRC(31,323,1), X_MASK, PPCA2, PPCNONE, {RT, SPR}}, | ||
| 486 | |||
| 487 | +{"lvexwx", X(31,325), X_MASK, PPCVEC2, PPCNONE, {VD, RA0, RB}}, | ||
| 488 | + | ||
| 489 | {"dcread", X(31,326), X_MASK, PPC476|TITAN, PPCNONE, {RT, RA, RB}}, | ||
| 490 | |||
| 491 | {"div", XO(31,331,0,0), XO_MASK, M601, PPCNONE, {RT, RA, RB}}, | ||
| 492 | @@ -3882,6 +3941,7 @@ | ||
| 493 | {"lxvdsx", X(31,332), XX1_MASK, PPCVSX, PPCNONE, {XT6, RA, RB}}, | ||
| 494 | |||
| 495 | {"mfpmr", X(31,334), X_MASK, PPCPMR|PPCE300, PPCNONE, {RT, PMR}}, | ||
| 496 | +{"mftmr", X(31,366), X_MASK, PPCTMR|E6500, PPCNONE, {RT, TMR}}, | ||
| 497 | |||
| 498 | {"mfmq", XSPR(31,339, 0), XSPR_MASK, M601, PPCNONE, {RT}}, | ||
| 499 | {"mfxer", XSPR(31,339, 1), XSPR_MASK, COM, PPCNONE, {RT}}, | ||
| 500 | @@ -4112,6 +4172,8 @@ | ||
| 501 | {"mtdcrx", X(31,387), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RA, RS}}, | ||
| 502 | {"mtdcrx.", XRC(31,387,1), X_MASK, PPCA2, PPCNONE, {RA, RS}}, | ||
| 503 | |||
| 504 | +{"stvexbx", X(31,389), X_MASK, PPCVEC2, PPCNONE, {VS, RA0, RB}}, | ||
| 505 | + | ||
| 506 | {"dcblc", X(31,390), X_MASK, PPCCHLK|PPC476|TITAN, PPCNONE, {CT, RA, RB}}, | ||
| 507 | {"stdfcmx", APU(31,391,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}}, | ||
| 508 | |||
| 509 | @@ -4136,6 +4198,10 @@ | ||
| 510 | |||
| 511 | {"mtdcrux", X(31,419), X_MASK, PPC464, PPCNONE, {RA, RS}}, | ||
| 512 | |||
| 513 | +{"stvexhx", X(31,421), X_MASK, PPCVEC2, PPCNONE, {VS, RA0, RB}}, | ||
| 514 | + | ||
| 515 | +{"dcblq.", XRC(31,422,1), X_MASK, E6500, PPCNONE, {CT, RA0, RB}}, | ||
| 516 | + | ||
| 517 | {"divde", XO(31,425,0,0), XO_MASK, POWER7|PPCA2, PPCNONE, {RT, RA, RB}}, | ||
| 518 | {"divde.", XO(31,425,0,1), XO_MASK, POWER7|PPCA2, PPCNONE, {RT, RA, RB}}, | ||
| 519 | {"divwe", XO(31,427,0,0), XO_MASK, POWER7|PPCA2, PPCNONE, {RT, RA, RB}}, | ||
| 520 | @@ -4149,6 +4215,8 @@ | ||
| 521 | |||
| 522 | {"mdors", 0x7f9ce378, 0xffffffff, E500MC, PPCNONE, {0}}, | ||
| 523 | |||
| 524 | +{"miso", 0x7f5ad378, 0xffffffff, E6500, PPCNONE, {0}}, | ||
| 525 | + | ||
| 526 | {"mr", XRC(31,444,0), X_MASK, COM, PPCNONE, {RA, RS, RBS}}, | ||
| 527 | {"or", XRC(31,444,0), X_MASK, COM, PPCNONE, {RA, RS, RB}}, | ||
| 528 | {"mr.", XRC(31,444,1), X_MASK, COM, PPCNONE, {RA, RS, RBS}}, | ||
| 529 | @@ -4191,6 +4259,8 @@ | ||
| 530 | {"mtdcr", X(31,451), X_MASK, PPC403|BOOKE|PPCA2|PPC476, TITAN, {SPR, RS}}, | ||
| 531 | {"mtdcr.", XRC(31,451,1), X_MASK, PPCA2, PPCNONE, {SPR, RS}}, | ||
| 532 | |||
| 533 | +{"stvexwx", X(31,453), X_MASK, PPCVEC2, PPCNONE, {VS, RA0, RB}}, | ||
| 534 | + | ||
| 535 | {"dccci", X(31,454), XRT_MASK, PPC403|PPC440|TITAN|PPCA2, PPCNONE, {RAOPT, RBOPT}}, | ||
| 536 | {"dci", X(31,454), XRARB_MASK, PPCA2|PPC476, PPCNONE, {CT}}, | ||
| 537 | |||
| 538 | @@ -4201,6 +4271,7 @@ | ||
| 539 | {"divwu.", XO(31,459,0,1), XO_MASK, PPC, PPCNONE, {RT, RA, RB}}, | ||
| 540 | |||
| 541 | {"mtpmr", X(31,462), X_MASK, PPCPMR|PPCE300, PPCNONE, {PMR, RS}}, | ||
| 542 | +{"mttmr", X(31,494), X_MASK, PPCTMR|E6500, PPCNONE, {TMR, RS}}, | ||
| 543 | |||
| 544 | {"mtmq", XSPR(31,467, 0), XSPR_MASK, M601, PPCNONE, {RS}}, | ||
| 545 | {"mtxer", XSPR(31,467, 1), XSPR_MASK, COM, PPCNONE, {RS}}, | ||
| 546 | @@ -4445,6 +4516,8 @@ | ||
| 547 | |||
| 548 | {"lhdx", X(31,547), X_MASK, E500MC, PPCNONE, {RT, RA, RB}}, | ||
| 549 | |||
| 550 | +{"lvrx", X(31,549), X_MASK, PPCVEC2, PPCNONE, {VD, RA0, RB}}, | ||
| 551 | + | ||
| 552 | {"bbelr", X(31,550), X_MASK, PPCBRLK, PPCNONE, {0}}, | ||
| 553 | |||
| 554 | {"lvrx", X(31,551), X_MASK, CELL, PPCNONE, {VD, RA0, RB}}, | ||
| 555 | @@ -4461,6 +4534,8 @@ | ||
| 556 | |||
| 557 | {"lwdx", X(31,579), X_MASK, E500MC, PPCNONE, {RT, RA, RB}}, | ||
| 558 | |||
| 559 | +{"lvlx", X(31,581), X_MASK, PPCVEC2, PPCNONE, {VD, RA0, RB}}, | ||
| 560 | + | ||
| 561 | {"lwfcmux", APU(31,583,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}}, | ||
| 562 | |||
| 563 | {"lxsdx", X(31,588), XX1_MASK, PPCVSX, PPCNONE, {XT6, RA, RB}}, | ||
| 564 | @@ -4472,9 +4547,10 @@ | ||
| 565 | |||
| 566 | {"lwsync", XSYNC(31,598,1), 0xffffffff, PPC, E500, {0}}, | ||
| 567 | {"ptesync", XSYNC(31,598,2), 0xffffffff, PPC64, PPCNONE, {0}}, | ||
| 568 | +{"sync", X(31,598), XSYNCLE_MASK,E6500, PPCNONE, {LS, ESYNC}}, | ||
| 569 | {"sync", X(31,598), XSYNC_MASK, PPCCOM, BOOKE|PPC476, {LS}}, | ||
| 570 | {"msync", X(31,598), 0xffffffff, BOOKE|PPCA2|PPC476, PPCNONE, {0}}, | ||
| 571 | -{"sync", X(31,598), 0xffffffff, BOOKE|PPC476, PPCNONE, {0}}, | ||
| 572 | +{"sync", X(31,598), 0xffffffff, BOOKE|PPC476, E6500, {0}}, | ||
| 573 | {"lwsync", X(31,598), 0xffffffff, E500, PPCNONE, {0}}, | ||
| 574 | {"dcs", X(31,598), 0xffffffff, PWRCOM, PPCNONE, {0}}, | ||
| 575 | |||
| 576 | @@ -4485,6 +4561,8 @@ | ||
| 577 | |||
| 578 | {"lddx", X(31,611), X_MASK, E500MC, PPCNONE, {RT, RA, RB}}, | ||
| 579 | |||
| 580 | +{"lvswx", X(31,613), X_MASK, PPCVEC2, PPCNONE, {VD, RA0, RB}}, | ||
| 581 | + | ||
| 582 | {"lqfcmux", APU(31,615,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}}, | ||
| 583 | |||
| 584 | {"nego", XO(31,104,1,0), XORB_MASK, COM, PPCNONE, {RT, RA}}, | ||
| 585 | @@ -4534,6 +4612,8 @@ | ||
| 586 | |||
| 587 | {"sthdx", X(31,675), X_MASK, E500MC, PPCNONE, {RS, RA, RB}}, | ||
| 588 | |||
| 589 | +{"stvrx", X(31,677), X_MASK, PPCVEC2, PPCNONE, {VS, RA0, RB}}, | ||
| 590 | + | ||
| 591 | {"stvrx", X(31,679), X_MASK, CELL, PPCNONE, {VS, RA0, RB}}, | ||
| 592 | {"sthfcmux", APU(31,679,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}}, | ||
| 593 | |||
| 594 | @@ -4546,6 +4626,8 @@ | ||
| 595 | |||
| 596 | {"stwdx", X(31,707), X_MASK, E500MC, PPCNONE, {RS, RA, RB}}, | ||
| 597 | |||
| 598 | +{"stvlx", X(31,709), X_MASK, PPCVEC2, PPCNONE, {VS, RA0, RB}}, | ||
| 599 | + | ||
| 600 | {"stwfcmux", APU(31,711,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}}, | ||
| 601 | |||
| 602 | {"stxsdx", X(31,716), XX1_MASK, PPCVSX, PPCNONE, {XS6, RA, RB}}, | ||
| 603 | @@ -4578,6 +4660,8 @@ | ||
| 604 | |||
| 605 | {"stddx", X(31,739), X_MASK, E500MC, PPCNONE, {RS, RA, RB}}, | ||
| 606 | |||
| 607 | +{"stvswx", X(31,741), X_MASK, PPCVEC2, PPCNONE, {VS, RA0, RB}}, | ||
| 608 | + | ||
| 609 | {"stqfcmux", APU(31,743,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}}, | ||
| 610 | |||
| 611 | {"subfmeo", XO(31,232,1,0), XORB_MASK, PPCCOM, PPCNONE, {RT, RA}}, | ||
| 612 | @@ -4606,6 +4690,8 @@ | ||
| 613 | {"srliq", XRC(31,760,0), X_MASK, M601, PPCNONE, {RA, RS, SH}}, | ||
| 614 | {"srliq.", XRC(31,760,1), X_MASK, M601, PPCNONE, {RA, RS, SH}}, | ||
| 615 | |||
| 616 | +{"lvsm", X(31,773), X_MASK, PPCVEC2, PPCNONE, {VD, RA0, RB}}, | ||
| 617 | +{"stvepxl", X(31,775), X_MASK, PPCVEC2, PPCNONE, {VS, RA0, RB}}, | ||
| 618 | {"lvlxl", X(31,775), X_MASK, CELL, PPCNONE, {VD, RA0, RB}}, | ||
| 619 | {"ldfcmux", APU(31,775,0), APU_MASK, PPC405, PPCNONE, {FCRT, RA, RB}}, | ||
| 620 | |||
| 621 | @@ -4638,6 +4724,8 @@ | ||
| 622 | |||
| 623 | {"lfddx", X(31,803), X_MASK, E500MC, PPCNONE, {FRT, RA, RB}}, | ||
| 624 | |||
| 625 | +{"lvrxl", X(31,805), X_MASK, PPCVEC2, PPCNONE, {VD, RA0, RB}}, | ||
| 626 | +{"stvepx", X(31,807), X_MASK, PPCVEC2, PPCNONE, {VS, RA0, RB}}, | ||
| 627 | {"lvrxl", X(31,807), X_MASK, CELL, PPCNONE, {VD, RA0, RB}}, | ||
| 628 | |||
| 629 | {"rac", X(31,818), X_MASK, M601, PPCNONE, {RT, RA, RB}}, | ||
| 630 | @@ -4658,6 +4746,8 @@ | ||
| 631 | {"sradi", XS(31,413,0), XS_MASK, PPC64, PPCNONE, {RA, RS, SH6}}, | ||
| 632 | {"sradi.", XS(31,413,1), XS_MASK, PPC64, PPCNONE, {RA, RS, SH6}}, | ||
| 633 | |||
| 634 | +{"lvlxl", X(31,837), X_MASK, PPCVEC2, PPCNONE, {VD, RA0, RB}}, | ||
| 635 | + | ||
| 636 | {"divo", XO(31,331,1,0), XO_MASK, M601, PPCNONE, {RT, RA, RB}}, | ||
| 637 | {"divo.", XO(31,331,1,1), XO_MASK, M601, PPCNONE, {RT, RA, RB}}, | ||
| 638 | |||
| 639 | @@ -4676,6 +4766,8 @@ | ||
| 640 | |||
| 641 | {"lfiwax", X(31,855), X_MASK, POWER6|PPCA2|PPC476, PPCNONE, {FRT, RA0, RB}}, | ||
| 642 | |||
| 643 | +{"lvswxl", X(31,869), X_MASK, PPCVEC2, PPCNONE, {VD, RA0, RB}}, | ||
| 644 | + | ||
| 645 | {"abso", XO(31,360,1,0), XORB_MASK, M601, PPCNONE, {RT, RA}}, | ||
| 646 | {"abso.", XO(31,360,1,1), XORB_MASK, M601, PPCNONE, {RT, RA}}, | ||
| 647 | |||
| 648 | @@ -4721,6 +4813,8 @@ | ||
| 649 | |||
| 650 | {"stfddx", X(31,931), X_MASK, E500MC, PPCNONE, {FRS, RA, RB}}, | ||
| 651 | |||
| 652 | +{"stvrxl", X(31,933), X_MASK, PPCVEC2, PPCNONE, {VS, RA0, RB}}, | ||
| 653 | + | ||
| 654 | {"wclrone", XOPL2(31,934,2),XRT_MASK, PPCA2, PPCNONE, {RA0, RB}}, | ||
| 655 | {"wclrall", X(31,934), XRARB_MASK, PPCA2, PPCNONE, {L}}, | ||
| 656 | {"wclr", X(31,934), X_MASK, PPCA2, PPCNONE, {L, RA0, RB}}, | ||
| 657 | @@ -4749,6 +4843,8 @@ | ||
| 658 | {"extsb", XRC(31,954,0), XRB_MASK, PPC, PPCNONE, {RA, RS}}, | ||
| 659 | {"extsb.", XRC(31,954,1), XRB_MASK, PPC, PPCNONE, {RA, RS}}, | ||
| 660 | |||
| 661 | +{"stvlxl", X(31,965), X_MASK, PPCVEC2, PPCNONE, {VS, RA0, RB}}, | ||
| 662 | + | ||
| 663 | {"iccci", X(31,966), XRT_MASK, PPC403|PPC440|TITAN|PPCA2, PPCNONE, {RAOPT, RBOPT}}, | ||
| 664 | {"ici", X(31,966), XRARB_MASK, PPCA2|PPC476, PPCNONE, {CT}}, | ||
| 665 | |||
| 666 | @@ -4776,6 +4872,8 @@ | ||
| 667 | |||
| 668 | {"icbiep", XRT(31,991,0), XRT_MASK, E500MC|PPCA2, PPCNONE, {RA, RB}}, | ||
| 669 | |||
| 670 | +{"stvswxl", X(31,997), X_MASK, PPCVEC2, PPCNONE, {VS, RA0, RB}}, | ||
| 671 | + | ||
| 672 | {"icread", X(31,998), XRT_MASK, PPC403|PPC440|PPC476|TITAN, PPCNONE, {RA, RB}}, | ||
| 673 | |||
| 674 | {"nabso", XO(31,488,1,0), XORB_MASK, M601, PPCNONE, {RT, RA}}, | ||
