[Top][All Lists]
[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/
- Re: [RFC] Eliminate NESTED_ATTR_FUNC, (continued)
Re: [RFC] Eliminate NESTED_ATTR_FUNC, Bean, 2009/09/02
Re: [RFC] Eliminate NESTED_ATTR_FUNC, Robert Millan, 2009/09/03
Re: [RFC] Eliminate NESTED_ATTR_FUNC, Felix Zielcke, 2009/09/03
Re: [RFC] Eliminate NESTED_ATTR_FUNC, Vladimir 'phcoder' Serbinenko, 2009/09/03
Re: [RFC] Eliminate NESTED_ATTR_FUNC,
Bean <=