avr-libc-dev
[Top][All Lists]
Advanced

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

Re: [avr-libc-dev] [bug #22878] eeprom_*_word/dword/blockcausehanginATme


From: Dmitry K.
Subject: Re: [avr-libc-dev] [bug #22878] eeprom_*_word/dword/blockcausehanginATmega256x
Date: Thu, 10 Apr 2008 08:19:56 +1100
User-agent: KMail/1.5

On Thursday 10 April 2008 06:54, Weddington, Eric wrote:

> > /* avr-gcc 4.4-20080404 + binutils 2.18 produce incorrect code: the
> > foo4()
> >    function stores 0 value to 'vp' variable.
> >    Options: -W -Wall -Os -mmcu=atmega2560
> >  */
> >
> > The code generated by 4.3.0 + Andy's combine patch shows that
> > the foo4()
> > function does NOT store 0 value to 'vp' variable. At least that's my
> > interpretation. As to the validity of what it is storing, I don't know
> > about that.
>
> On further reflection, let me add to the above.
>
> Dmitry, did you mean that this code:
>       ldi r24,lo8(gs(foo4))
>       ldi r25,hi8(gs(foo4))
>       sts (vp)+1,r25
>       sts vp,r24
> Stores an effective 0 value to 'vp'? That lo8(gs(foo4)) and hi(gs(foo4))
> evaluate to zero? I was interpreting what you wrote as it stored an
> immediate value of zero to 'vp'. I do not have a FSF GCC stock 4.3.0
> (unpatched) on which to reproduce here. Could you perhaps show the
> assembly that it produces?

Hi.

Yes, I have obtain the same result of compilation.

Incorrect is result of linking (avr-objdump -d):
     ldi  r24, 0
     ldi  r25, 0
in case of foo4() only.

The trampoline stub for foo4() was created correctly.

Regards,
Dmitry.





reply via email to

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