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

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

Re: [avr-libc-dev] [RFC] Sleeping BOD API


From: Joerg Wunsch
Subject: Re: [avr-libc-dev] [RFC] Sleeping BOD API
Date: Sat, 7 Feb 2009 08:15:11 +0100
User-agent: Mutt/1.5.11

As Weddington, Eric wrote:

> [...] I want to make sure that with the macro, gcc won't do
> something weird like:

>       in r24,85-32
> /* #APP */
>  ;  61 "test.c" 1
>       ori  r24,96
>  ;  0 "" 2
> /* #NOAPP */
>       out 85-32,r24
> /* #APP */
>  ;  61 "test.c" 1
>       andi  r25,-33
>  ;  0 "" 2
> /* #NOAPP */
>       out 85-32,r25

> where it chooses a different register for the second __asm__
> statement and that different register has basically invalid data.

As your inline asm statement cannot ensure this cannot happen because
it is not specified in the parameter lists of the statements (even if
not right now, who knows what will happen with it next year?), I
cannot really understand your resistance against using a temporary
"variable" (which actually never exists as a variable at all but is
just a register again, but a register that is guaranteed the same for
both instructions).

-- 
cheers, J"org               .-.-.   --... ...--   -.. .  DL8DTL

http://www.sax.de/~joerg/                        NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)




reply via email to

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