6455a49ed4
2013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * config/s390/s390.c (struct s390_frame_layout): New field gpr_save_slots. (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros. (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of regs_ever_clobbered to char*. (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead of cfun->has_nonlocal_label. Ignore frame related restore INSNs. (s390_register_info): Enable FPR save slots. Move/Copy some functionality into ... (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr) (s390_register_info_stdarg_gpr, s390_optimize_register_info): New function. (s390_frame_info): Do gpr slot allocation here now. stdarg does not imply a stack frame. (s390_init_frame_layout): Remove variable clobbered_regs. (s390_update_register_info): Remove function. (s390_hard_regno_rename_ok): Call-saved regs without a save slot cannot be used for register renaming. (s390_hard_regno_scratch_ok): New function. (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook. (s390_initial_elimination_offset): Change offset calculation of the return address pointer. (save_gprs): Deal with only r6 being saved from the call-saved regs. (restore_gprs): Set frame related flag. (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions. (s390_emit_prologue): Call s390_register_info instead of s390_update_frame_layout. Call s390_save_gprs_to_fprs. (s390_emit_epilogue): Call s390_restore_gprs_from_fprs. (s390_optimize_prologue): Call s390_optimize_register_info. Try to remove also FPR slot save/restore INSNs. Remove frame related flags from restore INSNs. From-SVN: r203303 |
||
---|---|---|
boehm-gc | ||
config | ||
contrib | ||
fixincludes | ||
gcc | ||
gnattools | ||
include | ||
INSTALL | ||
intl | ||
libada | ||
libatomic | ||
libbacktrace | ||
libcpp | ||
libdecnumber | ||
libffi | ||
libgcc | ||
libgfortran | ||
libgo | ||
libgomp | ||
libiberty | ||
libitm | ||
libjava | ||
libmudflap | ||
libobjc | ||
libquadmath | ||
libsanitizer | ||
libssp | ||
libstdc++-v3 | ||
libvtv | ||
lto-plugin | ||
maintainer-scripts | ||
zlib | ||
.gitignore | ||
ABOUT-NLS | ||
ChangeLog | ||
ChangeLog.tree-ssa | ||
compile | ||
config-ml.in | ||
config.guess | ||
config.rpath | ||
config.sub | ||
configure | ||
configure.ac | ||
COPYING | ||
COPYING3 | ||
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 | ||
Makefile.def | ||
Makefile.in | ||
Makefile.tpl | ||
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. Copyright years on GCC source files may be listed using range notation, e.g., 1987-2012, indicating that every year in the range, inclusive, is a copyrightable year that could otherwise be listed individually.