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

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


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/