libgcc/ PR target/52261 * config/avr/lib1funcs.S (__prologue_saves__): Handle AVR_XMEGA (__epilogue_restores__): Ditto. gcc/ PR target/52261 * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2, avrxmega4, avrxmega5, avrxmega6, avrxmega7. Rewrite initializers for .macro. * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs: avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4 atxmega32d4, atxmega32x1. avrxmega4: atxmega64a3, atxmega64d3. avrxmega5: atxmega64a1, atxmega64a1u. avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3, atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3. avrxmega7: atxmega128a1, atxmega128a1u. * config/avr/multilib.h: Regenerate. * config/avr/t-multilib: Regenerate. * config/avr/avr-tables.opt: Regenerate. * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2, ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7. (struct base_arch_s): Rename reserved to xmega_p. Rename reserved2 to have_rampd. (AVR_XMEGA): New define. (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines. (AVR_HAVE_RAMPZ): Change definition to fit xmega. * config/avr/predicates.md (io_address_operand): Take into account SFR offset. (low_io_address_operand): Ditto. (high_io_address_operand): Ditto. * config/avr/avr.md (isa): Add alternatives no_xmega, xmega. (enabled, movhi_sp_r): Use them. * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use cpp_define_formatted to built-in define __AVR_ARCH__. (__AVR_XMEGA__): New built-in define. (__AVR_HAVE_RAMPD__): New built-in define. (__AVR_HAVE_RAMPX__): New built-in define. (__AVR_HAVE_RAMPY__): New built-in define. (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it. * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy. (avr_option_override): Initialize them. (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx. (avr_init_expanders): Initialize them. No more block several calls. (emit_push_sfr): New static function. (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed. Handle AVR_XMEGA. (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed. (avr_print_operand): Print addreeses as symbols for RAMPX, RAMPY, RAMPD, CCP. (output_movhi): Handle AVR_XMEGA when writing to SP. (avr_out_movhi_mr_r_xmega): New static function. (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA. (avr_file_start): Print symbol defines for __RAMPX__, __RAMPY__, __RAMPD__, __CCP__ as needed. Co-Authored-By: Anatoly Sokolov <aesok@post.ru> Co-Authored-By: Eric Weddington <eric.weddington@atmel.com> From-SVN: r184269
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
config | Loading commit data... | |
soft-fp | Loading commit data... | |
ChangeLog | Loading commit data... | |
Makefile.in | Loading commit data... | |
config.host | Loading commit data... | |
configure | Loading commit data... | |
configure.ac | Loading commit data... | |
crtstuff.c | Loading commit data... | |
dfp-bit.c | Loading commit data... | |
dfp-bit.h | Loading commit data... | |
divmod.c | Loading commit data... | |
empty.mk | Loading commit data... | |
emutls.c | Loading commit data... | |
enable-execute-stack-empty.c | Loading commit data... | |
enable-execute-stack-mprotect.c | Loading commit data... | |
fixed-bit.c | Loading commit data... | |
fixed-bit.h | Loading commit data... | |
fixed-obj.mk | Loading commit data... | |
floatunsidf.c | Loading commit data... | |
floatunsisf.c | Loading commit data... | |
floatunsitf.c | Loading commit data... | |
floatunsixf.c | Loading commit data... | |
fp-bit.c | Loading commit data... | |
fp-bit.h | Loading commit data... | |
gbl-ctors.h | Loading commit data... | |
gen-fixed.sh | Loading commit data... | |
generic-morestack-thread.c | Loading commit data... | |
generic-morestack.c | Loading commit data... | |
generic-morestack.h | Loading commit data... | |
gstdint.h | Loading commit data... | |
gthr-posix.h | Loading commit data... | |
gthr-single.h | Loading commit data... | |
gthr.h | Loading commit data... | |
libgcc-std.ver.in | Loading commit data... | |
libgcc2.c | Loading commit data... | |
libgcc2.h | Loading commit data... | |
libgcov.c | Loading commit data... | |
longlong.h | Loading commit data... | |
memcmp.c | Loading commit data... | |
memcpy.c | Loading commit data... | |
memmove.c | Loading commit data... | |
memset.c | Loading commit data... | |
mkheader.sh | Loading commit data... | |
mkmap-flat.awk | Loading commit data... | |
mkmap-symver.awk | Loading commit data... | |
shared-object.mk | Loading commit data... | |
siditi-object.mk | Loading commit data... | |
static-object.mk | Loading commit data... | |
sync.c | Loading commit data... | |
udivmod.c | Loading commit data... | |
udivmodsi4.c | Loading commit data... | |
unwind-arm-common.inc | Loading commit data... | |
unwind-c.c | Loading commit data... | |
unwind-compat.c | Loading commit data... | |
unwind-compat.h | Loading commit data... | |
unwind-dw2-fde-compat.c | Loading commit data... | |
unwind-dw2-fde-dip.c | Loading commit data... | |
unwind-dw2-fde.c | Loading commit data... | |
unwind-dw2-fde.h | Loading commit data... | |
unwind-dw2.c | Loading commit data... | |
unwind-dw2.h | Loading commit data... | |
unwind-generic.h | Loading commit data... | |
unwind-pe.h | Loading commit data... | |
unwind-sjlj.c | Loading commit data... | |
unwind.inc | Loading commit data... |