* ppc-dis.c (print_insn_powerpc): Correct condition register display.

This commit is contained in:
Alan Modra 2002-11-12 04:03:31 +00:00
parent f8b0dbb817
commit 8b4fa15520
2 changed files with 12 additions and 13 deletions

View File

@ -1,3 +1,7 @@
2002-11-12 Segher Boessenkool <segher@koffie.nl>
* ppc-dis.c (print_insn_powerpc): Correct condition register display.
2002-11-07 Aldy Hernandez <aldyh@redhat.com> 2002-11-07 Aldy Hernandez <aldyh@redhat.com>
* ppc-opc.c (EVUIMM_4): Change bit size to 32. * ppc-opc.c (EVUIMM_4): Change bit size to 32.

View File

@ -52,13 +52,13 @@ powerpc_dialect(info)
|| strcmp (info->disassembler_options, "booke32") == 0 || strcmp (info->disassembler_options, "booke32") == 0
|| strcmp (info->disassembler_options, "booke64") == 0)) || strcmp (info->disassembler_options, "booke64") == 0))
dialect |= PPC_OPCODE_BOOKE | PPC_OPCODE_BOOKE64; dialect |= PPC_OPCODE_BOOKE | PPC_OPCODE_BOOKE64;
else else
if ((info->mach == bfd_mach_ppc_e500) if ((info->mach == bfd_mach_ppc_e500)
|| (info->disassembler_options || (info->disassembler_options
&& ( strcmp (info->disassembler_options, "e500") == 0 && ( strcmp (info->disassembler_options, "e500") == 0
|| strcmp (info->disassembler_options, "e500x2") == 0))) || strcmp (info->disassembler_options, "e500x2") == 0)))
{ {
dialect |= PPC_OPCODE_BOOKE dialect |= PPC_OPCODE_BOOKE
| PPC_OPCODE_SPE | PPC_OPCODE_ISEL | PPC_OPCODE_SPE | PPC_OPCODE_ISEL
| PPC_OPCODE_EFS | PPC_OPCODE_BRLOCK | PPC_OPCODE_EFS | PPC_OPCODE_BRLOCK
| PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK
@ -66,7 +66,7 @@ powerpc_dialect(info)
/* efs* and AltiVec conflict. */ /* efs* and AltiVec conflict. */
dialect &= ~PPC_OPCODE_ALTIVEC; dialect &= ~PPC_OPCODE_ALTIVEC;
} }
else else
if (info->disassembler_options if (info->disassembler_options
&& (strcmp (info->disassembler_options, "efs") == 0)) && (strcmp (info->disassembler_options, "efs") == 0))
{ {
@ -177,7 +177,7 @@ print_insn_powerpc (memaddr, info, bigendian, dialect)
continue; continue;
if ((dialect & PPC_OPCODE_EFS) && (opcode->flags & PPC_OPCODE_ALTIVEC)) if ((dialect & PPC_OPCODE_EFS) && (opcode->flags & PPC_OPCODE_ALTIVEC))
continue; continue;
/* Make two passes over the operands. First see if any of them /* Make two passes over the operands. First see if any of them
have extraction functions, and, if they do, make sure the have extraction functions, and, if they do, make sure the
@ -262,14 +262,9 @@ print_insn_powerpc (memaddr, info, bigendian, dialect)
cr = value >> 2; cr = value >> 2;
if (cr != 0) if (cr != 0)
(*info->fprintf_func) (info->stream, "4*cr%d", cr); (*info->fprintf_func) (info->stream, "4*cr%d+", cr);
cc = value & 3; cc = value & 3;
if (cc != 0) (*info->fprintf_func) (info->stream, "%s", cbnames[cc]);
{
if (cr != 0)
(*info->fprintf_func) (info->stream, "+");
(*info->fprintf_func) (info->stream, "%s", cbnames[cc]);
}
} }
} }
@ -304,7 +299,7 @@ print_ppc_disassembler_options (FILE * stream)
fprintf (stream, "\n\ fprintf (stream, "\n\
The following PPC specific disassembler options are supported for use with\n\ The following PPC specific disassembler options are supported for use with\n\
the -M switch:\n"); the -M switch:\n");
fprintf (stream, " booke|booke32|booke64 Disassemble the BookE instructions\n"); fprintf (stream, " booke|booke32|booke64 Disassemble the BookE instructions\n");
fprintf (stream, " e500|e500x2 Disassemble the e500 instructions\n"); fprintf (stream, " e500|e500x2 Disassemble the e500 instructions\n");
fprintf (stream, " efs Disassemble the EFS instructions\n"); fprintf (stream, " efs Disassemble the EFS instructions\n");