grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC] Eliminate NESTED_ATTR_FUNC


From: Bean
Subject: Re: [RFC] Eliminate NESTED_ATTR_FUNC
Date: Fri, 4 Sep 2009 00:01:38 +0800

On Thu, Sep 3, 2009 at 11:49 PM, Felix Zielcke<address@hidden> wrote:
> Am Donnerstag, den 03.09.2009, 17:36 +0200 schrieb Robert Millan:
>> On Wed, Sep 02, 2009 at 12:20:19PM +0800, Bean wrote:
>> >
>> > Hi,
>> >
>> > Oh, I was wrong previously, gcc does respect __attribute__
>> > ((__regparm__ (3))) flag (I forget to add -Os so it still uses stack
>> > to store value). And the bug is still there ! Try this test program:
>>
>> Thanks Bean.  I have opened an entry in GCC bugzilla, and submitted your
>> test program in it:
>>
>>   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41246
>>
>> Hopefully they'll fix it in later versions, and hopefully people will
>> upgrade soon.  In the meantime, we're stuck with it.
>>
>
> Is there any reason why we fallback to regparm 1 and not to regparm 2?
> According to the output of the testcase in the above bug report 2 seems
> to work too?

Hi,

If the first parameter is 64-bit, it will use two registers, so the
second parameter is %ecx, which conflicts with local environment
pointer. To see it in action, change parameter int aa to long long aa
in the test program and compile it with -mregparm=2.

-- 
Bean

gitgrub home: http://github.com/grub/grub/
my fork page: http://github.com/bean123/grub/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]