97e242b0a7
* config/ia64/ia64-protos.h: Remove duplicates. Update for massive code rearrangements. * config/ia64/ia64.c (ia64_arpfs_regno): Remove. (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove. (ia64_local_regs, ia64_need_regstk): Remove. (ar_ccv_reg_operand): New. (ia64_gp_save_reg): New. (struct ia64_frame_info): Combine most of the size elements; add new gr save elements. (find_gr_spill): New. (next_scratch_gr_reg): New. (mark_reg_gr_used_mask): New. (ia64_compute_frame_size): Rewrite. Allocate special AR regs to GR backing store regs when possible. (ia64_initial_elimination_offset): New. (ia64_rap_fp_offset): Remove. (save_restore_insns): Remove. (setup_spill_pointers): New. (finish_spill_pointers): New. (spill_restore_mem): New. (do_spill, do_restore): New. (ia64_expand_prologue): Rewrite to use them. (ia64_expand_epilogue): Likewise. (ia64_direct_return): Update for current_frame_info changes. (ia64_function_prologue): Simplify .prologue emission. Emit .spill when needed. (ia64_setup_incoming_varargs): Don't ever emit rtl. (ia64_dbx_register_number): New. (ia64_initialize_trampoline): New. (ia64_secondary_reload_class): Request GR_REGS for integer arithmetic destined for FR_REGS. (ia64_init_machine_status): Don't reset return_address_pointer_rtx. (ia64_mark_machine_status): Mark ia64_gp_save. (rws_access_regno): Rename from rws_access_reg; don't treat predicates specially. (rws_access_reg): New. Update all callers. (rtx_needs_barrier): Remove dead unspecs. (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit. (ia64_encode_section_info): Silence signed/unsigned warnings. (spill_offset, sp_offset, spill_offset_emitted): Remove. (tmp_reg, tmp_saved): Remove. (process_set): Rewrite to expect complicated bits via REG_FRAME_RELATED_EXPR. (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit in the use of ar.ccv; never set RTX_UNCHANGING_P. (ia64_expand_op_and_fetch): Likewise. (ia64_expand_compare_and_swap): Likewise. (ia64_expand_builtin): Likewise. * config/ia64/ia64.h (AR_UNAT_REGNUM): New. (FIRST_PSEUDO_REGISTER): Update. (AR_M_REGNO_P): Update. (FIXED_REGS): Don't mark three local registers as used. (EXTRA_CC_MODES): New. (SELECT_CC_MODE): New. (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode. (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates. (FRAME_GROWS_DOWNWARD): Unset. (STARTING_FRAME_OFFSET): Zero. (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer. (INITIAL_ELIMINATION_OFFSET): Defer to out of line function. (HARD_FRAME_POINTER_REGNUM): New. (CAN_DEBUG_WITHOUT_FP): Define. (TRAMPOLINE_TEMPLATE): Remove. (TRAMPOLINE_SIZE): Lower to 32. (TRAMPOLINE_ALIGNMENT): Lower to 64. (INITIALIZE_TRAMPOLINE): Defer to out of line function. (PREDICATE_CODES): Update. (struct machine_function): Add ia64_gp_save. * config/ia64/ia64.md: Purge unused unspecs. (movsi patterns): Allow moves to/from AR_M_REGS. (movdi patterns): Allow moves to/from p0. (call patterns): Move most setjmp hackery to ia64_gp_save_reg. (gr_spill, gr_restore): Indicate ar.unat read/written. (nonlocal_goto): Don't pass old frame_pointer. (nonlocal_goto_receiver): Remove. (exception_receiver): New. (builtin_setjmp_setup): New. (builtin_setjmp_receiver): New. * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle. (__ia64_nonlocal_goto): Bundle. Don't kill r7. (__ia64_restore_stack_nonlocal): Likewise. (__ia64_trampoline): New. * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line function. * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline. From-SVN: r35568 |
||
---|---|---|
boehm-gc | ||
config | ||
contrib | ||
etc | ||
gcc | ||
include | ||
INSTALL | ||
libchill | ||
libf2c | ||
libffi | ||
libiberty | ||
libio | ||
libjava | ||
libobjc | ||
libstdc++ | ||
libstdc++-v3 | ||
texinfo | ||
zlib | ||
.cvsignore | ||
ChangeLog | ||
config-ml.in | ||
config.guess | ||
config.if | ||
config.sub | ||
configure | ||
configure.in | ||
COPYING | ||
COPYING.LIB | ||
djunpack.bat | ||
install-sh | ||
libtool.m4 | ||
ltcf-c.sh | ||
ltcf-cxx.sh | ||
ltcf-gcj.sh | ||
ltconfig | ||
ltmain.sh | ||
MAINTAINERS | ||
Makefile.in | ||
missing | ||
mkdep | ||
mkinstalldirs | ||
move-if-change | ||
README | ||
symlink-tree | ||
ylwrap |
README for GNU development tools This directory contains various GNU compilers, assemblers, linkers, debuggers, etc., plus their support routines, definitions, and documentation. Check the INSTALL directory for detailed configuration and installation instructions. Much of the code and documentation enclosed is copyright by the Free Software Foundation, Inc. See the file COPYING or COPYING.LIB in the various directories, for a description of the GNU General Public License terms under which you can copy the files. REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info on where and how to report problems.