[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [avr-gcc-list] Bug35013 - Incomplete check for pm() annotation
From: |
Weddington, Eric |
Subject: |
RE: [avr-gcc-list] Bug35013 - Incomplete check for pm() annotation |
Date: |
Sat, 16 Feb 2008 14:29:27 -0700 |
> -----Original Message-----
> From:
> address@hidden
> [mailto:address@hidden
> org] On Behalf Of Andrew Hutchinson
> Sent: Saturday, February 16, 2008 2:23 PM
> To: Wouter van Gulik; address@hidden
> Subject: Re: [avr-gcc-list] Bug35013 - Incomplete check for
> pm() annotation
>
> Note that this bug is also related to:
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27192
>
> which has similar issue generating "byte address" instead of word
> address. Oddly my patch appears to fix that without problem, using :
>
> 45 0014 80E0 ldi r24,lo8(pm(foo+512))
> 46 0016 90E0 ldi r25,hi8(pm(foo+512))
> 47 0018 9093 0000 sts (q)+1,r25
> 48 001c 8093 0000 sts q,r24
>
>
> So it would appear problem with pm(foo+1) is more complicated than it
> appears.
>
> Ideas?
>
Functions are word aligned (16-bits). Does 'foo' evaluate to a pointer
to word? Or does it evaluate to a pointer to a byte, which when adding
one and then made into a pointer to flash (word aligned) doesn't give
any meaningful object?
Re: [avr-gcc-list] Bug35013 - Incomplete check for pm() annotation, Andy H, 2008/02/16