/[qemu]/qemu/target-i386/helper2.c
ViewVC logotype

Diff of /qemu/target-i386/helper2.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.33 by bellard, Sat Apr 23 17:50:32 2005 UTC revision 1.34 by bellard, Sun Jul 3 21:29:17 2005 UTC
# Line 250  void cpu_dump_state(CPUState *env, FILE Line 250  void cpu_dump_state(CPUState *env, FILE
250                      int (*cpu_fprintf)(FILE *f, const char *fmt, ...),                      int (*cpu_fprintf)(FILE *f, const char *fmt, ...),
251                      int flags)                      int flags)
252  {  {
253      int eflags, i;      int eflags, i, nb;
254      char cc_op_name[32];      char cc_op_name[32];
255      static const char *seg_name[6] = { "ES", "CS", "SS", "DS", "FS", "GS" };      static const char *seg_name[6] = { "ES", "CS", "SS", "DS", "FS", "GS" };
256    
# Line 398  void cpu_dump_state(CPUState *env, FILE Line 398  void cpu_dump_state(CPUState *env, FILE
398          }          }
399      }      }
400      if (flags & X86_DUMP_FPU) {      if (flags & X86_DUMP_FPU) {
401          cpu_fprintf(f, "ST0=%f ST1=%f ST2=%f ST3=%f\n",          int fptag;
402                  (double)env->fpregs[0].d,          fptag = 0;
403                  (double)env->fpregs[1].d,          for(i = 0; i < 8; i++) {
404                  (double)env->fpregs[2].d,              fptag |= ((!env->fptags[i]) << i);
405                  (double)env->fpregs[3].d);          }
406          cpu_fprintf(f, "ST4=%f ST5=%f ST6=%f ST7=%f\n",          cpu_fprintf(f, "FCW=%04x FSW=%04x [ST=%d] FTW=%02x MXCSR=%08x\n",
407                  (double)env->fpregs[4].d,                      env->fpuc,
408                  (double)env->fpregs[5].d,                      (env->fpus & ~0x3800) | (env->fpstt & 0x7) << 11,
409                  (double)env->fpregs[7].d,                      env->fpstt,
410                  (double)env->fpregs[8].d);                      fptag,
411                        env->mxcsr);
412            for(i=0;i<8;i++) {
413    #if defined(USE_X86LDOUBLE)
414                union {
415                    long double d;
416                    struct {
417                        uint64_t lower;
418                        uint16_t upper;
419                    } l;
420                } tmp;
421                tmp.d = env->fpregs[i].d;
422                cpu_fprintf(f, "FPR%d=%016llx %04x",
423                            i, tmp.l.lower, tmp.l.upper);
424    #else
425                cpu_fprintf(f, "FPR%d=%016llx",
426                            i, env->fpregs[i].mmx.q);
427    #endif
428                if ((i & 1) == 1)
429                    cpu_fprintf(f, "\n");
430                else
431                    cpu_fprintf(f, " ");
432            }
433            if (env->hflags & HF_CS64_MASK)
434                nb = 16;
435            else
436                nb = 8;
437            for(i=0;i<nb;i++) {
438                cpu_fprintf(f, "XMM%02d=%08x%08x%08x%08x",
439                            i,
440                            env->xmm_regs[i].XMM_L(3),
441                            env->xmm_regs[i].XMM_L(2),
442                            env->xmm_regs[i].XMM_L(1),
443                            env->xmm_regs[i].XMM_L(0));
444                if ((i & 1) == 1)
445                    cpu_fprintf(f, "\n");
446                else
447                    cpu_fprintf(f, " ");
448            }
449      }      }
450  }  }
451    

Legend:
Removed from v.1.33  
changed lines
  Added in v.1.34

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26