[Bug middle-end/65082] Wasted cycles when using a register based varible
gjl at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Feb 20 13:41:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65082
Georg-Johann Lay <gjl at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target|AVR-GCC |avr
Priority|P3 |P5
Status|UNCONFIRMED |WAITING
Last reconfirmed| |2015-02-20
Ever confirmed|0 |1
--- Comment #2 from Georg-Johann Lay <gjl at gcc dot gnu.org> ---
This cannot be reproduced with
register unsigned r4 asm ("r4");
extern unsigned x;
void f (void)
{
r4 += x;
}
and compiled with
$ avr-gcc prog.c -S -Os
Neither with 4.8 nor 4.9 nor 5.0: In all cases, the generated code is:
f:
lds r24,x
lds r25,x+1
add r4,r24
adc r5,r25
ret
(In reply to NickParker from comment #0)
> c code:
> ---------------------------------------------------------
> register uint16_t phaseAccPh asm ("r4");
> uint16_t phaseAccFr;
>
> phaseAccPh += phaseAccFr;
This is not C code that can be compiled. Please read the bug reporting
instructions again.
https://gcc.gnu.org/bugs/#report
More information about the Gcc-bugs
mailing list