Source volatile uint8_t mUsart0BufferReadPtr;
void Usart0AtModeSkipLine(void) { uint8_t rdptr = 0; rdptr = mUsart0BufferReadPtr; rdptr = mUsart0BufferReadPtr; rdptr = mUsart0BufferReadPtr; } ------------- Generated asm +00000694: 93DF PUSH R29 Push register on stack +00000695: 93CF PUSH R28 Push register on stack +00000696: 920F PUSH R0 Push register on stack +00000697: B7CD IN R28,0x3D In from I/O location +00000698: B7DE IN R29,0x3E In from I/O location 179: uint8_t rdptr = 0; +00000699: 8219 STD Y+1,R1 Store indirect with displacement 181: rdptr = mUsart0BufferReadPtr; +0000069A: 91800000 LDS R24,0x0000 Load direct from data space +0000069C: 8389 STD Y+1,R24 Store indirect with displacement 182: rdptr = mUsart0BufferReadPtr; +0000069D: 91800264 LDS R24,0x0264 Load direct from data space +0000069F: 8389 STD Y+1,R24 Store indirect with displacement 183: rdptr = mUsart0BufferReadPtr; +000006A0: 91800264 LDS R24,0x0264 Load direct from data space +000006A2: 8389 STD Y+1,R24 Store indirect with displacement ------------------------ OS: WinXP gcc: avr-gcc.EXE (WinAVR 20100110) 4.3.3 -- Summary: Incorrect code generation for target mcu ATMega164P Product: gcc Version: 4.4.3 Status: UNCONFIRMED Severity: major Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: smal dot root at gmail dot com GCC host triplet: Win32 GCC target triplet: avr http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43104