GCC modified for the FreeChainXenon project
Find a file
Georg-Johann Lay 2da8c1adcf re PR target/52261 ([avr] Add support for AVR Xmega cores)
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
2012-02-15 13:15:56 +00:00
boehm-gc re PR boehm-gc/48514 ([4.6] boehm gc incorrectly compile using __declspec(dllexport) on i686-w64-mingw32 target) 2012-02-10 17:30:47 +01:00
config Interix resurrection 2012-01-23 06:25:28 +00:00
contrib Add ports for TILE-Gx and TILEPro. 2012-02-14 10:02:21 +00:00
fixincludes adjust comment 2012-01-11 14:31:40 -05:00
gcc re PR target/52261 ([avr] Add support for AVR Xmega cores) 2012-02-15 13:15:56 +00:00
gnattools Makefile.in (LOOSE_WARN): Delete. 2011-10-12 22:41:57 +00:00
include dwarf2.h (enum dwarf_form): Add Fission extensions. 2012-01-26 14:58:11 -08:00
INSTALL
intl
libada Interix resurrection 2012-01-23 06:25:28 +00:00
libcpp Add ports for TILE-Gx and TILEPro. 2012-02-14 10:02:21 +00:00
libdecnumber warnings.m4 (ACX_PROG_CC_WARNING_OPTS): Avoid leading dash in expr call. 2011-12-20 16:54:12 +00:00
libffi re PR libffi/52221 ([libffi] r183675,r184021 needs to be fixed.) 2012-02-13 16:18:14 +01:00
libgcc re PR target/52261 ([avr] Add support for AVR Xmega cores) 2012-02-15 13:15:56 +00:00
libgfortran re PR libfortran/51899 (libgfortran's chmod.c fails to build on MinGW) 2012-01-20 12:32:52 +01:00
libgo re PR go/48407 (libgo/configure --without-libffi doesn't work) 2012-02-14 20:47:35 +00:00
libgomp Add ports for TILE-Gx and TILEPro. 2012-02-14 10:02:21 +00:00
libiberty make-relative-prefix.c (make_relative_prefix_1): Avoid warning about using preprocessor directives inside of macro arguments. 2012-01-26 15:26:25 +01:00
libitm * config/x86/target.h (GTM_longjmp): Correct the .cfi corrections. 2012-02-14 11:46:46 -08:00
libjava re PR java/48512 ([4.6] gcj spec files references incorrectly crtmt.o on i686-w64-mingw32 target) 2012-02-03 10:42:42 +01:00
libmudflap re PR libmudflap/40778 (Mudflap instrumentation missing in cloned function.) 2012-01-19 19:58:02 +01:00
libobjc Additional fixes for FreeBSD-10 build: 2011-11-21 20:22:35 +01:00
libquadmath Additional fixes for FreeBSD-10 build: 2011-11-21 20:22:35 +01:00
libssp Additional fixes for FreeBSD-10 build: 2011-11-21 20:22:35 +01:00
libstdc++-v3 * 30_threads/thread/native_handle/typesizes.cc: Do not run on cygwin. 2012-02-14 23:55:18 +00:00
lto-plugin warnings.m4 (ACX_PROG_CC_WARNING_OPTS): Avoid leading dash in expr call. 2011-12-20 16:54:12 +00:00
maintainer-scripts update_web_docs_svn: Make $DOCSDIR group writable after creating it. 2011-11-21 01:16:24 +00:00
zlib Additional fixes for FreeBSD-10 build: 2011-11-21 20:22:35 +01:00
ABOUT-NLS
ChangeLog Add ports for TILE-Gx and TILEPro. 2012-02-14 10:02:21 +00:00
ChangeLog.tree-ssa
compile
config-ml.in
config.guess oops - omitted from previous delta. 2011-06-06 10:34:35 +00:00
config.rpath
config.sub * config.sub: Update to version 2011-10-29 (added rl78) 2011-11-01 20:56:32 -04:00
configure Adding GCC port for National Semicondutor's CR16 architecture 2012-02-02 10:20:32 +00:00
configure.ac Adding GCC port for National Semicondutor's CR16 architecture 2012-02-02 10:20:32 +00:00
COPYING
COPYING.LIB
COPYING.RUNTIME
COPYING3
COPYING3.LIB
depcomp
install-sh
libtool-ldflags
libtool.m4 Additional fixes for FreeBSD-10 build: 2011-11-21 20:22:35 +01:00
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4
MAINTAINERS Add ports for TILE-Gx and TILEPro. 2012-02-14 10:02:21 +00:00
Makefile.def re PR bootstrap/51686 ("make install-strip-gcc" didn't install liblto-plugin* files) 2012-01-02 10:59:04 +00:00
Makefile.in re PR bootstrap/51686 ("make install-strip-gcc" didn't install liblto-plugin* files) 2012-01-02 10:59:04 +00:00
Makefile.tpl configure.ac: Add tool checks for READELF and READELF_FOR_TARGET. 2011-11-09 13:57:26 -05:00
missing
mkdep
mkinstalldirs
move-if-change
README
symlink-tree
ylwrap

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.