opcodes: SH fix bank register disassemble.
authorYoshinori Sato <ysato@users.sourceforge.jp>
Thu, 22 Sep 2022 11:40:43 +0000 (12:40 +0100)
committerNick Clifton <nickc@redhat.com>
Thu, 22 Sep 2022 11:40:43 +0000 (12:40 +0100)
* sh-dis.c (print_insn_sh): Enforce bit7 of LDC Rm,Rn_BANK and STC
Rm_BANK,Rn is always 1.

opcodes/ChangeLog
opcodes/sh-dis.c

index 1a23be86d7063ceb3712c3dca2018b816754ce24..bbd3544b83d07ad40acd5bd2589150602cf8af6f 100644 (file)
@@ -1,3 +1,8 @@
+2022-09-22  Yoshinori Sato  <ysato@users.sourceforge.jp>
+
+       * sh-dis.c (print_insn_sh): Enforce bit7 of LDC Rm,Rn_BANK and STC
+       Rm_BANK,Rn is always 1.
+
 2022-07-21  Peter Bergner  <bergner@linux.ibm.com>
 
        * ppc-opc.c (XACC_MASK, XX3ACC_MASK): New defines.
index 0e46cb6f4d9a41c96a49fb4b7097d33fa36058ad..49dbc23d920dce802122834f518d0ec6f21b4bd7 100644 (file)
@@ -645,6 +645,8 @@ print_insn_sh (bfd_vma memaddr, struct disassemble_info *info)
              rm = (nibs[n] & 0x3);
              break;
            case REG_B:
+             if (!(nibs[n] & 0x08)) /* Must always be 1.  */
+               goto fail;
              rb = nibs[n] & 0x07;
              break;
            case SDT_REG_N: