On behalf off Andy I am forwarding this:

________________________________________
Van: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
Onderwerp: Re: [avr-gcc-list] testsuite saga continues

Wouter,
 
You are correct. gcc will treat any structure that is 8 bytes or less as a
single "register" and likely have same problem. This would be structures.

I am trying to come up with fixes to several bugs and hopefully this
one sometime.

avr-gcc is odd that it accepts 8 byte as maximum - rather than 4. Im am nor
sure why it was needed without also all the other parts for long long that
must work. However, perhaps this was intended for double support.

To get long long to work, it would be wise for all other patterns to be
reduced to byte level expansion (where possible) this would exclude
shift/compare/add etc that need "carry" operations. That would mimimise the
amount of work required.

New patterns would include move DI (8bytes) and perhaps add/sub/compare

Also, it would be wise to change priority of register allocation (which I
have a fix  for). Since the current allocation does not easily permit 8
contigous registers to be allocated (the first is r24!). So you have mess of
stack operations and register moves created

Of course it will still be slow!

I do not intend to fix problems for long long - unless they also fix
problems in other areas.

Please post to list - this email will not work for me.




-----Original Message-----
From: Wouter van Gulik <[EMAIL PROTECTED]>
To: Paulo Marques <[EMAIL PROTECTED]>
Cc: [email protected]
Sent: Wed, 30 Jan 2008 3:56 am
Subject: Re: [avr-gcc-list] testsuite saga continues
>> Do you have a clue on why the tests fail? There is an ugly bug
concerning 
>> stack allocation and 64 bit variables, maybe that is the evil one. See: 
>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27386 for details. 
> > All the failed tests I've seen so far do in fact pass "long long" >
arguments to functions together with a bunch of other arguments > (sometimes
using va_args, too). 
> > In one of the cases (gcc.c-torture/execute/20030307-1.c), the test only
> fails at -O0 and -O1, but passes with other optimization levels because >
the functions get inlined and disappear completely, so the argument >
passing problem disappears too. 
> > So, I would say that it is very likely the same bug... 
>  
So this means that 64 bit is mainly supported, only due to the stack
allocation bug it's hard (if not impossible) to use. 
We should really try to find someone who can fix this nasty bug. 
 
Note that all sort of stack parsed arguments can go wrong, so it's not only
64 bit. 
 
Wouter 



_______________________________________________
AVR-GCC-list mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to