>r1 permanently holds 0. Actually clr r1 is redundant.
Not permanently. Some instructions, like mul and its relatives, modify r1.
An ISR cannot rely on r1 being zero on entry and must restore its value on
exit.
Don Kinzer
___
AVR-GCC-list mail
, EIND=1, RAMPD=1
atxmega128a1
atxmega128a1u
Don Kinzer
___
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
https://lists.nongnu.org/mailman/listinfo/avr-gcc-list
, EIND=1, RAMPD=1
atxmega128a1
atxmega128a1u
Don Kinzer
___
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
https://lists.nongnu.org/mailman/listinfo/avr-gcc-list
},
{ 0, 1, 1, 1, 1, 1, 0, 1, 1, 0x2000, 0, 1, "105", "avrxmega5" },
{ 0, 1, 1, 1, 1, 1, 1, 1, 0, 0x2000, 0, 4, "106", "avrxmega6" },
{ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0x2000, 0, 4, "107", "avrxmega7" }
Don Kinz
>Looking at the Registry I find that none of the WinAVR keys are present:
You may find them in
HKEY_LOCAL_MACHINE\Software\Wow6432Node\...
That's the section of the registry where 32-bit applications create
registry entries on Win7 x64 systems.
Do
off (-fomit-frame-pointer) with any optimization
above -O0 (I think). This aspect of optimization would need to change
for applications built with exception handling. A special version of
avr-libc, built to support exception handling, may be required, too.
This is all speculati
so have to
adjust the compiler options to prevent the compiler from inlining the
code. The output below (resulting from code derived from your
example) was obtained using the default call cost and inline size
option settings.
Don Kinzer
--- Example Code ---
void id_filter_init8( void )
so have to
adjust the compiler options to prevent the compiler from inlining the
code. The output below (resulting from code derived from your
example) was obtained using the default call cost and inline size
option settings.
Don Kinzer
--- Example Code ---
void id_filter_init8( void )
>You'll probably have to create a "static inline" function [...]
In my test, the stack frame setup still was not done with a call to a
static inline function. However, removing the "static inline"
resulted in the stack frame setup being in the code for the helper
function at the expense of a call
d attribute) to call from id_filter_init8()
- the compiler should then produce the code you're expecting.
Don Kinzer
___
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
https://lists.nongnu.org/mailman/listinfo/avr-gcc-list
around the issue in my second reply. It
would be useful to add a caveat to the documentation about using local
variables in naked functions.
Don Kinzer
___
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
https://lists.nongnu.org/mailman/listinfo/avr-gcc-list
11 matches
Mail list logo