RISC-V: Fix assembler for c.addi, rd can be x0
[deliverable/binutils-gdb.git] / opcodes / vax-dis.c
index a7a1ccbec8ed3fe28c6147660687c388fca9aacb..ff240e4c2a7134af58f91d3a9f6fd0b58308518d 100644 (file)
@@ -1,5 +1,5 @@
 /* Print VAX instructions.
-   Copyright (C) 1995-2015 Free Software Foundation, Inc.
+   Copyright (C) 1995-2017 Free Software Foundation, Inc.
    Contributed by Pauline Middelink <middelin@polyware.iaf.nl>
 
    This file is part of the GNU opcodes library.
@@ -131,14 +131,14 @@ parse_disassembler_options (char * options)
          /* A guesstimate of the number of entries we will have to create.  */
          entry_addr_total_slots +=
            strlen (options) / (strlen (entry_switch) + 5);
-         
+
          entry_addr = realloc (entry_addr, sizeof (bfd_vma)
                                * entry_addr_total_slots);
        }
 
       if (entry_addr == NULL)
        return FALSE;
-         
+
       entry_addr[entry_addr_occupied_slots] = bfd_scan_vma (options, NULL, 0);
       entry_addr_occupied_slots ++;
     }
@@ -296,6 +296,7 @@ print_insn_mode (const char *d,
       break;
     case 0xB0: /* Displacement byte deferred:  *displ(Rn).  */
       (*info->fprintf_func) (info->stream, "*");
+      /* Fall through.  */
     case 0xA0: /* Displacement byte:           displ(Rn).  */
       if (reg == 0xF)
        (*info->print_address_func) (addr + 2 + NEXTBYTE (p), info);
@@ -305,6 +306,7 @@ print_insn_mode (const char *d,
       break;
     case 0xD0: /* Displacement word deferred:  *displ(Rn).  */
       (*info->fprintf_func) (info->stream, "*");
+      /* Fall through.  */
     case 0xC0: /* Displacement word:           displ(Rn).  */
       if (reg == 0xF)
        (*info->print_address_func) (addr + 3 + NEXTWORD (p), info);
@@ -314,6 +316,7 @@ print_insn_mode (const char *d,
       break;
     case 0xF0: /* Displacement long deferred:  *displ(Rn).  */
       (*info->fprintf_func) (info->stream, "*");
+      /* Fall through.  */
     case 0xE0: /* Displacement long:           displ(Rn).  */
       if (reg == 0xF)
        (*info->print_address_func) (addr + 5 + NEXTLONG (p), info);
@@ -402,7 +405,8 @@ print_insn_vax (bfd_vma memaddr, disassemble_info *info)
   argp = NULL;
   /* Check if the info buffer has more than one byte left since
      the last opcode might be a single byte with no argument data.  */
-  if (info->buffer_length - (memaddr - info->buffer_vma) > 1)
+  if (info->buffer_length - (memaddr - info->buffer_vma) > 1
+      && (info->stop_vma == 0 || memaddr < (info->stop_vma - 1)))
     {
       FETCH_DATA (info, buffer + 2);
     }
This page took 0.027376 seconds and 4 git commands to generate.