Stop the ARC disassembler from seg-faulting if initialised without a BFD present.
[deliverable/binutils-gdb.git] / opcodes / avr-dis.c
index 0f97b2cd1abc69ee55ece2c645e65268628493e8..748cb2dbb6e4f9dfe09a8356ca7554180ea1bc14 100644 (file)
@@ -1,5 +1,5 @@
 /* Disassemble AVR instructions.
-   Copyright (C) 1999-2015 Free Software Foundation, Inc.
+   Copyright (C) 1999-2016 Free Software Foundation, Inc.
 
    Contributed by Denis Chertykov <denisc@overta.ru>
 
@@ -184,17 +184,23 @@ avr_operand (unsigned int insn, unsigned int insn2, unsigned int pc, int constra
       break;
 
     case 'i':
-      sprintf (buf, "0x%04X", insn2);
+      {
+        unsigned int val = insn2 | 0x800000;
+        *sym = 1;
+        *sym_addr = val;
+        sprintf (buf, "0x%04X", insn2);
+        strcpy (comment, comment_start);
+      }
       break;
 
     case 'j':
       {
         unsigned int val = ((insn & 0xf) | ((insn & 0x600) >> 5)
                                          | ((insn & 0x100) >> 2));
-        if (val > 0 && !(insn & 0x100))
-          val |= 0x80;
+        *sym = 1;
+        *sym_addr = val | 0x800000;
         sprintf (buf, "0x%02x", val);
-        sprintf (buf, "%d", val);
+        strcpy (comment, comment_start);
       }
       break;
 
This page took 0.023251 seconds and 4 git commands to generate.