Re: [hatari-devel] WinUAE FPU model values options?

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Hi,

On torstai 22 maaliskuu 2012, Eero Tamminen wrote:
> On torstai 22 maaliskuu 2012, Laurent Sallafranque wrote:
> > At first glance, it seems wrong to me too.
> > 
> > If the initial question was : should we reboot when the FPU is changed,
> > I would answear yes.

Should bCompatibleFPU change trigger reset too, not just FPU type change?


> > Since now, I've tried to add as little change as possible to the winuae
> > code, to keep updates as easy as possible.
> > 
> > Could you explain what this change is supposed to correct ?
> 
> Make FPU type values closer to ones used by WinUAE FPU emulation I guess,
> as current Hatari configuration.h enum values for those are 0-3, whereas
> WinUAE seems to be usign values 0, 68881, 68882, 68040 and 68060 for it..
> 
> Also, shouldn't FPU_CPU define be renamed either FPU_68040 or FPU_68060?

Laurent?


	- Eero


> > Le 22/03/2012 20:16, Eero Tamminen a écrit :
> > > Hi,
> > > 
> > > On lauantai 17 maaliskuu 2012, Andreas Grabher wrote:
> > >> There's a problem with detection, if a reset is necessary in new cpu
> > >> core. It has been fixed in Previous. Maybe take a look at previous
> > >> sources and FPUTYPE enum in configuration.h and
> > >> M68000_CheckCpuSettings in m68000.c.
> > > 
> > > You mean these changes:
> > > http://previous.svn.sourceforge.net/viewvc/previous/trunk/src/include
> > > s/ configuration.h?r1=137&r2=149 ?
> > > 
> > > Yea, the FPU values given in configuration.h indeed seem wrong:
> > > ---------------
> > > #if ENABLE_WINUAE_CPU
> > > typedef enum
> > > {
> > > 
> > >    FPU_NONE,
> > >    FPU_68881,
> > >    FPU_68882,
> > >    FPU_CPU
> > > 
> > > } FPUTYPE;
> > > #endif
> > > ...
> > > 
> > >    FPUTYPE n_FPUType;
> > > 
> > > ---------------
> > > 
> > > 
> > > As they're transferred to "fpu_model" and WinUAE code uses these kind
> > > of values for "fpu_model":
> > > ---------------
> > > static int get_fpu_version (void)
> > > {
> > > 
> > >          int v = 0;
> > >          
> > >          if (currprefs.fpu_revision>= 0)
> > >          
> > >                  return currprefs.fpu_revision;
> > >          
> > >          switch (currprefs.fpu_model)
> > >          {
> > >          
> > >          case 68881:
> > >                  v = 0x1f;
> > >                  break;
> > >          
> > >          case 68882:
> > >                  v = 0x20; /* ??? */
> > >                  break;
> > >          
> > >          case 68040:
> > >                  v = 0x41;
> > >                  break;
> > >          
> > >          }
> > >          return v;
> > > 
> > > }
> > > ---------------
> > > $ grep fpu_model $(find src/ -type f)
> > > src/m68000.c:   changed_prefs.fpu_model =
> > > 
> > > ConfigureParams.System.n_FPUType; src/cpu/custom.c:
> > >    p->fpu_model = 68040;
> > > 
> > > src/cpu/custom.c:                       p->fpu_model = 68060;
> > > src/cpu/newcpu.c:       currprefs.fpu_model =
> > > changed_prefs.fpu_model; src/cpu/newcpu.c:               regs.pcr =
> > > currprefs.fpu_model == 68060 ? MC68060_PCR : MC68EC060_PCR;
> > > src/cpu/newcpu.c:       if (currprefs.fpu_model) {
> > > src/cpu/hatari-glue.c:  currprefs.fpu_model = changed_prefs.fpu_model
> > > = ConfigureParams.System.n_FPUType;
> > > src/cpu/fpp.c:  if (currprefs.fpu_model == 68060) {
> > > src/cpu/fpp.c:  } else if (currprefs.fpu_model == 68040) {
> > > src/cpu/fpp.c:          int idle_size = currprefs.fpu_model == 68882
> > > ? 0x38
> > > 
> > > : 0x18;
> > > 
> > > src/cpu/fpp.c:  if (currprefs.fpu_model == 68060) {
> > > src/cpu/fpp.c:  } else if (currprefs.fpu_model == 68040) {
> > > ---------------
> > > 
> > > (I left only interesting lines for last part.)
> > > 
> > > 
> > > Laurent?
> > > 
> > > 	- Eero




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/