PR binutils/4045
* avr-dis.c (comment_start): New variable, contains the prefix to use when printing addresses in comments. (print_insn_avr): Set comment_start to an empty space if there is no symbol table available as the generic address printing code will prefix the numeric value of the address with 0x.
This commit is contained in:
parent
e7ff5c732e
commit
af69206070
@ -1,3 +1,12 @@
|
||||
2007-02-16 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR binutils/4045
|
||||
* avr-dis.c (comment_start): New variable, contains the prefix to
|
||||
use when printing addresses in comments.
|
||||
(print_insn_avr): Set comment_start to an empty space if there is
|
||||
no symbol table available as the generic address printing code
|
||||
will prefix the numeric value of the address with 0x.
|
||||
|
||||
2007-02-13 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* i386-dis.c: Updated to use an array of MAX_OPERANDS operands
|
||||
|
@ -43,6 +43,8 @@ const struct avr_opcodes_s avr_opcodes[] =
|
||||
{NULL, NULL, NULL, 0, 0, 0}
|
||||
};
|
||||
|
||||
static const char * comment_start = "0x";
|
||||
|
||||
static int
|
||||
avr_operand (unsigned int insn, unsigned int insn2, unsigned int pc, int constraint,
|
||||
char *buf, char *comment, int regs, int *sym, bfd_vma *sym_addr)
|
||||
@ -144,8 +146,7 @@ avr_operand (unsigned int insn, unsigned int insn2, unsigned int pc, int constra
|
||||
value of the address only once, but this would mean recoding
|
||||
objdump_print_address() which would affect many targets. */
|
||||
sprintf (buf, "%#lx", (unsigned long) *sym_addr);
|
||||
sprintf (comment, "0x");
|
||||
|
||||
sprintf (comment, comment_start);
|
||||
break;
|
||||
|
||||
case 'L':
|
||||
@ -154,17 +155,18 @@ avr_operand (unsigned int insn, unsigned int insn2, unsigned int pc, int constra
|
||||
sprintf (buf, ".%+-8d", rel_addr);
|
||||
*sym = 1;
|
||||
*sym_addr = pc + 2 + rel_addr;
|
||||
sprintf (comment, "0x");
|
||||
sprintf (comment, comment_start);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'l':
|
||||
{
|
||||
int rel_addr = ((((insn >> 3) & 0x7f) ^ 0x40) - 0x40) * 2;
|
||||
|
||||
sprintf (buf, ".%+-8d", rel_addr);
|
||||
*sym = 1;
|
||||
*sym_addr = pc + 2 + rel_addr;
|
||||
sprintf (comment, "0x");
|
||||
sprintf (comment, comment_start);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -267,10 +269,17 @@ print_insn_avr (bfd_vma addr, disassemble_info *info)
|
||||
int sym_op1 = 0, sym_op2 = 0;
|
||||
bfd_vma sym_addr1, sym_addr2;
|
||||
|
||||
|
||||
if (!initialized)
|
||||
{
|
||||
unsigned int nopcodes;
|
||||
|
||||
/* PR 4045: Try to avoid duplicating the 0x prefix that
|
||||
objdump_print_addr() will put on addresses when there
|
||||
is no symbol table available. */
|
||||
if (info->symtab_size == 0)
|
||||
comment_start = " ";
|
||||
|
||||
nopcodes = sizeof (avr_opcodes) / sizeof (struct avr_opcodes_s);
|
||||
|
||||
avr_bin_masks = xmalloc (nopcodes * sizeof (unsigned int));
|
||||
|
Loading…
Reference in New Issue
Block a user