gcc/ Support multilibs and devices that see flash in RAM address range. PR target/81072 * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum. (avr_mcu_t) <flash_pm_offset>: New field. (avr_device_specific_features) <AVR_ISA_RCALL>: New enum. * config/avr/avr.h (AVR_SHORT_CALLS): New define. (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS. (AVR_TINY_PM_OFFSET): Remove macro. * config/avr/avr.opt (-mshort-calls): New option. * config/avr/gen-avr-mmcu-specs.c (print_mcu) [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL. * config/avr/avr-c.c (avr_cpu_cpp_builtins) <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS. <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition instead of avr_arch->have_jmp_call. <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset. [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use avr_arch->flash_pm_offset to define. * config/avr/avr-devices.c (avr_arch_types): Add initializers for new field flash_pm_offset. Add entry for avrxmega3. (avr_texinfo): Add entry for avrxmega3. * config/avr/avr-mcus.def: Add entries for: avrxmega3, attiny212, attiny214, attiny412, attiny414, attiny416, attiny417, attiny814, attiny816, attiny817, attiny1614, attiny1616, attiny1617, attiny3214, attiny3216, attiny3217. * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET. (avr_print_operand_address) [AVR_TINY]: Same. (avr_asm_init_sections) <readonly_data_section>: Only patch callback if avr_arch->flash_pm_offset = 0. (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it for rodata if avr_arch->flash_pm_offset != 0. (avr_encode_section_info) [AVR_TINY]: Adjust comment. * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars. (opts) [AVR_ISA_RCALL]: Append opt_rcall. (m_options): Append opt_rcall. (m_dirnames): Append dir_rcall. * config/avr/t-multilib: Regenerate. * configure.ac [target=avr]: Check whether avrxmega3 default linker description file works as needed. * configure: Regenerate. * doc/avr-mmcu.texi: Regenerate. * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it. <__AVR_ARCH__>: Document avrxmega3 and 103. <__AVR_HAVE_JMP_CALL__>: Adjust documentation. <__AVR_SHORT_CALLS__>: Document it. <__AVR_PM_BASE_ADDRESS__>: Document it. * doc/extend.texi (AVR Options) <-mshort-calls>: Document it. (AVR Variable Attributes) <progmem>: Document this is not needed for avrxmega3. (AVR Named Address Spaces) <__flash>: Dito. From-SVN: r249124
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| include | Loading commit data... | |
| avr-mmcu.texi | Loading commit data... | |
| bugreport.texi | Loading commit data... | |
| cfg.texi | Loading commit data... | |
| collect2.texi | Loading commit data... | |
| compat.texi | Loading commit data... | |
| configfiles.texi | Loading commit data... | |
| configterms.texi | Loading commit data... | |
| contrib.texi | Loading commit data... | |
| contribute.texi | Loading commit data... | |
| cpp.texi | Loading commit data... | |
| cppdiropts.texi | Loading commit data... | |
| cppenv.texi | Loading commit data... | |
| cppinternals.texi | Loading commit data... | |
| cppopts.texi | Loading commit data... | |
| cppwarnopts.texi | Loading commit data... | |
| extend.texi | Loading commit data... | |
| fragments.texi | Loading commit data... | |
| frontends.texi | Loading commit data... | |
| gcc.texi | Loading commit data... | |
| gccint.texi | Loading commit data... | |
| gcov-dump.texi | Loading commit data... | |
| gcov-tool.texi | Loading commit data... | |
| gcov.texi | Loading commit data... | |
| generic.texi | Loading commit data... | |
| gimple.texi | Loading commit data... | |
| gnu.texi | Loading commit data... | |
| gty.texi | Loading commit data... | |
| headerdirs.texi | Loading commit data... | |
| hostconfig.texi | Loading commit data... | |
| implement-c.texi | Loading commit data... | |
| implement-cxx.texi | Loading commit data... | |
| install-old.texi | Loading commit data... | |
| install.texi | Loading commit data... | |
| install.texi2html | Loading commit data... | |
| interface.texi | Loading commit data... | |
| invoke.texi | Loading commit data... | |
| languages.texi | Loading commit data... | |
| libgcc.texi | Loading commit data... | |
| loop.texi | Loading commit data... | |
| lto.texi | Loading commit data... | |
| makefile.texi | Loading commit data... | |
| match-and-simplify.texi | Loading commit data... | |
| md.texi | Loading commit data... | |
| objc.texi | Loading commit data... | |
| optinfo.texi | Loading commit data... | |
| options.texi | Loading commit data... | |
| passes.texi | Loading commit data... | |
| plugins.texi | Loading commit data... | |
| portability.texi | Loading commit data... | |
| rtl.texi | Loading commit data... | |
| service.texi | Loading commit data... | |
| sourcebuild.texi | Loading commit data... | |
| standards.texi | Loading commit data... | |
| tm.texi | Loading commit data... | |
| tm.texi.in | Loading commit data... | |
| tree-ssa.texi | Loading commit data... | |
| trouble.texi | Loading commit data... |