+2021-09-20 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * testsuite/binutils-all/riscv/riscv.exp: New file.
+ * testsuite/binutils-all/riscv/unknown.d: New file.
+ * testsuite/binutils-all/riscv/unknown.s: New file.
+
2021-09-07 Luis Machado <luis.machado@linaro.org>
Revert: [AArch64] MTE corefile support
--- /dev/null
+# Copyright (C) 2021 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+
+if ![istarget "riscv*-*-*"] then {
+ return
+}
+
+set tempfile tmpdir/riscvtemp.o
+set copyfile tmpdir/riscvcopy
+
+set test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]]
+foreach t $test_list {
+ # We need to strip the ".d", but can leave the dirname.
+ verbose [file rootname $t]
+ run_dump_test [file rootname $t]
+}
--- /dev/null
+#as: -march=rv32ic
+#objdump: -d
+# Test the disassembly of unknown instruction encodings, specifically,
+# ensure that we generate a .?byte opcode.
+
+#...
+Disassembly of section \.text:
+
+[0-9a-f]+ <\.text>:
+ [0-9a-f]+: 0052018b \.4byte 0x52018b
+ [0-9a-f]+: 9c45 \.2byte 0x9c45
--- /dev/null
+/* Copyright (C) 2021 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+ .text
+ /* The following instruction is in the area set aside for
+ custom instruction extensions. As such it is unlikely that
+ an upstream extension should ever clash with this. */
+ .insn r 0x0b, 0x0, 0x0, x3, x4, x5
+ /* Unlike the above, the following is just a reserved
+ instruction encoding. This means that in the future an
+ extension to the compressed instruction set might use this
+ encoding. If/when that happens we'll need to find a
+ different unused encoding within the compressed instruction
+ space. */
+ .insn ca 0x1, 0x27, 0x2, x8, x9
+2021-09-20 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * riscv-dis.c (riscv_disassemble_insn): Print a .%dbyte opcode
+ before an unknown instruction, '%d' is replaced with the
+ instruction length.
+
2021-09-02 Nick Clifton <nickc@redhat.com>
PR 28292
/* We did not find a match, so just print the instruction bits. */
info->insn_type = dis_noninsn;
- (*info->fprintf_func) (info->stream, "0x%llx", (unsigned long long)word);
+ switch (insnlen)
+ {
+ case 2:
+ case 4:
+ case 8:
+ (*info->fprintf_func) (info->stream, ".%dbyte\t0x%llx",
+ insnlen, (unsigned long long) word);
+ break;
+ default:
+ {
+ int i;
+ (*info->fprintf_func) (info->stream, ".byte\t");
+ for (i = 0; i < insnlen; ++i)
+ {
+ if (i > 0)
+ (*info->fprintf_func) (info->stream, ", ");
+ (*info->fprintf_func) (info->stream, "0x%02x",
+ (unsigned int) (word & 0xff));
+ word >>= 8;
+ }
+ }
+ break;
+ }
return insnlen;
}