gdb: defer commit resume until all available events are consumed
[deliverable/binutils-gdb.git] / opcodes / rx-dis.c
index 18bc170200d3e34063a6b2c6f246cf4f59ca86dd..29ba71c12159fe93348228d29229ee8e0bd84d85 100644 (file)
@@ -1,5 +1,5 @@
 /* Disassembler code for Renesas RX.
-   Copyright (C) 2008-2019 Free Software Foundation, Inc.
+   Copyright (C) 2008-2020 Free Software Foundation, Inc.
    Contributed by Red Hat.
    Written by DJ Delorie.
 
@@ -136,7 +136,7 @@ get_register_name (unsigned int reg)
 {
   if (reg < ARRAY_SIZE (register_names))
     return register_names[reg];
-  return _("<inavlid register number>");
+  return _("<invalid register number>");
 }
 
 static inline const char *
@@ -144,7 +144,7 @@ get_condition_name (unsigned int cond)
 {
   if (cond < ARRAY_SIZE (condition_names))
     return condition_names[cond];
-  return _("<inavlid condition code>");
+  return _("<invalid condition code>");
 }
 
 static inline const char *
@@ -152,7 +152,7 @@ get_flag_name (unsigned int flag)
 {
   if (flag < ARRAY_SIZE (flag_names))
     return flag_names[flag];
-  return _("<inavlid flag>");
+  return _("<invalid flag>");
 }
 
 static inline const char *
@@ -160,7 +160,7 @@ get_double_register_name (unsigned int reg)
 {
   if (reg < ARRAY_SIZE (double_register_names))
     return double_register_names[reg];
-  return _("<inavlid register number>");
+  return _("<invalid register number>");
 }
 
 static inline const char *
@@ -168,7 +168,7 @@ get_double_register_high_name (unsigned int reg)
 {
   if (reg < ARRAY_SIZE (double_register_high_names))
     return double_register_high_names[reg];
-  return _("<inavlid register number>");
+  return _("<invalid register number>");
 }
 
 static inline const char *
@@ -176,7 +176,7 @@ get_double_register_low_name (unsigned int reg)
 {
   if (reg < ARRAY_SIZE (double_register_low_names))
     return double_register_low_names[reg];
-  return _("<inavlid register number>");
+  return _("<invalid register number>");
 }
 
 static inline const char *
@@ -184,7 +184,7 @@ get_double_control_register_name (unsigned int reg)
 {
   if (reg < ARRAY_SIZE (double_control_register_names))
     return double_control_register_names[reg];
-  return _("<inavlid register number>");
+  return _("<invalid register number>");
 }
 
 static inline const char *
@@ -192,7 +192,23 @@ get_double_condition_name (unsigned int cond)
 {
   if (cond < ARRAY_SIZE (double_condition_names))
     return double_condition_names[cond];
-  return _("<inavlid condition code>");
+  return _("<invalid condition code>");
+}
+
+static inline const char *
+get_opsize_name (unsigned int opsize)
+{
+  if (opsize < ARRAY_SIZE (opsize_names))
+    return opsize_names[opsize];
+  return _("<invalid opsize>");
+}
+
+static inline const char *
+get_size_name (unsigned int size)
+{
+  if (size < ARRAY_SIZE (size_names))
+    return size_names[size];
+  return _("<invalid size>");
 }
 
 
@@ -278,34 +294,36 @@ print_insn_rx (bfd_vma addr, disassemble_info * dis)
              break;
 
            case 's':
-             PR (PS, "%s", opsize_names[opcode.size]);
+             PR (PS, "%s", get_opsize_name (opcode.size));
              break;
 
            case 'b':
              s ++;
-             if (*s == 'f') {
-               int imm = opcode.op[2].addend;
-               int slsb, dlsb, width;
-               dlsb = (imm >> 5) & 0x1f;
-               slsb = (imm & 0x1f);
-               slsb = (slsb >= 0x10?(slsb ^ 0x1f) + 1:slsb);
-               slsb = dlsb - slsb;
-               slsb = (slsb < 0?-slsb:slsb);
-               width = ((imm >> 10) & 0x1f) - dlsb;
-               PR (PS, "#%d, #%d, #%d, %s, %s",
-                   slsb, dlsb, width,
-                   register_names[opcode.op[1].reg],
-                   register_names[opcode.op[0].reg]);
-             }
+             if (*s == 'f')
+               {
+                 int imm = opcode.op[2].addend;
+                 int slsb, dlsb, width;
+
+                 dlsb = (imm >> 5) & 0x1f;
+                 slsb = (imm & 0x1f);
+                 slsb = (slsb >= 0x10?(slsb ^ 0x1f) + 1:slsb);
+                 slsb = dlsb - slsb;
+                 slsb = (slsb < 0?-slsb:slsb);
+                 width = ((imm >> 10) & 0x1f) - dlsb;
+                 PR (PS, "#%d, #%d, #%d, %s, %s",
+                     slsb, dlsb, width,
+                     get_register_name (opcode.op[1].reg),
+                     get_register_name (opcode.op[0].reg));
+               }
              break;
            case '0':
            case '1':
            case '2':
-             oper = opcode.op + *s - '0';
+             oper = opcode.op + (*s - '0');
              if (do_size)
                {
                  if (oper->type == RX_Operand_Indirect || oper->type == RX_Operand_Zero_Indirect)
-                   PR (PS, "%s", size_names[oper->size]);
+                   PR (PS, "%s", get_size_name (oper->size));
                }
              else
                switch (oper->type)
This page took 0.0264 seconds and 4 git commands to generate.