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. ;-) _______________________________________________ AVR-libc-dev mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/avr-libc-dev
