Go to file
Ian Bolton 3aee198212 This patch adds new define_insn patterns for epilogue with integer
registers.

The patterns can handle pop multiple with writeback and return (loading into
PC directly).
To handle return, the patterns use a new special predicate
pop_multiple_return, that uses ldm_stm_operation_p function from a previous
patch. To output assembly, the patterns use a new function
arm_output_multireg_pop.

This patch also adds a new function arm_emit_multi_reg_pop
that emits RTL that matches the new pop patterns for integer registers.
This is a helper function for epilogue expansion. It is used by a later
patch.

2012-06-18  Ian Bolton  <ian.bolton@arm.com>
            Sameera Deshpande  <sameera.deshpande@arm.com>
            Greta Yorsh  <greta.yorsh@arm.com>

        * config/arm/arm.md (load_multiple_with_writeback) New define_insn.
        (load_multiple, pop_multiple_with_writeback_and_return) Likewise.
        (pop_multiple_with_return, ldr_with_return) Likewise.
        * config/arm/predicates.md (pop_multiple_return) New special predicate.
        * config/arm/arm-protos.h (arm_output_multireg_pop) New declaration.
        * config/arm/arm.c (arm_output_multireg_pop) New function.
        (arm_emit_multi_reg_pop): New function.


Co-Authored-By: Greta Yorsh <greta.yorsh@arm.com>
Co-Authored-By: Sameera Deshpande <sameera.deshpande@arm.com>

From-SVN: r188739
2012-06-18 18:24:25 +01:00
INSTALL
boehm-gc Regenerate configure files for libtool.m4 change 2012-05-16 15:11:18 -07:00
config mt-sde: Fix typos. 2012-05-29 16:54:57 +01:00
contrib The new mklog script prints three spaces after the date part, which is wrong. 2012-06-06 08:50:55 -04:00
fixincludes configure.ac: Use GCC_AC_FUNC_MMAP_BLACKLIST instead of gcc_AC_FUNC_MMAP_BLACKLIST. 2012-05-29 21:28:57 +02:00
gcc This patch adds new define_insn patterns for epilogue with integer 2012-06-18 18:24:25 +01:00
gnattools Remove obsolete IRIX 6.5 support 2012-03-14 16:33:37 +00:00
include plugin-api.h (ld_plugin_output_file_type): Add LDPO_PIE. 2012-06-12 21:35:42 +00:00
intl Fix unportable shell quoting. 2010-09-27 20:19:41 +00:00
libada Makefile.in (GNATLIBCFLAGS_FOR_C): Remove $(PIC_FLAG_FOR_TARGET). 2012-06-11 15:24:12 +00:00
libatomic re PR other/53231 (libatomic/tas_n.c💯10: error: 'ret' undeclared (first use in this function)) 2012-05-22 23:54:32 +00:00
libcpp * cpplib.pot: Regenerate. 2012-06-13 22:48:00 +01:00
libdecnumber warnings.m4 (ACX_PROG_CC_WARNING_OPTS): Avoid leading dash in expr call. 2011-12-20 16:54:12 +00:00
libffi Regenerate configure files for libtool.m4 change 2012-05-16 15:11:18 -07:00
libgcc sfp-machine.h (FP_HANDLE_EXCEPTIONS): Use __builtin_expect when checking for exceptions. 2012-06-17 15:54:53 +02:00
libgfortran PR 53456 Fix incorrect ChangeLog entry. 2012-06-04 22:15:21 +03:00
libgo compiler, reflect: Quote package path with tabs. 2012-06-14 05:04:04 +00:00
libgomp re PR c/53580 (Internal Segmentation fault in nested "omp parallel", "omp parallel for" and "omp parallel for reduction" Directives) 2012-06-07 08:36:55 +02:00
libiberty demangle-expected: Add regression test. 2012-05-22 13:55:02 +00:00
libitm eh_cpp.cc: Fix __cxa_end_catch declaration. 2012-05-21 22:48:00 +00:00
libjava locks.h (compare_and_swap): Use __sync_bool_compare_and_swap. 2012-06-15 08:08:04 +00:00
libmudflap * mf-impl.h: Fix typo. 2012-05-29 20:21:05 +01:00
libobjc Regenerate configure files for libtool.m4 change 2012-05-16 15:11:18 -07:00
libquadmath re PR target/51007 (Quadmath I/O doesn't work on MinGW) 2012-05-31 18:51:27 +00:00
libssp re PR target/51007 (Quadmath I/O doesn't work on MinGW) 2012-05-31 18:51:27 +00:00
libstdc++-v3 re PR libstdc++/53578 (include/ext/concurrence.h relies on ill-formed narrowing conversions) 2012-06-15 01:27:29 +01:00
lto-plugin * lto-plugin.c: Fix typo. 2012-05-29 20:21:25 +01:00
maintainer-scripts crontab: Enable snapshots from gcc-4_7-branch. 2012-03-22 09:25:49 +00:00
zlib Regenerate configure files for libtool.m4 change 2012-05-16 15:11:18 -07:00
ABOUT-NLS
COPYING
COPYING.LIB
COPYING.RUNTIME
COPYING3
COPYING3.LIB
ChangeLog * ChangeLog: Fix whitespace. 2012-06-13 12:43:26 +02:00
ChangeLog.tree-ssa
MAINTAINERS MAINTAINERS (Write After Approval): Add myself. 2012-05-29 20:18:29 +00:00
Makefile.def Add libatomic as a target library. 2012-05-01 08:48:28 -07:00
Makefile.in Makefile.tpl (gcc-no-fixedincludes): Rename into ... 2012-05-16 13:37:14 +00:00
Makefile.tpl Makefile.tpl (gcc-no-fixedincludes): Rename into ... 2012-05-16 13:37:14 +00:00
README
compile
config-ml.in MAINTAINERS (crx port, [...]): Remove. 2011-03-22 19:58:18 +00:00
config.guess oops - omitted from previous delta. 2011-06-06 10:34:35 +00:00
config.rpath Remove freebsd1 from libtool.m4 macros and config.rpath. 2011-02-13 11:45:53 +00:00
config.sub Update config.sub to 2012-04-18 version from official repo. 2012-04-25 15:48:28 +00:00
configure re PR bootstrap/50461 (mpfr.h found in mpfr-3.1.0/src instead of mpfr-3.0.1/. as previously) 2012-05-09 16:20:17 +00:00
configure.ac re PR bootstrap/50461 (mpfr.h found in mpfr-3.1.0/src instead of mpfr-3.0.1/. as previously) 2012-05-09 16:20:17 +00:00
depcomp
install-sh
libtool-ldflags
libtool.m4 Add x32 support to libtool.m4 2012-05-15 09:07:28 -07:00
ltgcc.m4
ltmain.sh backport: ltmain.sh (relink): Use absolute path when hardcoding with -L. 2011-01-13 18:51:10 +00:00
ltoptions.m4 Sync from git Libtool and regenerate. 2009-12-05 17:18:53 +00:00
ltsugar.m4
ltversion.m4 Sync from git Libtool and regenerate. 2009-12-05 17:18:53 +00:00
lt~obsolete.m4 Sync from git Libtool and regenerate. 2009-12-05 17:18:53 +00:00
missing
mkdep
mkinstalldirs
move-if-change Import move-if-change script from gnulib. 2011-02-12 15:48:30 +00:00
symlink-tree
ylwrap

README

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.