Commit a94a6abff47685e33caf332b55f45e02ab2d8a55

Authored by pbrook
1 parent c688a6eb

Fix ARM VFP debugging dumps.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2201 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 10 additions and 3 deletions
target-arm/translate.c
@@ -2542,6 +2542,12 @@ void cpu_dump_state(CPUState *env, FILE *f, @@ -2542,6 +2542,12 @@ void cpu_dump_state(CPUState *env, FILE *f,
2542 float s; 2542 float s;
2543 } s0, s1; 2543 } s0, s1;
2544 CPU_DoubleU d; 2544 CPU_DoubleU d;
  2545 + /* ??? This assumes float64 and double have the same layout.
  2546 + Oh well, it's only debug dumps. */
  2547 + union {
  2548 + float64 f64;
  2549 + double d;
  2550 + } d0;
2545 uint32_t psr; 2551 uint32_t psr;
2546 2552
2547 for(i=0;i<16;i++) { 2553 for(i=0;i<16;i++) {
@@ -2565,11 +2571,12 @@ void cpu_dump_state(CPUState *env, FILE *f, @@ -2565,11 +2571,12 @@ void cpu_dump_state(CPUState *env, FILE *f,
2565 d.d = env->vfp.regs[i]; 2571 d.d = env->vfp.regs[i];
2566 s0.i = d.l.lower; 2572 s0.i = d.l.lower;
2567 s1.i = d.l.upper; 2573 s1.i = d.l.upper;
2568 - cpu_fprintf(f, "s%02d=%08x(%8f) s%02d=%08x(%8f) d%02d=%08x%08x(%8f)\n", 2574 + d0.f64 = d.d;
  2575 + cpu_fprintf(f, "s%02d=%08x(%8g) s%02d=%08x(%8g) d%02d=%08x%08x(%8g)\n",
2569 i * 2, (int)s0.i, s0.s, 2576 i * 2, (int)s0.i, s0.s,
2570 - i * 2 + 1, (int)s0.i, s0.s, 2577 + i * 2 + 1, (int)s1.i, s1.s,
2571 i, (int)(uint32_t)d.l.upper, (int)(uint32_t)d.l.lower, 2578 i, (int)(uint32_t)d.l.upper, (int)(uint32_t)d.l.lower,
2572 - d.d); 2579 + d0.d);
2573 } 2580 }
2574 cpu_fprintf(f, "FPSCR: %08x\n", (int)env->vfp.xregs[ARM_VFP_FPSCR]); 2581 cpu_fprintf(f, "FPSCR: %08x\n", (int)env->vfp.xregs[ARM_VFP_FPSCR]);
2575 } 2582 }