MVME5500 broken with gcc-4.0.2
Phillip Sorensen
pas37 at cornell.edu
Thu Nov 3 17:41:20 UTC 2005
Joel Sherrill <joel at OARcorp.com> wrote:
> Till Straumann wrote:
>
>> WARNING:
>>
>> rtems/gcc (implicitely) uses -maltivec on all 74xx CPUS and
>> the MVME5500 calls for -mcpu=7450.
>>
>> Unfortunately, with -maltivec, gcc uses vector registers for
>> some optimizations.
>
>
> What are those optimizations? Are they integer or floating point
> related?
I have found at least one place. For some reason, one of the
optimizations uses a vector register in the bootpc_init function. I
don't have a version with debugging symbols, but it appears that the
code is possible a translation of the bzero function. (The dhcp_init
function which runs fine is almost identical, except it uses memset
instead of bzero.)
The code generated is
vxor v0,v0,v0
stvx v0,r24,r0
lis r4,6
mr r3,r24
stvx v0,r0,r24
>> Workaround:
>>
>> make/custom/mvme5500: use -mcpu=750
>>
Compiling with -mcpu=750 produces code that runs without the previous
problem.
More information about the users
mailing list