diff --git a/plat/linuxppc/emu/emu.c b/plat/linuxppc/emu/emu.c index 91ae87a8b..1cc17d1be 100644 --- a/plat/linuxppc/emu/emu.c +++ b/plat/linuxppc/emu/emu.c @@ -325,6 +325,12 @@ void dump_state(FILE* stream) fprintf(stream, "\n"); fprintf(stream, "gpr%02d=0x%08x ", i, cpu.gpr[i]); } + for (i=0; i<32; i++) + { + if ((i % 3) == 0) + fprintf(stream, "\n"); + fprintf(stream, "fpr%02d=0x%016lx ", i, cpu.fpr[i]); + } fprintf(stderr, "\n"); /* This might fail and cause a reentrant trap if cia is invalid, so diff --git a/plat/linuxppc/emu/instructions.dat b/plat/linuxppc/emu/instructions.dat index 9bd39af8e..5bf4411c6 100644 --- a/plat/linuxppc/emu/instructions.dat +++ b/plat/linuxppc/emu/instructions.dat @@ -207,5 +207,5 @@ # Floating point conversions -<63-->.....<14------>R setcr1(R, fpr(FRB)); cpu.fpr[FRT] = (uint32_t)fpr(FRB); -<63-->.....<15------>R setcr1(R, fpr(FRB)); cpu.fpr[FRT] = (uint32_t)fpr(FRB); +<63-->.....<14------>R setcr1(R, fpr(FRB)); cpu.fpr[FRT] = (uint32_t)(int32_t)fpr(FRB); +<63-->.....<15------>R setcr1(R, fpr(FRB)); cpu.fpr[FRT] = (uint32_t)(int32_t)fpr(FRB);