Fix typo in sign extension code in dwarf2_const_value_data().
[deliverable/binutils-gdb.git] / opcodes / arm-dis.c
index f897292eb1b2d9be8d663a7fdac59a8666210541..f131adafebfbb5f6f88d59e8472d13c4deeb9bad 100644 (file)
@@ -66,7 +66,7 @@ static arm_regname regnames[] =
     { "a1", "a2", "a3", "a4", "v1", "v2", "v3", "v4", "v5", "v6", "sl",  "fp",  "ip",  "sp",  "lr",  "pc" }},
   { "atpcs", "Select register names used in the ATPCS",
     { "a1", "a2", "a3", "a4", "v1", "v2", "v3", "v4", "v5", "v6", "v7",  "v8",  "IP",  "SP",  "LR",  "PC" }},
-  { "atpcs-special", "Select special register names used in the ATPCS",
+  { "special-atpcs", "Select special register names used in the ATPCS",
     { "a1", "a2", "a3", "a4", "v1", "v2", "v3", "WR", "v5", "SB", "SL",  "FP",  "IP",  "SP",  "LR",  "PC" }}
 };
 
@@ -90,8 +90,38 @@ static int  print_insn_arm   PARAMS ((bfd_vma, struct disassemble_info *, long))
 static int  print_insn_thumb PARAMS ((bfd_vma, struct disassemble_info *, long));
 static void parse_disassembler_options PARAMS ((char *));
 static int  print_insn       PARAMS ((bfd_vma, struct disassemble_info *, boolean));
+int get_arm_regname_num_options (void);
+int set_arm_regname_option (int option);
+int get_arm_regnames (int option, const char **setname,
+                     const char **setdescription,
+                     const char ***register_names);
 \f
 /* Functions. */
+int
+get_arm_regname_num_options (void)
+{
+  return NUM_ARM_REGNAMES;
+}
+
+int
+set_arm_regname_option (int option)
+{
+  int old = regname_selected;
+  regname_selected = option;
+  return old;
+}
+
+int
+get_arm_regnames (int option, const char **setname,
+                 const char **setdescription,
+                  const char ***register_names)
+{
+  *setname = regnames[option].name;
+  *setdescription = regnames[option].description;
+  *register_names = regnames[option].reg_names;
+  return 16;
+}
+
 static void
 arm_decode_shift (given, func, stream)
      long given;
@@ -622,7 +652,8 @@ print_insn_thumb (pc, info, given)
              info->bytes_per_chunk = 4;
              info->bytes_per_line  = 4;
              
-              func (stream, "bl\t");
+                func (stream, "bl\t");
+               
               info->print_address_func (BDISP23 (given) * 2 + pc + 4, info);
               return 4;
             }
@@ -706,14 +737,14 @@ print_insn_thumb (pc, info, given)
                                 if (started)
                                   func (stream, ", ");
                                 started = 1;
-                                func (stream, "lr");
+                                func (stream, arm_regnames[14] /* "lr" */);
                               }
 
                             if (domaskpc)
                               {
                                 if (started)
                                   func (stream, ", ");
-                                func (stream, "pc");
+                                func (stream, arm_regnames[15] /* "pc" */);
                               }
 
                             func (stream, "}");
@@ -827,8 +858,8 @@ print_insn_thumb (pc, info, given)
 }
 
 /* Parse an individual disassembler option.  */
-static void
-parse_disassembler_option (option)
+void
+parse_arm_disassembler_option (option)
      char * option;
 {
   if (option == NULL)
@@ -877,12 +908,12 @@ parse_disassembler_options (options)
       if (space)
        {
          * space = '\0';
-         parse_disassembler_option (options);
+         parse_arm_disassembler_option (options);
          * space = ' ';
          options = space + 1;
        }
       else
-       parse_disassembler_option (options);
+       parse_arm_disassembler_option (options);
     }
   while (space);
 }
This page took 0.025347 seconds and 4 git commands to generate.