Subject: Re: Sun 3/50 and -current
To: Aaron J. Grier <agrier@poofygoof.com>
From: Frederick Bruckman <fredb@immanent.net>
List: tech-perform
Date: 03/27/2002 13:24:35
In article <20020327102101.G2202@goldberry.poofy.goof.com>,
	agrier@poofygoof.com (Aaron J. Grier) writes:
> On Wed, Mar 27, 2002 at 07:58:33AM -0700, Rick Kelly wrote:
> 
>> So we don't build GCC to minimally default to 68020?

We do, on m68k. Actually, we seem to be currently building
for *only* 68020 -- "-m68020", and not "-m68020-40" as I said
before. The compiled code won't necessarily work on 68040...

The default target is defined in "gnu/usr.bin/gcc/arch/m68k/tm.h"
as 'MASK_68020|MASK_68881|MASK_BITFIELD'. I believe that should be
'|MASK_68040'? Like, for example, look at this, from
"gnu/dist/gcc/config/m68k/m68k.c"

  /* fmovecr must be emulated on the 68040 and 68060, so it shouldn't be
       used at all on those chips. */
	 if (TARGET_68040 || TARGET_68060)
	     return 0;

The disputed instructions (should be) rarely used floating point
instructions, so it can't make much of  difference in performance
either way. (If they weren't rarely used, we'd be seeing a lot more
SIGILL core dumps on 68040's.)

> if we did that, what would the sun2 (68010) users do?  ;)

They get a different compiler and different binaries. They're
treated as a different MACHINE_ARCH, m68000, even though a
"cross-build" to or from m68k only needs the proper switches.
Their default is defined in "gnu/usr.bin/gcc/arch/m68000/tm.h"
as '0', which means -soft-float, -no-bitfield, no nothing.

-- 

Frederick