forked from pool/binutils
1168 lines
43 KiB
Diff
1168 lines
43 KiB
Diff
|
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
|
||
|
index 85c6a81..17e7e3b 100644
|
||
|
--- a/bfd/ChangeLog
|
||
|
+++ b/bfd/ChangeLog
|
||
|
@@ -1,3 +1,25 @@
|
||
|
+2017-03-07 Alan Modra <amodra@gmail.com>
|
||
|
+
|
||
|
+ PR 21224
|
||
|
+ PR 20519
|
||
|
+ * elf64-ppc.c (ppc64_elf_relocate_section): Add missing
|
||
|
+ dyn_relocs check.
|
||
|
+
|
||
|
+2017-03-07 Alan Modra <amodra@gmail.com>
|
||
|
+
|
||
|
+ Apply from master
|
||
|
+ 2017-03-02 Alan Modra <amodra@gmail.com>
|
||
|
+ * elf32-ppc.c (ppc_elf_vle_split16): Correct insn mask typo.
|
||
|
+
|
||
|
+2017-03-02 Tristan Gingold <gingold@adacore.com>
|
||
|
+
|
||
|
+ * version.m4: Bump version to 2.28.0
|
||
|
+ * configure: Regenerate.
|
||
|
+
|
||
|
+2017-03-02 Tristan Gingold <gingold@adacore.com>
|
||
|
+
|
||
|
+ * development.sh: Set development to true.
|
||
|
+
|
||
|
2017-03-02 Tristan Gingold <gingold@adacore.com>
|
||
|
|
||
|
* version.m4: Bump version to 2.28
|
||
|
diff --git a/bfd/configure b/bfd/configure
|
||
|
index 9769387..f30bfab 100755
|
||
|
--- a/bfd/configure
|
||
|
+++ b/bfd/configure
|
||
|
@@ -1,6 +1,6 @@
|
||
|
#! /bin/sh
|
||
|
# Guess values for system-dependent variables and create Makefiles.
|
||
|
-# Generated by GNU Autoconf 2.64 for bfd 2.28.
|
||
|
+# Generated by GNU Autoconf 2.64 for bfd 2.28.0.
|
||
|
#
|
||
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
|
||
|
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
|
||
|
@@ -556,8 +556,8 @@ MAKEFLAGS=
|
||
|
# Identity of this package.
|
||
|
PACKAGE_NAME='bfd'
|
||
|
PACKAGE_TARNAME='bfd'
|
||
|
-PACKAGE_VERSION='2.28'
|
||
|
-PACKAGE_STRING='bfd 2.28'
|
||
|
+PACKAGE_VERSION='2.28.0'
|
||
|
+PACKAGE_STRING='bfd 2.28.0'
|
||
|
PACKAGE_BUGREPORT=''
|
||
|
PACKAGE_URL=''
|
||
|
|
||
|
@@ -1354,7 +1354,7 @@ if test "$ac_init_help" = "long"; then
|
||
|
# Omit some internal or obsolete options to make the list less imposing.
|
||
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||
|
cat <<_ACEOF
|
||
|
-\`configure' configures bfd 2.28 to adapt to many kinds of systems.
|
||
|
+\`configure' configures bfd 2.28.0 to adapt to many kinds of systems.
|
||
|
|
||
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||
|
|
||
|
@@ -1425,7 +1425,7 @@ fi
|
||
|
|
||
|
if test -n "$ac_init_help"; then
|
||
|
case $ac_init_help in
|
||
|
- short | recursive ) echo "Configuration of bfd 2.28:";;
|
||
|
+ short | recursive ) echo "Configuration of bfd 2.28.0:";;
|
||
|
esac
|
||
|
cat <<\_ACEOF
|
||
|
|
||
|
@@ -1546,7 +1546,7 @@ fi
|
||
|
test -n "$ac_init_help" && exit $ac_status
|
||
|
if $ac_init_version; then
|
||
|
cat <<\_ACEOF
|
||
|
-bfd configure 2.28
|
||
|
+bfd configure 2.28.0
|
||
|
generated by GNU Autoconf 2.64
|
||
|
|
||
|
Copyright (C) 2009 Free Software Foundation, Inc.
|
||
|
@@ -2188,7 +2188,7 @@ cat >config.log <<_ACEOF
|
||
|
This file contains any messages produced by compilers while
|
||
|
running configure, to aid debugging if configure makes a mistake.
|
||
|
|
||
|
-It was created by bfd $as_me 2.28, which was
|
||
|
+It was created by bfd $as_me 2.28.0, which was
|
||
|
generated by GNU Autoconf 2.64. Invocation command line was
|
||
|
|
||
|
$ $0 $@
|
||
|
@@ -3997,7 +3997,7 @@ fi
|
||
|
|
||
|
# Define the identity of the package.
|
||
|
PACKAGE='bfd'
|
||
|
- VERSION='2.28'
|
||
|
+ VERSION='2.28.0'
|
||
|
|
||
|
|
||
|
cat >>confdefs.h <<_ACEOF
|
||
|
@@ -16613,7 +16613,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||
|
# values after options handling.
|
||
|
ac_log="
|
||
|
-This file was extended by bfd $as_me 2.28, which was
|
||
|
+This file was extended by bfd $as_me 2.28.0, which was
|
||
|
generated by GNU Autoconf 2.64. Invocation command line was
|
||
|
|
||
|
CONFIG_FILES = $CONFIG_FILES
|
||
|
@@ -16677,7 +16677,7 @@ Report bugs to the package provider."
|
||
|
_ACEOF
|
||
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||
|
ac_cs_version="\\
|
||
|
-bfd config.status 2.28
|
||
|
+bfd config.status 2.28.0
|
||
|
configured by $0, generated by GNU Autoconf 2.64,
|
||
|
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
|
||
|
|
||
|
diff --git a/bfd/development.sh b/bfd/development.sh
|
||
|
index b001a88..cd31410 100644
|
||
|
--- a/bfd/development.sh
|
||
|
+++ b/bfd/development.sh
|
||
|
@@ -16,4 +16,4 @@
|
||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
|
|
||
|
# Controls whether to enable development-mode features by default.
|
||
|
-development=false
|
||
|
+development=true
|
||
|
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
|
||
|
index 0f3eb68..10caa8a 100644
|
||
|
--- a/bfd/elf32-ppc.c
|
||
|
+++ b/bfd/elf32-ppc.c
|
||
|
@@ -4921,7 +4921,7 @@ ppc_elf_vle_split16 (bfd *input_bfd,
|
||
|
unsigned int insn, opcode, top5;
|
||
|
|
||
|
insn = bfd_get_32 (input_bfd, loc);
|
||
|
- opcode = insn & 0xf300f800;
|
||
|
+ opcode = insn & 0xfc00f800;
|
||
|
if (opcode == E_OR2I_INSN
|
||
|
|| opcode == E_AND2I_DOT_INSN
|
||
|
|| opcode == E_OR2IS_INSN
|
||
|
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
|
||
|
index e7d4792..3381647 100644
|
||
|
--- a/bfd/elf64-ppc.c
|
||
|
+++ b/bfd/elf64-ppc.c
|
||
|
@@ -14798,8 +14798,10 @@ ppc64_elf_relocate_section (bfd *output_bfd,
|
||
|
break;
|
||
|
|
||
|
if (bfd_link_pic (info)
|
||
|
- ? ((h != NULL && pc_dynrelocs (h))
|
||
|
- || must_be_dyn_reloc (info, r_type))
|
||
|
+ ? ((h == NULL
|
||
|
+ || h->dyn_relocs != NULL)
|
||
|
+ && ((h != NULL && pc_dynrelocs (h))
|
||
|
+ || must_be_dyn_reloc (info, r_type)))
|
||
|
: (h != NULL
|
||
|
? h->dyn_relocs != NULL
|
||
|
: ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC))
|
||
|
diff --git a/bfd/version.h b/bfd/version.h
|
||
|
index eda06e4..4d79b22 100644
|
||
|
--- a/bfd/version.h
|
||
|
+++ b/bfd/version.h
|
||
|
@@ -1,4 +1,4 @@
|
||
|
-#define BFD_VERSION_DATE 20170302
|
||
|
+#define BFD_VERSION_DATE 20170308
|
||
|
#define BFD_VERSION @bfd_version@
|
||
|
#define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
|
||
|
#define REPORT_BUGS_TO @report_bugs_to@
|
||
|
diff --git a/bfd/version.m4 b/bfd/version.m4
|
||
|
index 0cfca2d..8bde21e 100644
|
||
|
--- a/bfd/version.m4
|
||
|
+++ b/bfd/version.m4
|
||
|
@@ -1 +1 @@
|
||
|
-m4_define([BFD_VERSION], [2.28])
|
||
|
+m4_define([BFD_VERSION], [2.28.0])
|
||
|
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
|
||
|
index aa17468..f21867f 100644
|
||
|
--- a/binutils/ChangeLog
|
||
|
+++ b/binutils/ChangeLog
|
||
|
@@ -2,6 +2,10 @@
|
||
|
|
||
|
* configure: Regenerate.
|
||
|
|
||
|
+2017-03-02 Tristan Gingold <gingold@adacore.com>
|
||
|
+
|
||
|
+ * configure: Regenerate.
|
||
|
+
|
||
|
2017-01-18 Bernhard Rosenkranzer <bero@lindev.ch>
|
||
|
|
||
|
PR 21059
|
||
|
diff --git a/binutils/configure b/binutils/configure
|
||
|
index baddf34..82119ef 100755
|
||
|
--- a/binutils/configure
|
||
|
+++ b/binutils/configure
|
||
|
@@ -1,6 +1,6 @@
|
||
|
#! /bin/sh
|
||
|
# Guess values for system-dependent variables and create Makefiles.
|
||
|
-# Generated by GNU Autoconf 2.64 for binutils 2.28.
|
||
|
+# Generated by GNU Autoconf 2.64 for binutils 2.28.0.
|
||
|
#
|
||
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
|
||
|
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
|
||
|
@@ -556,8 +556,8 @@ MAKEFLAGS=
|
||
|
# Identity of this package.
|
||
|
PACKAGE_NAME='binutils'
|
||
|
PACKAGE_TARNAME='binutils'
|
||
|
-PACKAGE_VERSION='2.28'
|
||
|
-PACKAGE_STRING='binutils 2.28'
|
||
|
+PACKAGE_VERSION='2.28.0'
|
||
|
+PACKAGE_STRING='binutils 2.28.0'
|
||
|
PACKAGE_BUGREPORT=''
|
||
|
PACKAGE_URL=''
|
||
|
|
||
|
@@ -1338,7 +1338,7 @@ if test "$ac_init_help" = "long"; then
|
||
|
# Omit some internal or obsolete options to make the list less imposing.
|
||
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||
|
cat <<_ACEOF
|
||
|
-\`configure' configures binutils 2.28 to adapt to many kinds of systems.
|
||
|
+\`configure' configures binutils 2.28.0 to adapt to many kinds of systems.
|
||
|
|
||
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||
|
|
||
|
@@ -1409,7 +1409,7 @@ fi
|
||
|
|
||
|
if test -n "$ac_init_help"; then
|
||
|
case $ac_init_help in
|
||
|
- short | recursive ) echo "Configuration of binutils 2.28:";;
|
||
|
+ short | recursive ) echo "Configuration of binutils 2.28.0:";;
|
||
|
esac
|
||
|
cat <<\_ACEOF
|
||
|
|
||
|
@@ -1530,7 +1530,7 @@ fi
|
||
|
test -n "$ac_init_help" && exit $ac_status
|
||
|
if $ac_init_version; then
|
||
|
cat <<\_ACEOF
|
||
|
-binutils configure 2.28
|
||
|
+binutils configure 2.28.0
|
||
|
generated by GNU Autoconf 2.64
|
||
|
|
||
|
Copyright (C) 2009 Free Software Foundation, Inc.
|
||
|
@@ -2172,7 +2172,7 @@ cat >config.log <<_ACEOF
|
||
|
This file contains any messages produced by compilers while
|
||
|
running configure, to aid debugging if configure makes a mistake.
|
||
|
|
||
|
-It was created by binutils $as_me 2.28, which was
|
||
|
+It was created by binutils $as_me 2.28.0, which was
|
||
|
generated by GNU Autoconf 2.64. Invocation command line was
|
||
|
|
||
|
$ $0 $@
|
||
|
@@ -3981,7 +3981,7 @@ fi
|
||
|
|
||
|
# Define the identity of the package.
|
||
|
PACKAGE='binutils'
|
||
|
- VERSION='2.28'
|
||
|
+ VERSION='2.28.0'
|
||
|
|
||
|
|
||
|
cat >>confdefs.h <<_ACEOF
|
||
|
@@ -15223,7 +15223,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||
|
# values after options handling.
|
||
|
ac_log="
|
||
|
-This file was extended by binutils $as_me 2.28, which was
|
||
|
+This file was extended by binutils $as_me 2.28.0, which was
|
||
|
generated by GNU Autoconf 2.64. Invocation command line was
|
||
|
|
||
|
CONFIG_FILES = $CONFIG_FILES
|
||
|
@@ -15287,7 +15287,7 @@ Report bugs to the package provider."
|
||
|
_ACEOF
|
||
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||
|
ac_cs_version="\\
|
||
|
-binutils config.status 2.28
|
||
|
+binutils config.status 2.28.0
|
||
|
configured by $0, generated by GNU Autoconf 2.64,
|
||
|
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
|
||
|
|
||
|
diff --git a/gas/ChangeLog b/gas/ChangeLog
|
||
|
index 8a586ad..fa9ecbe 100644
|
||
|
--- a/gas/ChangeLog
|
||
|
+++ b/gas/ChangeLog
|
||
|
@@ -2,6 +2,10 @@
|
||
|
|
||
|
* configure: Regenerate.
|
||
|
|
||
|
+2017-03-02 Tristan Gingold <gingold@adacore.com>
|
||
|
+
|
||
|
+ * configure: Regenerate.
|
||
|
+
|
||
|
2017-02-28 Alan Modra <amodra@gmail.com>
|
||
|
|
||
|
* config/tc-nios2.h (TC_FORCE_RELOCATION_SUB_LOCAL): Define.
|
||
|
diff --git a/gas/configure b/gas/configure
|
||
|
index ce7091e..e574cb8 100755
|
||
|
--- a/gas/configure
|
||
|
+++ b/gas/configure
|
||
|
@@ -1,6 +1,6 @@
|
||
|
#! /bin/sh
|
||
|
# Guess values for system-dependent variables and create Makefiles.
|
||
|
-# Generated by GNU Autoconf 2.64 for gas 2.28.
|
||
|
+# Generated by GNU Autoconf 2.64 for gas 2.28.0.
|
||
|
#
|
||
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
|
||
|
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
|
||
|
@@ -556,8 +556,8 @@ MAKEFLAGS=
|
||
|
# Identity of this package.
|
||
|
PACKAGE_NAME='gas'
|
||
|
PACKAGE_TARNAME='gas'
|
||
|
-PACKAGE_VERSION='2.28'
|
||
|
-PACKAGE_STRING='gas 2.28'
|
||
|
+PACKAGE_VERSION='2.28.0'
|
||
|
+PACKAGE_STRING='gas 2.28.0'
|
||
|
PACKAGE_BUGREPORT=''
|
||
|
PACKAGE_URL=''
|
||
|
|
||
|
@@ -1330,7 +1330,7 @@ if test "$ac_init_help" = "long"; then
|
||
|
# Omit some internal or obsolete options to make the list less imposing.
|
||
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||
|
cat <<_ACEOF
|
||
|
-\`configure' configures gas 2.28 to adapt to many kinds of systems.
|
||
|
+\`configure' configures gas 2.28.0 to adapt to many kinds of systems.
|
||
|
|
||
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||
|
|
||
|
@@ -1401,7 +1401,7 @@ fi
|
||
|
|
||
|
if test -n "$ac_init_help"; then
|
||
|
case $ac_init_help in
|
||
|
- short | recursive ) echo "Configuration of gas 2.28:";;
|
||
|
+ short | recursive ) echo "Configuration of gas 2.28.0:";;
|
||
|
esac
|
||
|
cat <<\_ACEOF
|
||
|
|
||
|
@@ -1523,7 +1523,7 @@ fi
|
||
|
test -n "$ac_init_help" && exit $ac_status
|
||
|
if $ac_init_version; then
|
||
|
cat <<\_ACEOF
|
||
|
-gas configure 2.28
|
||
|
+gas configure 2.28.0
|
||
|
generated by GNU Autoconf 2.64
|
||
|
|
||
|
Copyright (C) 2009 Free Software Foundation, Inc.
|
||
|
@@ -1933,7 +1933,7 @@ cat >config.log <<_ACEOF
|
||
|
This file contains any messages produced by compilers while
|
||
|
running configure, to aid debugging if configure makes a mistake.
|
||
|
|
||
|
-It was created by gas $as_me 2.28, which was
|
||
|
+It was created by gas $as_me 2.28.0, which was
|
||
|
generated by GNU Autoconf 2.64. Invocation command line was
|
||
|
|
||
|
$ $0 $@
|
||
|
@@ -3742,7 +3742,7 @@ fi
|
||
|
|
||
|
# Define the identity of the package.
|
||
|
PACKAGE='gas'
|
||
|
- VERSION='2.28'
|
||
|
+ VERSION='2.28.0'
|
||
|
|
||
|
|
||
|
cat >>confdefs.h <<_ACEOF
|
||
|
@@ -15212,7 +15212,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||
|
# values after options handling.
|
||
|
ac_log="
|
||
|
-This file was extended by gas $as_me 2.28, which was
|
||
|
+This file was extended by gas $as_me 2.28.0, which was
|
||
|
generated by GNU Autoconf 2.64. Invocation command line was
|
||
|
|
||
|
CONFIG_FILES = $CONFIG_FILES
|
||
|
@@ -15276,7 +15276,7 @@ Report bugs to the package provider."
|
||
|
_ACEOF
|
||
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||
|
ac_cs_version="\\
|
||
|
-gas config.status 2.28
|
||
|
+gas config.status 2.28.0
|
||
|
configured by $0, generated by GNU Autoconf 2.64,
|
||
|
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
|
||
|
|
||
|
diff --git a/gprof/ChangeLog b/gprof/ChangeLog
|
||
|
index cc57e0d8..0c25d51 100644
|
||
|
--- a/gprof/ChangeLog
|
||
|
+++ b/gprof/ChangeLog
|
||
|
@@ -2,6 +2,10 @@
|
||
|
|
||
|
* configure: Regenerate.
|
||
|
|
||
|
+2017-03-02 Tristan Gingold <gingold@adacore.com>
|
||
|
+
|
||
|
+ * configure: Regenerate.
|
||
|
+
|
||
|
2017-01-02 Alan Modra <amodra@gmail.com>
|
||
|
|
||
|
Update year range in copyright notice of all files.
|
||
|
diff --git a/gprof/configure b/gprof/configure
|
||
|
index 43e0dac..9e6b8f3 100755
|
||
|
--- a/gprof/configure
|
||
|
+++ b/gprof/configure
|
||
|
@@ -1,6 +1,6 @@
|
||
|
#! /bin/sh
|
||
|
# Guess values for system-dependent variables and create Makefiles.
|
||
|
-# Generated by GNU Autoconf 2.64 for gprof 2.28.
|
||
|
+# Generated by GNU Autoconf 2.64 for gprof 2.28.0.
|
||
|
#
|
||
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
|
||
|
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
|
||
|
@@ -556,8 +556,8 @@ MAKEFLAGS=
|
||
|
# Identity of this package.
|
||
|
PACKAGE_NAME='gprof'
|
||
|
PACKAGE_TARNAME='gprof'
|
||
|
-PACKAGE_VERSION='2.28'
|
||
|
-PACKAGE_STRING='gprof 2.28'
|
||
|
+PACKAGE_VERSION='2.28.0'
|
||
|
+PACKAGE_STRING='gprof 2.28.0'
|
||
|
PACKAGE_BUGREPORT=''
|
||
|
PACKAGE_URL=''
|
||
|
|
||
|
@@ -1302,7 +1302,7 @@ if test "$ac_init_help" = "long"; then
|
||
|
# Omit some internal or obsolete options to make the list less imposing.
|
||
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||
|
cat <<_ACEOF
|
||
|
-\`configure' configures gprof 2.28 to adapt to many kinds of systems.
|
||
|
+\`configure' configures gprof 2.28.0 to adapt to many kinds of systems.
|
||
|
|
||
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||
|
|
||
|
@@ -1373,7 +1373,7 @@ fi
|
||
|
|
||
|
if test -n "$ac_init_help"; then
|
||
|
case $ac_init_help in
|
||
|
- short | recursive ) echo "Configuration of gprof 2.28:";;
|
||
|
+ short | recursive ) echo "Configuration of gprof 2.28.0:";;
|
||
|
esac
|
||
|
cat <<\_ACEOF
|
||
|
|
||
|
@@ -1479,7 +1479,7 @@ fi
|
||
|
test -n "$ac_init_help" && exit $ac_status
|
||
|
if $ac_init_version; then
|
||
|
cat <<\_ACEOF
|
||
|
-gprof configure 2.28
|
||
|
+gprof configure 2.28.0
|
||
|
generated by GNU Autoconf 2.64
|
||
|
|
||
|
Copyright (C) 2009 Free Software Foundation, Inc.
|
||
|
@@ -1844,7 +1844,7 @@ cat >config.log <<_ACEOF
|
||
|
This file contains any messages produced by compilers while
|
||
|
running configure, to aid debugging if configure makes a mistake.
|
||
|
|
||
|
-It was created by gprof $as_me 2.28, which was
|
||
|
+It was created by gprof $as_me 2.28.0, which was
|
||
|
generated by GNU Autoconf 2.64. Invocation command line was
|
||
|
|
||
|
$ $0 $@
|
||
|
@@ -3653,7 +3653,7 @@ fi
|
||
|
|
||
|
# Define the identity of the package.
|
||
|
PACKAGE='gprof'
|
||
|
- VERSION='2.28'
|
||
|
+ VERSION='2.28.0'
|
||
|
|
||
|
|
||
|
cat >>confdefs.h <<_ACEOF
|
||
|
@@ -12787,7 +12787,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||
|
# values after options handling.
|
||
|
ac_log="
|
||
|
-This file was extended by gprof $as_me 2.28, which was
|
||
|
+This file was extended by gprof $as_me 2.28.0, which was
|
||
|
generated by GNU Autoconf 2.64. Invocation command line was
|
||
|
|
||
|
CONFIG_FILES = $CONFIG_FILES
|
||
|
@@ -12851,7 +12851,7 @@ Report bugs to the package provider."
|
||
|
_ACEOF
|
||
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||
|
ac_cs_version="\\
|
||
|
-gprof config.status 2.28
|
||
|
+gprof config.status 2.28.0
|
||
|
configured by $0, generated by GNU Autoconf 2.64,
|
||
|
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
|
||
|
|
||
|
diff --git a/ld/ChangeLog b/ld/ChangeLog
|
||
|
index ba7d1d4..f4fda0c 100644
|
||
|
--- a/ld/ChangeLog
|
||
|
+++ b/ld/ChangeLog
|
||
|
@@ -1,3 +1,12 @@
|
||
|
+2017-03-07 Alan Modra <amodra@gmail.com>
|
||
|
+
|
||
|
+ * ldlang.c (open_input_bfds): Check that lang_assignment_statement
|
||
|
+ is not an assert before referencing defsym.
|
||
|
+
|
||
|
+2017-03-02 Tristan Gingold <gingold@adacore.com>
|
||
|
+
|
||
|
+ * configure: Regenerate.
|
||
|
+
|
||
|
2017-03-02 Tristan Gingold <gingold@adacore.com>
|
||
|
|
||
|
* configure: Regenerate.
|
||
|
diff --git a/ld/configure b/ld/configure
|
||
|
index 36af969..a16c6db 100755
|
||
|
--- a/ld/configure
|
||
|
+++ b/ld/configure
|
||
|
@@ -1,6 +1,6 @@
|
||
|
#! /bin/sh
|
||
|
# Guess values for system-dependent variables and create Makefiles.
|
||
|
-# Generated by GNU Autoconf 2.64 for ld 2.28.
|
||
|
+# Generated by GNU Autoconf 2.64 for ld 2.28.0.
|
||
|
#
|
||
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
|
||
|
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
|
||
|
@@ -556,8 +556,8 @@ MAKEFLAGS=
|
||
|
# Identity of this package.
|
||
|
PACKAGE_NAME='ld'
|
||
|
PACKAGE_TARNAME='ld'
|
||
|
-PACKAGE_VERSION='2.28'
|
||
|
-PACKAGE_STRING='ld 2.28'
|
||
|
+PACKAGE_VERSION='2.28.0'
|
||
|
+PACKAGE_STRING='ld 2.28.0'
|
||
|
PACKAGE_BUGREPORT=''
|
||
|
PACKAGE_URL=''
|
||
|
|
||
|
@@ -1354,7 +1354,7 @@ if test "$ac_init_help" = "long"; then
|
||
|
# Omit some internal or obsolete options to make the list less imposing.
|
||
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||
|
cat <<_ACEOF
|
||
|
-\`configure' configures ld 2.28 to adapt to many kinds of systems.
|
||
|
+\`configure' configures ld 2.28.0 to adapt to many kinds of systems.
|
||
|
|
||
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||
|
|
||
|
@@ -1425,7 +1425,7 @@ fi
|
||
|
|
||
|
if test -n "$ac_init_help"; then
|
||
|
case $ac_init_help in
|
||
|
- short | recursive ) echo "Configuration of ld 2.28:";;
|
||
|
+ short | recursive ) echo "Configuration of ld 2.28.0:";;
|
||
|
esac
|
||
|
cat <<\_ACEOF
|
||
|
|
||
|
@@ -1550,7 +1550,7 @@ fi
|
||
|
test -n "$ac_init_help" && exit $ac_status
|
||
|
if $ac_init_version; then
|
||
|
cat <<\_ACEOF
|
||
|
-ld configure 2.28
|
||
|
+ld configure 2.28.0
|
||
|
generated by GNU Autoconf 2.64
|
||
|
|
||
|
Copyright (C) 2009 Free Software Foundation, Inc.
|
||
|
@@ -2259,7 +2259,7 @@ cat >config.log <<_ACEOF
|
||
|
This file contains any messages produced by compilers while
|
||
|
running configure, to aid debugging if configure makes a mistake.
|
||
|
|
||
|
-It was created by ld $as_me 2.28, which was
|
||
|
+It was created by ld $as_me 2.28.0, which was
|
||
|
generated by GNU Autoconf 2.64. Invocation command line was
|
||
|
|
||
|
$ $0 $@
|
||
|
@@ -4069,7 +4069,7 @@ fi
|
||
|
|
||
|
# Define the identity of the package.
|
||
|
PACKAGE='ld'
|
||
|
- VERSION='2.28'
|
||
|
+ VERSION='2.28.0'
|
||
|
|
||
|
|
||
|
cat >>confdefs.h <<_ACEOF
|
||
|
@@ -17813,7 +17813,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||
|
# values after options handling.
|
||
|
ac_log="
|
||
|
-This file was extended by ld $as_me 2.28, which was
|
||
|
+This file was extended by ld $as_me 2.28.0, which was
|
||
|
generated by GNU Autoconf 2.64. Invocation command line was
|
||
|
|
||
|
CONFIG_FILES = $CONFIG_FILES
|
||
|
@@ -17877,7 +17877,7 @@ Report bugs to the package provider."
|
||
|
_ACEOF
|
||
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||
|
ac_cs_version="\\
|
||
|
-ld config.status 2.28
|
||
|
+ld config.status 2.28.0
|
||
|
configured by $0, generated by GNU Autoconf 2.64,
|
||
|
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
|
||
|
|
||
|
diff --git a/ld/ldlang.c b/ld/ldlang.c
|
||
|
index dafc348..54f160c 100644
|
||
|
--- a/ld/ldlang.c
|
||
|
+++ b/ld/ldlang.c
|
||
|
@@ -3377,7 +3377,8 @@ open_input_bfds (lang_statement_union_type *s, enum open_bfd_mode mode)
|
||
|
#endif
|
||
|
break;
|
||
|
case lang_assignment_statement_enum:
|
||
|
- if (s->assignment_statement.exp->assign.defsym)
|
||
|
+ if (s->assignment_statement.exp->type.node_class != etree_assert
|
||
|
+ && s->assignment_statement.exp->assign.defsym)
|
||
|
/* This is from a --defsym on the command line. */
|
||
|
exp_fold_tree_no_dot (s->assignment_statement.exp);
|
||
|
break;
|
||
|
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
|
||
|
index 7f01e54..3a19442 100644
|
||
|
--- a/opcodes/ChangeLog
|
||
|
+++ b/opcodes/ChangeLog
|
||
|
@@ -1,3 +1,19 @@
|
||
|
+2017-03-07 Alan Modra <amodra@gmail.com>
|
||
|
+
|
||
|
+ Apply from master
|
||
|
+ 2017-03-06 Alan Modra <amodra@gmail.com>
|
||
|
+ PR 21124
|
||
|
+ * ppc-opc.c (extract_esync, extract_ls, extract_ral, extract_ram)
|
||
|
+ (extract_raq, extract_ras, extract_rbx): New functions.
|
||
|
+ (powerpc_operands): Use opposite corresponding insert function.
|
||
|
+ (Q_MASK): Define.
|
||
|
+ (powerpc_opcodes): Apply Q_MASK to all quad insns with even
|
||
|
+ register restriction.
|
||
|
+
|
||
|
+2017-03-02 Tristan Gingold <gingold@adacore.com>
|
||
|
+
|
||
|
+ * configure: Regenerate.
|
||
|
+
|
||
|
2017-03-02 Tristan Gingold <gingold@adacore.com>
|
||
|
|
||
|
* configure: Regenerate.
|
||
|
diff --git a/opcodes/configure b/opcodes/configure
|
||
|
index be87eb2..0b352a4 100755
|
||
|
--- a/opcodes/configure
|
||
|
+++ b/opcodes/configure
|
||
|
@@ -1,6 +1,6 @@
|
||
|
#! /bin/sh
|
||
|
# Guess values for system-dependent variables and create Makefiles.
|
||
|
-# Generated by GNU Autoconf 2.64 for opcodes 2.28.
|
||
|
+# Generated by GNU Autoconf 2.64 for opcodes 2.28.0.
|
||
|
#
|
||
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
|
||
|
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
|
||
|
@@ -556,8 +556,8 @@ MAKEFLAGS=
|
||
|
# Identity of this package.
|
||
|
PACKAGE_NAME='opcodes'
|
||
|
PACKAGE_TARNAME='opcodes'
|
||
|
-PACKAGE_VERSION='2.28'
|
||
|
-PACKAGE_STRING='opcodes 2.28'
|
||
|
+PACKAGE_VERSION='2.28.0'
|
||
|
+PACKAGE_STRING='opcodes 2.28.0'
|
||
|
PACKAGE_BUGREPORT=''
|
||
|
PACKAGE_URL=''
|
||
|
|
||
|
@@ -1322,7 +1322,7 @@ if test "$ac_init_help" = "long"; then
|
||
|
# Omit some internal or obsolete options to make the list less imposing.
|
||
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||
|
cat <<_ACEOF
|
||
|
-\`configure' configures opcodes 2.28 to adapt to many kinds of systems.
|
||
|
+\`configure' configures opcodes 2.28.0 to adapt to many kinds of systems.
|
||
|
|
||
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||
|
|
||
|
@@ -1393,7 +1393,7 @@ fi
|
||
|
|
||
|
if test -n "$ac_init_help"; then
|
||
|
case $ac_init_help in
|
||
|
- short | recursive ) echo "Configuration of opcodes 2.28:";;
|
||
|
+ short | recursive ) echo "Configuration of opcodes 2.28.0:";;
|
||
|
esac
|
||
|
cat <<\_ACEOF
|
||
|
|
||
|
@@ -1500,7 +1500,7 @@ fi
|
||
|
test -n "$ac_init_help" && exit $ac_status
|
||
|
if $ac_init_version; then
|
||
|
cat <<\_ACEOF
|
||
|
-opcodes configure 2.28
|
||
|
+opcodes configure 2.28.0
|
||
|
generated by GNU Autoconf 2.64
|
||
|
|
||
|
Copyright (C) 2009 Free Software Foundation, Inc.
|
||
|
@@ -1910,7 +1910,7 @@ cat >config.log <<_ACEOF
|
||
|
This file contains any messages produced by compilers while
|
||
|
running configure, to aid debugging if configure makes a mistake.
|
||
|
|
||
|
-It was created by opcodes $as_me 2.28, which was
|
||
|
+It was created by opcodes $as_me 2.28.0, which was
|
||
|
generated by GNU Autoconf 2.64. Invocation command line was
|
||
|
|
||
|
$ $0 $@
|
||
|
@@ -3719,7 +3719,7 @@ fi
|
||
|
|
||
|
# Define the identity of the package.
|
||
|
PACKAGE='opcodes'
|
||
|
- VERSION='2.28'
|
||
|
+ VERSION='2.28.0'
|
||
|
|
||
|
|
||
|
cat >>confdefs.h <<_ACEOF
|
||
|
@@ -13305,7 +13305,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||
|
# values after options handling.
|
||
|
ac_log="
|
||
|
-This file was extended by opcodes $as_me 2.28, which was
|
||
|
+This file was extended by opcodes $as_me 2.28.0, which was
|
||
|
generated by GNU Autoconf 2.64. Invocation command line was
|
||
|
|
||
|
CONFIG_FILES = $CONFIG_FILES
|
||
|
@@ -13369,7 +13369,7 @@ Report bugs to the package provider."
|
||
|
_ACEOF
|
||
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||
|
ac_cs_version="\\
|
||
|
-opcodes config.status 2.28
|
||
|
+opcodes config.status 2.28.0
|
||
|
configured by $0, generated by GNU Autoconf 2.64,
|
||
|
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
|
||
|
|
||
|
diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
|
||
|
index 9ac779c..30fd789 100644
|
||
|
--- a/opcodes/ppc-opc.c
|
||
|
+++ b/opcodes/ppc-opc.c
|
||
|
@@ -54,6 +54,7 @@ static long extract_bo (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_boe (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
static long extract_boe (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_esync (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
+static long extract_esync (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_dcmxs (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
static long extract_dcmxs (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_dxd (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
@@ -65,6 +66,7 @@ static long extract_fxm (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_li20 (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
static long extract_li20 (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_ls (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
+static long extract_ls (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_mbe (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
static long extract_mbe (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_mb6 (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
@@ -76,12 +78,17 @@ static long extract_nsi (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_oimm (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
static long extract_oimm (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_ral (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
+static long extract_ral (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_ram (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
+static long extract_ram (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_raq (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
+static long extract_raq (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_ras (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
+static long extract_ras (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_rbs (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
static long extract_rbs (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_rbx (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
+static long extract_rbx (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_rx (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
static long extract_rx (unsigned long, ppc_cpu_t, int *);
|
||
|
static unsigned long insert_ry (unsigned long, long, ppc_cpu_t, const char **);
|
||
|
@@ -462,7 +469,7 @@ const struct powerpc_operand powerpc_operands[] =
|
||
|
/* The LS or WC field in an X (sync or wait) form instruction. */
|
||
|
#define LS LIA + 1
|
||
|
#define WC LS
|
||
|
- { 0x3, 21, insert_ls, NULL, PPC_OPERAND_OPTIONAL },
|
||
|
+ { 0x3, 21, insert_ls, extract_ls, PPC_OPERAND_OPTIONAL },
|
||
|
|
||
|
/* The ME field in an M form instruction. */
|
||
|
#define ME LS + 1
|
||
|
@@ -519,24 +526,24 @@ const struct powerpc_operand powerpc_operands[] =
|
||
|
value restrictions. */
|
||
|
#define RAQ RA0 + 1
|
||
|
#define RAX RAQ
|
||
|
- { 0x1f, 16, insert_raq, NULL, PPC_OPERAND_GPR_0 },
|
||
|
+ { 0x1f, 16, insert_raq, extract_raq, PPC_OPERAND_GPR_0 },
|
||
|
|
||
|
/* The RA field in a D or X form instruction which is an updating
|
||
|
load, which means that the RA field may not be zero and may not
|
||
|
equal the RT field. */
|
||
|
#define RAL RAQ + 1
|
||
|
- { 0x1f, 16, insert_ral, NULL, PPC_OPERAND_GPR_0 },
|
||
|
+ { 0x1f, 16, insert_ral, extract_ral, PPC_OPERAND_GPR_0 },
|
||
|
|
||
|
/* The RA field in an lmw instruction, which has special value
|
||
|
restrictions. */
|
||
|
#define RAM RAL + 1
|
||
|
- { 0x1f, 16, insert_ram, NULL, PPC_OPERAND_GPR_0 },
|
||
|
+ { 0x1f, 16, insert_ram, extract_ram, PPC_OPERAND_GPR_0 },
|
||
|
|
||
|
/* The RA field in a D or X form instruction which is an updating
|
||
|
store or an updating floating point load, which means that the RA
|
||
|
field may not be zero. */
|
||
|
#define RAS RAM + 1
|
||
|
- { 0x1f, 16, insert_ras, NULL, PPC_OPERAND_GPR_0 },
|
||
|
+ { 0x1f, 16, insert_ras, extract_ras, PPC_OPERAND_GPR_0 },
|
||
|
|
||
|
/* The RA field of the tlbwe, dccci and iccci instructions,
|
||
|
which are optional. */
|
||
|
@@ -557,7 +564,7 @@ const struct powerpc_operand powerpc_operands[] =
|
||
|
/* The RB field in an lswx instruction, which has special value
|
||
|
restrictions. */
|
||
|
#define RBX RBS + 1
|
||
|
- { 0x1f, 11, insert_rbx, NULL, PPC_OPERAND_GPR },
|
||
|
+ { 0x1f, 11, insert_rbx, extract_rbx, PPC_OPERAND_GPR },
|
||
|
|
||
|
/* The RB field of the dccci and iccci instructions, which are optional. */
|
||
|
#define RBOPT RBX + 1
|
||
|
@@ -580,6 +587,7 @@ const struct powerpc_operand powerpc_operands[] =
|
||
|
which have special value restrictions. */
|
||
|
#define RSQ RS + 1
|
||
|
#define RTQ RSQ
|
||
|
+#define Q_MASK (1 << 21)
|
||
|
{ 0x1e, 21, NULL, NULL, PPC_OPERAND_GPR },
|
||
|
|
||
|
/* The RS field of the tlbwe instruction, which is optional. */
|
||
|
@@ -694,7 +702,7 @@ const struct powerpc_operand powerpc_operands[] =
|
||
|
|
||
|
/* The ESYNC field in an X (sync) form instruction. */
|
||
|
#define ESYNC STRM + 1
|
||
|
- { 0xf, 16, insert_esync, NULL, PPC_OPERAND_OPTIONAL },
|
||
|
+ { 0xf, 16, insert_esync, extract_esync, PPC_OPERAND_OPTIONAL },
|
||
|
|
||
|
/* The SV field in a POWER SC form instruction. */
|
||
|
#define SV ESYNC + 1
|
||
|
@@ -1533,6 +1541,22 @@ insert_ls (unsigned long insn,
|
||
|
return insn | ((value & 0x3) << 21);
|
||
|
}
|
||
|
|
||
|
+static long
|
||
|
+extract_ls (unsigned long insn,
|
||
|
+ ppc_cpu_t dialect,
|
||
|
+ int *invalid)
|
||
|
+{
|
||
|
+ unsigned long lvalue = (insn >> 21) & 3;
|
||
|
+
|
||
|
+ if (((insn >> 1) & 0x3ff) == 598)
|
||
|
+ {
|
||
|
+ unsigned long max_lvalue = (dialect & PPC_OPCODE_POWER4) ? 2 : 1;
|
||
|
+ if (lvalue > max_lvalue)
|
||
|
+ *invalid = 1;
|
||
|
+ }
|
||
|
+ return lvalue;
|
||
|
+}
|
||
|
+
|
||
|
/* The 4-bit E field in a sync instruction that accepts 2 operands.
|
||
|
If ESYNC is non-zero, then the L field must be either 0 or 1 and
|
||
|
the complement of ESYNC-bit2. */
|
||
|
@@ -1560,6 +1584,27 @@ insert_esync (unsigned long insn,
|
||
|
return insn | ((value & 0xf) << 16);
|
||
|
}
|
||
|
|
||
|
+static long
|
||
|
+extract_esync (unsigned long insn,
|
||
|
+ ppc_cpu_t dialect,
|
||
|
+ int *invalid)
|
||
|
+{
|
||
|
+ unsigned long ls = (insn >> 21) & 0x3;
|
||
|
+ unsigned long lvalue = (insn >> 16) & 0xf;
|
||
|
+
|
||
|
+ if (lvalue == 0)
|
||
|
+ {
|
||
|
+ if (((dialect & PPC_OPCODE_E6500) != 0 && ls > 1)
|
||
|
+ || ((dialect & PPC_OPCODE_POWER9) != 0 && ls > 2))
|
||
|
+ *invalid = 1;
|
||
|
+ }
|
||
|
+ else if ((ls & ~0x1)
|
||
|
+ || (((lvalue >> 1) & 0x1) ^ ls) == 0)
|
||
|
+ *invalid = 1;
|
||
|
+
|
||
|
+ return lvalue;
|
||
|
+}
|
||
|
+
|
||
|
/* The MB and ME fields in an M form instruction expressed as a single
|
||
|
operand which is itself a bitmask. The extraction function always
|
||
|
marks it as invalid, since we never want to recognize an
|
||
|
@@ -1743,6 +1788,19 @@ insert_ral (unsigned long insn,
|
||
|
return insn | ((value & 0x1f) << 16);
|
||
|
}
|
||
|
|
||
|
+static long
|
||
|
+extract_ral (unsigned long insn,
|
||
|
+ ppc_cpu_t dialect ATTRIBUTE_UNUSED,
|
||
|
+ int *invalid)
|
||
|
+{
|
||
|
+ long rtvalue = (insn >> 21) & 0x1f;
|
||
|
+ long ravalue = (insn >> 16) & 0x1f;
|
||
|
+
|
||
|
+ if (rtvalue == ravalue || ravalue == 0)
|
||
|
+ *invalid = 1;
|
||
|
+ return ravalue;
|
||
|
+}
|
||
|
+
|
||
|
/* The RA field in an lmw instruction, which has special value
|
||
|
restrictions. */
|
||
|
|
||
|
@@ -1757,6 +1815,19 @@ insert_ram (unsigned long insn,
|
||
|
return insn | ((value & 0x1f) << 16);
|
||
|
}
|
||
|
|
||
|
+static long
|
||
|
+extract_ram (unsigned long insn,
|
||
|
+ ppc_cpu_t dialect ATTRIBUTE_UNUSED,
|
||
|
+ int *invalid)
|
||
|
+{
|
||
|
+ unsigned long rtvalue = (insn >> 21) & 0x1f;
|
||
|
+ unsigned long ravalue = (insn >> 16) & 0x1f;
|
||
|
+
|
||
|
+ if (ravalue >= rtvalue)
|
||
|
+ *invalid = 1;
|
||
|
+ return ravalue;
|
||
|
+}
|
||
|
+
|
||
|
/* The RA field in the DQ form lq or an lswx instruction, which have special
|
||
|
value restrictions. */
|
||
|
|
||
|
@@ -1773,6 +1844,19 @@ insert_raq (unsigned long insn,
|
||
|
return insn | ((value & 0x1f) << 16);
|
||
|
}
|
||
|
|
||
|
+static long
|
||
|
+extract_raq (unsigned long insn,
|
||
|
+ ppc_cpu_t dialect ATTRIBUTE_UNUSED,
|
||
|
+ int *invalid)
|
||
|
+{
|
||
|
+ unsigned long rtvalue = (insn >> 21) & 0x1f;
|
||
|
+ unsigned long ravalue = (insn >> 16) & 0x1f;
|
||
|
+
|
||
|
+ if (ravalue == rtvalue)
|
||
|
+ *invalid = 1;
|
||
|
+ return ravalue;
|
||
|
+}
|
||
|
+
|
||
|
/* The RA field in a D or X form instruction which is an updating
|
||
|
store or an updating floating point load, which means that the RA
|
||
|
field may not be zero. */
|
||
|
@@ -1788,6 +1872,18 @@ insert_ras (unsigned long insn,
|
||
|
return insn | ((value & 0x1f) << 16);
|
||
|
}
|
||
|
|
||
|
+static long
|
||
|
+extract_ras (unsigned long insn,
|
||
|
+ ppc_cpu_t dialect ATTRIBUTE_UNUSED,
|
||
|
+ int *invalid)
|
||
|
+{
|
||
|
+ unsigned long ravalue = (insn >> 16) & 0x1f;
|
||
|
+
|
||
|
+ if (ravalue == 0)
|
||
|
+ *invalid = 1;
|
||
|
+ return ravalue;
|
||
|
+}
|
||
|
+
|
||
|
/* The RB field in an X form instruction when it must be the same as
|
||
|
the RS field in the instruction. This is used for extended
|
||
|
mnemonics like mr. This operand is marked FAKE. The insertion
|
||
|
@@ -1829,6 +1925,19 @@ insert_rbx (unsigned long insn,
|
||
|
return insn | ((value & 0x1f) << 11);
|
||
|
}
|
||
|
|
||
|
+static long
|
||
|
+extract_rbx (unsigned long insn,
|
||
|
+ ppc_cpu_t dialect ATTRIBUTE_UNUSED,
|
||
|
+ int *invalid)
|
||
|
+{
|
||
|
+ unsigned long rtvalue = (insn >> 21) & 0x1f;
|
||
|
+ unsigned long rbvalue = (insn >> 11) & 0x1f;
|
||
|
+
|
||
|
+ if (rbvalue == rtvalue)
|
||
|
+ *invalid = 1;
|
||
|
+ return rbvalue;
|
||
|
+}
|
||
|
+
|
||
|
/* The SCI8 field is made up of SCL and {U,N}I8 fields. */
|
||
|
static unsigned long
|
||
|
insert_sci8 (unsigned long insn,
|
||
|
@@ -4974,7 +5083,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||
|
|
||
|
{"stdux", X(31,181), X_MASK, PPC64, 0, {RS, RAS, RB}},
|
||
|
|
||
|
-{"stqcx.", XRC(31,182,1), X_MASK, POWER8, 0, {RSQ, RA0, RB}},
|
||
|
+{"stqcx.", XRC(31,182,1), X_MASK|Q_MASK, POWER8, 0, {RSQ, RA0, RB}},
|
||
|
{"wchkall", X(31,182), X_MASK, PPCA2, 0, {OBF}},
|
||
|
|
||
|
{"stwux", X(31,183), X_MASK, PPCCOM, 0, {RS, RAS, RB}},
|
||
|
@@ -5105,7 +5214,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||
|
|
||
|
{"mfapidi", X(31,275), X_MASK, BOOKE, E500|TITAN, {RT, RA}},
|
||
|
|
||
|
-{"lqarx", X(31,276), XEH_MASK, POWER8, 0, {RTQ, RAX, RBX, EH}},
|
||
|
+{"lqarx", X(31,276), XEH_MASK|Q_MASK, POWER8, 0, {RTQ, RAX, RBX, EH}},
|
||
|
|
||
|
{"lscbx", XRC(31,277,0), X_MASK, M601, 0, {RT, RA, RB}},
|
||
|
{"lscbx.", XRC(31,277,1), X_MASK, M601, 0, {RT, RA, RB}},
|
||
|
@@ -6052,7 +6161,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||
|
|
||
|
{"lhbrx", X(31,790), X_MASK, COM, 0, {RT, RA0, RB}},
|
||
|
|
||
|
-{"lfdpx", X(31,791), X_MASK, POWER6, POWER7, {FRTp, RA0, RB}},
|
||
|
+{"lfdpx", X(31,791), X_MASK|Q_MASK, POWER6, POWER7, {FRTp, RA0, RB}},
|
||
|
{"lfqx", X(31,791), X_MASK, POWER2, 0, {FRT, RA, RB}},
|
||
|
|
||
|
{"sraw", XRC(31,792,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
|
||
|
@@ -6167,7 +6276,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||
|
|
||
|
{"sthbrx", X(31,918), X_MASK, COM, 0, {RS, RA0, RB}},
|
||
|
|
||
|
-{"stfdpx", X(31,919), X_MASK, POWER6, POWER7, {FRSp, RA0, RB}},
|
||
|
+{"stfdpx", X(31,919), X_MASK|Q_MASK, POWER6, POWER7, {FRSp, RA0, RB}},
|
||
|
{"stfqx", X(31,919), X_MASK, POWER2, 0, {FRS, RA0, RB}},
|
||
|
|
||
|
{"sraq", XRC(31,920,0), X_MASK, M601, 0, {RA, RS, RB}},
|
||
|
@@ -6345,13 +6454,13 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||
|
|
||
|
{"stfdu", OP(55), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}},
|
||
|
|
||
|
-{"lq", OP(56), OP_MASK, POWER4, PPC476|PPCVLE, {RTQ, DQ, RAQ}},
|
||
|
+{"lq", OP(56), OP_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RTQ, DQ, RAQ}},
|
||
|
{"psq_l", OP(56), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
|
||
|
{"lfq", OP(56), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
|
||
|
|
||
|
{"lxsd", DSO(57,2), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
|
||
|
{"lxssp", DSO(57,3), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
|
||
|
-{"lfdp", OP(57), OP_MASK, POWER6, POWER7|PPCVLE, {FRTp, DS, RA0}},
|
||
|
+{"lfdp", OP(57), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRTp, DS, RA0}},
|
||
|
{"psq_lu", OP(57), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
|
||
|
{"lfqu", OP(57), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
|
||
|
|
||
|
@@ -6676,21 +6785,21 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||
|
{"stxv", DQX(61,5), DQX_MASK, PPCVSX3, PPCVLE, {XSQ6, DQ, RA0}},
|
||
|
{"stxsd", DSO(61,2), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
|
||
|
{"stxssp", DSO(61,3), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
|
||
|
-{"stfdp", OP(61), OP_MASK, POWER6, POWER7|PPCVLE, {FRSp, DS, RA0}},
|
||
|
+{"stfdp", OP(61), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRSp, DS, RA0}},
|
||
|
{"psq_stu", OP(61), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}},
|
||
|
{"stfqu", OP(61), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}},
|
||
|
|
||
|
{"std", DSO(62,0), DS_MASK, PPC64, PPCVLE, {RS, DS, RA0}},
|
||
|
{"stdu", DSO(62,1), DS_MASK, PPC64, PPCVLE, {RS, DS, RAS}},
|
||
|
-{"stq", DSO(62,2), DS_MASK, POWER4, PPC476|PPCVLE, {RSQ, DS, RA0}},
|
||
|
+{"stq", DSO(62,2), DS_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RSQ, DS, RA0}},
|
||
|
|
||
|
{"fcmpu", X(63,0), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
|
||
|
|
||
|
-{"daddq", XRC(63,2,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
-{"daddq.", XRC(63,2,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
+{"daddq", XRC(63,2,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
+{"daddq.", XRC(63,2,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
|
||
|
-{"dquaq", ZRC(63,3,0), Z2_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
|
||
|
-{"dquaq.", ZRC(63,3,1), Z2_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
|
||
|
+{"dquaq", ZRC(63,3,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
|
||
|
+{"dquaq.", ZRC(63,3,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
|
||
|
|
||
|
{"xsaddqp", XRC(63,4,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
|
||
|
{"xsaddqpo", XRC(63,4,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
|
||
|
@@ -6772,11 +6881,11 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||
|
|
||
|
{"fcmpo", X(63,32), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
|
||
|
|
||
|
-{"dmulq", XRC(63,34,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
-{"dmulq.", XRC(63,34,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
+{"dmulq", XRC(63,34,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
+{"dmulq.", XRC(63,34,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
|
||
|
-{"drrndq", ZRC(63,35,0), Z2_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
|
||
|
-{"drrndq.", ZRC(63,35,1), Z2_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
|
||
|
+{"drrndq", ZRC(63,35,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
|
||
|
+{"drrndq.", ZRC(63,35,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
|
||
|
|
||
|
{"xsmulqp", XRC(63,36,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
|
||
|
{"xsmulqpo", XRC(63,36,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
|
||
|
@@ -6791,11 +6900,11 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||
|
|
||
|
{"mcrfs", X(63,64), XRB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}},
|
||
|
|
||
|
-{"dscliq", ZRC(63,66,0), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
|
||
|
-{"dscliq.", ZRC(63,66,1), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
|
||
|
+{"dscliq", ZRC(63,66,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
|
||
|
+{"dscliq.", ZRC(63,66,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
|
||
|
|
||
|
-{"dquaiq", ZRC(63,67,0), Z2_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
|
||
|
-{"dquaiq.", ZRC(63,67,1), Z2_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
|
||
|
+{"dquaiq", ZRC(63,67,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
|
||
|
+{"dquaiq.", ZRC(63,67,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
|
||
|
|
||
|
{"mtfsb0", XRC(63,70,0), XRARB_MASK, COM, PPCVLE, {BT}},
|
||
|
{"mtfsb0.", XRC(63,70,1), XRARB_MASK, COM, PPCVLE, {BT}},
|
||
|
@@ -6803,11 +6912,11 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||
|
{"fmr", XRC(63,72,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
|
||
|
{"fmr.", XRC(63,72,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
|
||
|
|
||
|
-{"dscriq", ZRC(63,98,0), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
|
||
|
-{"dscriq.", ZRC(63,98,1), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
|
||
|
+{"dscriq", ZRC(63,98,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
|
||
|
+{"dscriq.", ZRC(63,98,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
|
||
|
|
||
|
-{"drintxq", ZRC(63,99,0), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
|
||
|
-{"drintxq.", ZRC(63,99,1), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
|
||
|
+{"drintxq", ZRC(63,99,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
|
||
|
+{"drintxq.", ZRC(63,99,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
|
||
|
|
||
|
{"xscpsgnqp", X(63,100), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
|
||
|
|
||
|
@@ -6839,11 +6948,11 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||
|
{"dtstdcq", Z(63,194), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DCM}},
|
||
|
{"dtstdgq", Z(63,226), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DGM}},
|
||
|
|
||
|
-{"drintnq", ZRC(63,227,0), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
|
||
|
-{"drintnq.", ZRC(63,227,1), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
|
||
|
+{"drintnq", ZRC(63,227,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
|
||
|
+{"drintnq.", ZRC(63,227,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
|
||
|
|
||
|
-{"dctqpq", XRC(63,258,0), X_MASK, POWER6, PPCVLE, {FRTp, FRB}},
|
||
|
-{"dctqpq.", XRC(63,258,1), X_MASK, POWER6, PPCVLE, {FRTp, FRB}},
|
||
|
+{"dctqpq", XRC(63,258,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
|
||
|
+{"dctqpq.", XRC(63,258,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
|
||
|
|
||
|
{"fabs", XRC(63,264,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
|
||
|
{"fabs.", XRC(63,264,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
|
||
|
@@ -6851,8 +6960,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||
|
{"dctfixq", XRC(63,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
|
||
|
{"dctfixq.", XRC(63,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
|
||
|
|
||
|
-{"ddedpdq", XRC(63,322,0), X_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
|
||
|
-{"ddedpdq.", XRC(63,322,1), X_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
|
||
|
+{"ddedpdq", XRC(63,322,0), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
|
||
|
+{"ddedpdq.", XRC(63,322,1), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
|
||
|
|
||
|
{"dxexq", XRC(63,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
|
||
|
{"dxexq.", XRC(63,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
|
||
|
@@ -6881,14 +6990,14 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||
|
{"frim", XRC(63,488,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
|
||
|
{"frim.", XRC(63,488,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
|
||
|
|
||
|
-{"dsubq", XRC(63,514,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
-{"dsubq.", XRC(63,514,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
+{"dsubq", XRC(63,514,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
+{"dsubq.", XRC(63,514,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
|
||
|
{"xssubqp", XRC(63,516,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
|
||
|
{"xssubqpo", XRC(63,516,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
|
||
|
|
||
|
-{"ddivq", XRC(63,546,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
-{"ddivq.", XRC(63,546,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
+{"ddivq", XRC(63,546,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
+{"ddivq.", XRC(63,546,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
|
||
|
|
||
|
{"xsdivqp", XRC(63,548,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
|
||
|
{"xsdivqpo", XRC(63,548,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
|
||
|
@@ -6917,11 +7026,11 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||
|
{"mtfsf.", XFL(63,711,1), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}},
|
||
|
{"mtfsf.", XFL(63,711,1), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
|
||
|
|
||
|
-{"drdpq", XRC(63,770,0), X_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
|
||
|
-{"drdpq.", XRC(63,770,1), X_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
|
||
|
+{"drdpq", XRC(63,770,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
|
||
|
+{"drdpq.", XRC(63,770,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
|
||
|
|
||
|
-{"dcffixq", XRC(63,802,0), X_MASK, POWER6, PPCVLE, {FRTp, FRB}},
|
||
|
-{"dcffixq.", XRC(63,802,1), X_MASK, POWER6, PPCVLE, {FRTp, FRB}},
|
||
|
+{"dcffixq", XRC(63,802,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
|
||
|
+{"dcffixq.", XRC(63,802,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}},
|
||
|
|
||
|
{"xsabsqp", XVA(63,804,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
|
||
|
{"xsxexpqp", XVA(63,804,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
|
||
|
@@ -6941,8 +7050,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||
|
{"fctidz.", XRC(63,815,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
|
||
|
{"fctidz.", XRC(63,815,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
|
||
|
|
||
|
-{"denbcdq", XRC(63,834,0), X_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
|
||
|
-{"denbcdq.", XRC(63,834,1), X_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
|
||
|
+{"denbcdq", XRC(63,834,0), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
|
||
|
+{"denbcdq.", XRC(63,834,1), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
|
||
|
|
||
|
{"xscvqpuwz", XVA(63,836,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
|
||
|
{"xscvudqp", XVA(63,836,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
|
||
|
@@ -6961,8 +7070,8 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
||
|
{"fcfid.", XRC(63,846,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
|
||
|
{"fcfid.", XRC(63,846,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
|
||
|
|
||
|
-{"diexq", XRC(63,866,0), X_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
|
||
|
-{"diexq.", XRC(63,866,1), X_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
|
||
|
+{"diexq", XRC(63,866,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
|
||
|
+{"diexq.", XRC(63,866,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
|
||
|
|
||
|
{"xsiexpqp", X(63,868), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
|
||
|
|