ppc multlibs and BSP removal was Re: powerpc altivec support
Joel Sherrill <joel@OARcorp.com>
joel.sherrill at OARcorp.com
Wed Feb 9 22:25:44 UTC 2005
Ralf Corsepius wrote:
> On Wed, 2005-02-09 at 06:40 -0600, Joel Sherrill wrote:
>
>>Ralf Corsepius wrote:
>>
>>>On Tue, 2005-02-08 at 20:44 -0800, Till Straumann wrote:
>>>
>>>
>>>>Ralf Corsepius wrote:
>>>>
>>>>
>>>>
>>>>>On Tue, 2005-02-08 at 15:52 -0800, Till Straumann wrote:
>
>
>> + m821 and m860 -- these are equivalent and equal "mppc". Mapping
>> both to another multilib and kill.
>> + All 601 and 602 variants should be dead. Can someone comment.
>> + Can mpc8260 should be mapped to a 603e variant AFAIK.
>> + Ralf.. is the default multlib the same as 603?
>
> No, the default is identical to the -m750.
>
>
>>I guess I am seeing that some of the variants could be overkill. The
>>same core is used in lots of CPUs. Can we analyze each multilib and
>>justify its existence?
>
> The problem is the powerpc port in RTEMS, not newlib nor GCC. Many of
> these multilib variants share the same ISA/ABI etc. but they do not
> share the same code in RTEMS
> (cf. cpukit/score/cpu/powerpc/rtems/score/cpu.h)
>
>
>>>>I'd propose to discuss doing away with some of the 604 compatible variants
>>>>- probably, just one of them would be enough, e.g.:
>>>>
>>>>a) 604 with no altivec
>>>>b) 7400 with altivec
>>>
>>>Let me ask differently: Which altvec variants do you want to add?
>>>
>>>In RTEMS/CVS, we already have a 7400 BSP. With GCC-4.0, -m7400 already
>>>implies altivec. AFAIS, this BSP probably doesn't work when having been
>>>built against a multilib'ed RTEMS.
>>>=> I see a demand (need?) for a -m7400/altivec multilib variant, but I
>>>don't know if it is required or if this would be useful.
>>>
>>>I don't know if altivec is useful for other powerpc-cpu-variants.
>>
>>I think we can kill more than enough to make it possible to add.
>>
>>GCC thinks a lot of -mXXX are -mppc internally anyway and RTEMS PROBABLY
>>doesn't care until you get to libcpu and libbsp.
>
> Unfortunately nothing could be further from the truth than this, as far
> as the powerpc is concerned - It is the design issue/flaw I have been
> repeatedly referring to.
>
> cpukit/score/cpu/powerpc/rtems/score/cpu.h is ca. 700 lines in size,
> scattered with ca 30 different defines, which all are candidates for
> conditionally compiling something somewhere. The problem there is to
> identify which are actually important and which are not.
>
> Try to track how *ALIGNMENT defines are set up and you'll probably
> experience what I am referring to.
Turns out the more you live, the more you learn. :)
PPC_CACHE_ALIGNMENT appears to be the same for almost all
configurations. It can be condensed to 1 define of 16 as best I can
tell. It is only used to properly align the bitmap structure used
for thread scheduling. If a multlib can distinguish the core in the
7455 and 8260, they use 32. The 74xx has an Altivec so that would be a
good candidate to multilib on and use 32.
PPC_ALIGNMENT is basically what the heap has to align to. Does a double
have to be 8 or 4-byte aligned? A quick guess is that if you have
hardware FPU, then make it 8, else make it 4.
I picked on PPC_I_CACHE and PPC_D_CACHE. The only place they are used
is in libcpu/powerpc/.../cache.h. So they can be moved to that file I
think.
Also as far as I know, there was NEVER an RTEMS user on the 601 or 602.
Those still say "Submitted with original port -- book checked only." so
that makes them high priority kill targets if they present any issues.
But all I see are alignment constants for them which are easy to get out
of the score.
Can we deduce PPC_HAS_FPU directly from a cpp predefine?
PPC_HAS_DOUBLE follows directly from PPC_HAS_FPU so I don't see any hint
of a CPU really having only 32-bit floating point registers. Doing a
quick search of gcc, I don't see such an animal either. Looks like a
target to kill.
PPC_USE_MULTIPLE only appears in the bsp. I don't know on this but it
could move to libcpu.
Ralf.. do you want to take a stab at moving those and let's see what is
next?
--joel
More information about the users
mailing list