* ia64-dis.c (print_insn_ia64): Get byte skip count correct

for MLI templates.  Handle IA64_OPND_TGT64.
This commit is contained in:
Richard Henderson 2000-08-07 21:44:26 +00:00
parent 2d484c7fa2
commit 0228082a3c
2 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2000-08-07 Richard Henderson <rth@cygnus.com>
* ia64-dis.c (print_insn_ia64): Get byte skip count correct
for MLI templates. Handle IA64_OPND_TGT64.
2000-07-29 Marek Michalkiewicz <marekm@linux.org.pl>
* avr-dis.c (avr_operand): Use PARAMS macro in declaration.

View File

@ -117,7 +117,7 @@ print_insn_ia64 (bfd_vma memaddr, struct disassemble_info *info)
{
/* skip L slot in MLI template: */
slotnum = 2;
retval += slot_multiplier;
retval = 16 - slot_multiplier;
}
insn = slot[slotnum];
@ -165,6 +165,13 @@ print_insn_ia64 (bfd_vma memaddr, struct disassemble_info *info)
| (((insn >> 36) & 0x1) << 20)
| ((insn >> 6) & 0xfffff);
}
else if (odesc - elf64_ia64_operands == IA64_OPND_TGT64)
{
/* 60-bit immedate for long branches. */
value = (((insn >> 13) & 0xfffff)
| (((insn >> 36) & 1) << 59)
| (slot[1] << 20)) << 4;
}
else
{
err = (*odesc->extract) (odesc, insn, &value);