+2020-07-14 Claudiu Zissulescu <claziss@gmail.com>
+
+ * testsuite/binutils-all/arc/double_regs.s: New test.
+ * testsuite/binutils-all/arc/objdump.exp: Add the above test.
+
2020-07-13 Nick Clifton <nickc@redhat.com>
* po/fr.po: Updated French translation.
--- /dev/null
+ .cpu HS
+ .text
+ .byte 0x9e,0x2f,0x20,0x75
# disassembler has had to guess as the instruction class in use).
set want "Warning: disassembly.*vmac2hnfr\[ \t\]*r0,r2,r4.*dmulh12.f\[ \t\]*r0,r2,r4.*dmulh11.f"
check_assembly "Warning test" [do_objfile dsp.s] $want
+set warn_double_reg "Warning: illegal use of double register pair."
+check_assembly "Warning faulty double regs" [do_objfile double_regs.s] \
+ $warn_double_reg
set double_store_hs_expected {std\s*r0r1,\[r3\]}
set objfile [do_objfile double_store.s]
+2020-07-14 Claudiu Zissulescu <claziss@gmail.com>
+
+ * arc-dis.c (print_insn_arc): Detect and emit a warning when a
+ faulty double register pair is detected.
+
2020-07-14 Jan Beulich <jbeulich@suse.com>
* i386-dis.c (OP_D): Print dr<N> instead of db<N> in Intel mode.
if (!rname)
rname = regnames[value];
(*info->fprintf_func) (info->stream, "%s", rname);
+
+ /* Check if we have a double register to print. */
if (operand->flags & ARC_OPERAND_TRUNCATE)
{
- rname = arcExtMap_coreRegName (value + 1);
- if (!rname)
- rname = regnames[value + 1];
+ if ((value & 0x01) == 0)
+ {
+ rname = arcExtMap_coreRegName (value + 1);
+ if (!rname)
+ rname = regnames[value + 1];
+ }
+ else
+ rname = _("\nWarning: illegal use of double register "
+ "pair.\n");
(*info->fprintf_func) (info->stream, "%s", rname);
}
if (value == 63)