Go to file
Georg-Johann Lay 7bc6df2ca1 re PR target/49868 (Implement named address space to place/access data in flash memory)
gcc/
	PR target/49868
	* config/avr/avr.h (base_arch_s): Add field n_segments.
	(ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3,
	ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces.
	(AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines.
	(INIT_EXPANDERS): New define.
	* config/avr/avr-protos.h (avr_mem_pgmx_p): New.
	(avr_init_expanders): New.
	(avr_emit_movmemhi, avr_out_movmem): New.
	(avr_xload_libgcc_p): New.
	* config/avr/avr-c.c (avr_register_target_pragmas): Register
	address spaces __pgm1, __pgm2,  __pgm3,  __pgm4  __pgm5,  __pgmx.
	(avr_cpu_cpp_builtins): Add built-in defines __PGM1,
	__PGM2, __PGM3, __PGM4, __PGM5, __PGMX.
	* config/avr/avr-devices.c (avr_arch_types): Set field n_segments.

	* config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover
	3 bits instead of just 1.
	(xstring_empty, xstring_e, rampz_rtx): New static GTYed variables.
	(progmem_section): Change from section to array of sections.
	(progmem_section_prefix): New static variable.
	(avr_file_start): Print set for __RAMPZ__
	(avr_option_override): Move initialization of RTXes from here...
	(avr_init_expanders): ...to this new function.
	(avr_pgm_segment): New static function.
	(avr_decl_pgm_p): Handle error_mark_node.
	(avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions.
	(avr_out_xload,	avr_find_unused_d_reg): New static functions.
	(expand_prologue, expand_epilogue): Use rampz_rtx.
	(print_operand): Hande CONST_STRING.
	(avr_xload_libgcc_p): New static function.
	(avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM.
	(avr_progmem_p): Return 2 for 24-bit flash address space.
	(avr_out_sbxx_branch): Clean-up code from ASn macros.
	(out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's
	address and print symbolically.
	(avr_asm_named_section, avr_section_type_flags,
	avr_encode_section_info, avr_asm_select_section,
	avr_addr_space_address_mode, avr_addr_space_pointer_mode,
	avr_addr_space_legitimate_address_p, avr_addr_space_convert,
	avr_addr_space_legitimize_address): Handle new address spaces.
	(avr_output_progmem_section_asm_op): New static function.
	(avr_asm_init_sections): Initialize progmem_section[].
	(adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM.
	(avr_const_address_lo16): New static function.
	(avr_assemble_integer): Use it to handle 3-byte integers.
	(avr_emit_movmemhi, avr_out_movmem): New functions.
	
	* config/avr/predicates.md (nox_general_operand): Handle new
	address spaces.
	* config/avr/avr.md (unspec): Add UNSPEC_MOVMEM.
	(adjust_len): Add xload, movmem.
	(SP_ADDR): New define_constants.
	(isa): Add "lpm", "lpmx", "elpm", "elpmx".
	(enabled): Handle them.
	(load<mode>_libgcc): New expander.
	(*load.<mode>.libgcc): Rename to load_<mode>_libgcc.
	(xload8_A, xload<mode>_A): New insn-and-splits.
	(xload_8, xload_<mode>_libgcc, xload_<mode>, loadmem_elpm): New insns.
	(mov<mode>): Handle new address spaces.
	(movmemhi): Rewrite using avr_emit_movmemhi.
	(MOVMEM_r_d): New mode attribute.
	(movmem_<mode>, movmem_qi_elpm): New insns.
	(setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote
	C-code.  Use label instead of hard-coded instrunction lengths.
	
libgcc/
	PR target/49868
	* config/avr/t-avr (LIB1ASMFUNCS): Add _xload_2 _xload_3 _xload_4.
	* config/avr/lib1funcs.S (__xload_2, __xload_3, __xload_4):
	New functions.

From-SVN: r181482
2011-11-18 16:44:00 +00:00
boehm-gc
config libitm: Configure for gas cfi pseudo ops. 2011-11-09 10:09:53 -08:00
contrib Merge from transactional-memory branch. 2011-11-08 11:13:41 +00:00
fixincludes inclhack.def (aix_once_init_[12]): New fixes. 2011-11-16 21:28:07 -05:00
gcc re PR target/49868 (Implement named address space to place/access data in flash memory) 2011-11-18 16:44:00 +00:00
gnattools
include Merge from transactional-memory branch. 2011-11-08 11:13:41 +00:00
INSTALL
intl
libada Makefile.in (stamp-gnatlib-$(RTSDIR)): Don't link s-oscons.ads. 2011-11-12 15:06:18 +00:00
libcpp re PR bootstrap/50857 (The compiler is built with exceptions and RTTI enabled) 2011-11-03 17:17:07 +00:00
libdecnumber
libffi configure.ac (GCC_AS_CFI_PSEUDO_OP): Use it instead of inline check. 2011-11-10 11:34:57 -08:00
libgcc re PR target/49868 (Implement named address space to place/access data in flash memory) 2011-11-18 16:44:00 +00:00
libgfortran PR 51090 Fix r181288 to conform to GNU style 2011-11-11 18:38:11 +02:00
libgo runtime: Use some of 6g runtime.c for easier merging. 2011-11-14 22:26:45 +00:00
libgomp
libiberty Merge from transactional-memory branch. 2011-11-08 11:13:41 +00:00
libitm Support libitm on Solaris 8 and 9/x86 with Sun as 2011-11-18 16:15:59 +00:00
libjava exception.cc (parse_lsda_header): hardcode ttype_encoding for older ARM EABI toolchains. 2011-10-20 13:56:12 +00:00
libmudflap
libobjc Move gthr to toplevel libgcc 2011-11-02 15:28:43 +00:00
libquadmath re PR target/51007 (Quadmath I/O doesn't work on MinGW) 2011-11-07 23:03:51 +01:00
libssp
libstdc++-v3 re PR libstdc++/51209 (The template _M_find_node in hashtable.h has a bad return value) 2011-11-18 16:09:29 +00:00
lto-plugin
maintainer-scripts
zlib
ABOUT-NLS
ChangeLog re PR target/49992 (lto-bootstrap reveals duplicate symbols on x86_64-apple-darwin11) 2011-11-18 10:52:32 +00:00
ChangeLog.tree-ssa
compile
config-ml.in
config.guess
config.rpath
config.sub * config.sub: Update to version 2011-10-29 (added rl78) 2011-11-01 20:56:32 -04:00
configure re PR target/49992 (lto-bootstrap reveals duplicate symbols on x86_64-apple-darwin11) 2011-11-18 10:52:32 +00:00
configure.ac re PR target/49992 (lto-bootstrap reveals duplicate symbols on x86_64-apple-darwin11) 2011-11-18 10:52:32 +00:00
COPYING
COPYING3 COPYING_v3: New file. 2007-07-17 08:37:53 +00:00
COPYING3.LIB
COPYING.LIB
COPYING.RUNTIME
depcomp
install-sh
libtool-ldflags
libtool.m4
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS * MAINTAINERS (Write After Approval): Add myself. 2011-11-18 07:44:19 +00:00
Makefile.def configure.ac: Add tool checks for READELF and READELF_FOR_TARGET. 2011-11-09 13:57:26 -05:00
Makefile.in configure.ac: Add tool checks for READELF and READELF_FOR_TARGET. 2011-11-09 13:57:26 -05: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.