2004-10-28 Tomer Levi <Tomer.Levi@nsc.com>
[deliverable/binutils-gdb.git] / opcodes / arm-dis.c
index 5f8fc4cfd12ce126a09c08392c23269f59cf3514..44cdeac344925a4d369426498b2b1ffe4306244d 100644 (file)
@@ -1,5 +1,5 @@
 /* Instruction printing code for the ARM
-   Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+   Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
    Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
    Modification by James G. Smith (jsmith@cygnus.co.uk)
@@ -639,6 +639,16 @@ print_insn_arm (pc, info, given)
                                  func (stream, "%d", reg);
                                }
                                break;
+                             case 'W':
+                               {
+                                 long reg;
+                                 
+                                 reg = given >> bitstart;
+                                 reg &= (2 << (bitend - bitstart)) - 1;
+                                 
+                                 func (stream, "%d", reg + 1);
+                               }
+                               break;
                              case 'x':
                                {
                                  long reg;
@@ -890,6 +900,15 @@ print_insn_arm (pc, info, given)
                        }
                        break;
 
+                     case 'e':
+                       {
+                         int imm;
+
+                         imm = (given & 0xf) | ((given & 0xfff00) >> 4);
+                         func (stream, "%d", imm);
+                       }
+                       break;
+
                      default:
                        abort ();
                      }
@@ -1145,6 +1164,23 @@ print_insn_thumb (pc, info, given)
   abort ();
 }
 
+/* Disallow mapping symbols ($a, $b, $d, $t etc) from
+   being displayed in symbol relative addresses.  */
+
+bfd_boolean
+arm_symbol_is_valid (asymbol * sym,
+                    struct disassemble_info * info ATTRIBUTE_UNUSED)
+{
+  const char * name;
+  
+  if (sym == NULL)
+    return FALSE;
+
+  name = bfd_asymbol_name (sym);
+
+  return (name && *name != '$');
+}
+
 /* Parse an individual disassembler option.  */
 
 void
This page took 0.023678 seconds and 4 git commands to generate.