From 7c08dbf325fc301e4889fd352222d94d9d6b0451 Mon Sep 17 00:00:00 2001 From: bellard Date: Wed, 25 Aug 2004 22:30:56 +0000 Subject: endianness fix git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1055 c046a42c-6fe2-441c-8c8c-71466251a162 --- ppc-dis.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'ppc-dis.c') diff --git a/ppc-dis.c b/ppc-dis.c index 354b2ac..fcced17 100644 --- a/ppc-dis.c +++ b/ppc-dis.c @@ -3076,15 +3076,20 @@ static int print_insn_powerpc(FILE *, uint32_t insn, unsigned memaddr, int diale int print_insn_ppc (bfd_vma pc, disassemble_info *info) { uint32_t opc; - - (*info->read_memory_func)(pc, (bfd_byte *)(&opc), 4, info); - return print_insn_powerpc (info->stream, tswap32(opc), pc, + bfd_byte buf[4]; + + (*info->read_memory_func)(pc, buf, 4, info); + if (info->endian == BFD_ENDIAN_BIG) + opc = bfd_getb32(buf); + else + opc = bfd_getl32(buf); + return print_insn_powerpc (info->stream, opc, pc, PPC | B32 | M601); } /* Print a PowerPC or POWER instruction. */ -int +static int print_insn_powerpc (FILE *out, uint32_t insn, unsigned memaddr, int dialect) { -- cgit v1.1