target-ppc: Fix target_disas
Inspect only bit 16 for the Little Endian test. Correct comment preceding the target_disas() function. Correct grammar in comment for flags processing. Signed-off-by: Tom Musta <tommusta@gmail.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
0bbac62618
commit
e13951f896
7
disas.c
7
disas.c
|
@ -191,7 +191,8 @@ static int print_insn_od_target(bfd_vma pc, disassemble_info *info)
|
||||||
values:
|
values:
|
||||||
i386 - 1 means 16 bit code, 2 means 64 bit code
|
i386 - 1 means 16 bit code, 2 means 64 bit code
|
||||||
arm - bit 0 = thumb, bit 1 = reverse endian, bit 2 = A64
|
arm - bit 0 = thumb, bit 1 = reverse endian, bit 2 = A64
|
||||||
ppc - nonzero means little endian
|
ppc - bits 0:15 specify (optionally) the machine instruction set;
|
||||||
|
bit 16 indicates little endian.
|
||||||
other targets - unused
|
other targets - unused
|
||||||
*/
|
*/
|
||||||
void target_disas(FILE *out, CPUArchState *env, target_ulong code,
|
void target_disas(FILE *out, CPUArchState *env, target_ulong code,
|
||||||
|
@ -251,11 +252,11 @@ void target_disas(FILE *out, CPUArchState *env, target_ulong code,
|
||||||
s.info.mach = bfd_mach_sparc_v9b;
|
s.info.mach = bfd_mach_sparc_v9b;
|
||||||
#endif
|
#endif
|
||||||
#elif defined(TARGET_PPC)
|
#elif defined(TARGET_PPC)
|
||||||
if (flags >> 16) {
|
if ((flags >> 16) & 1) {
|
||||||
s.info.endian = BFD_ENDIAN_LITTLE;
|
s.info.endian = BFD_ENDIAN_LITTLE;
|
||||||
}
|
}
|
||||||
if (flags & 0xFFFF) {
|
if (flags & 0xFFFF) {
|
||||||
/* If we have a precise definitions of the instructions set, use it */
|
/* If we have a precise definition of the instruction set, use it. */
|
||||||
s.info.mach = flags & 0xFFFF;
|
s.info.mach = flags & 0xFFFF;
|
||||||
} else {
|
} else {
|
||||||
#ifdef TARGET_PPC64
|
#ifdef TARGET_PPC64
|
||||||
|
|
Loading…
Reference in New Issue