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

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


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. 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 ?

Regards

Laurent




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/includes/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/