cmake: enable -mcall-prologues

Reduces flash memory usage by ~5KB

The CMake build outputs an ASM file for the firmware image  and is human readable.
To see the impacted functions, look for these routines:

__prologue_saves__
__epilogue_restores__

They should come in pairs.

For more info about this option, see:
https://gcc.gnu.org/onlinedocs/gcc-7.3.0/gcc/AVR-Options.html#AVR-Options
This commit is contained in:
Guðni Már Gilbert 2024-07-27 21:09:32 +00:00 committed by gudnimg
parent 6c99a4463e
commit cb85623068
1 changed files with 3 additions and 0 deletions

View File

@ -339,6 +339,9 @@ if(CMAKE_CROSSCOMPILING)
add_compile_options(-flto -fno-fat-lto-objects)
add_link_options(-flto)
# Call Prologues/Epilogues to reduce code size
add_compile_options(-mcall-prologues)
# Create this target before we apply the GC options
add_library(avr_core STATIC ${AVR_SOURCES})
set_reproducible_target(avr_core)