mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-18 19:10:57 +08:00
PR target/13054 * pa-protos.h (indexed_memory_operand, borx_reg_operand, move_dest_operand, move_src_operand): New protypes. (basereg_operand, move_operand, reg_or_nonsymb_mem_operand): Deleted. * pa.c (copy_reg_pointer, indexed_memory_operand, move_dest_operand, move_src_operand): New functions. (basereg_operand, reg_or_nonsymb_mem_operand, move_operand): Delete. (reg_or_0_or_nonsymb_mem_operand): Return false for unscaled indexed address until cse is not expected on targets with non-equivalent space registers. (hppa_legitimize_address): Canonicalize unscaled indexed addresses on targets non-equivalent space registers. (emit_move_sequence): Break out indexed addresses from destination operand. Similarly, break out unscaled indexed addresses from source operand on targets with non-equivalent space registers. Fix REG_POINTER flag when possible. Mark register pointer when creating new pointers. (print_operand): Handle unscaled index addresses. * pa.h (IS_INDEX_ADDR_P, IS_LO_SUM_DLT_ADDR_P): New macro subroutines for EXTRA_CONSTRAINT. (EXTRA_CONSTRAINT): Rework to make more readable. (MODE_OK_FOR_SCALED_INDEXING_P, MODE_OK_FOR_UNSCALED_INDEXING_P): New subroutines for GO_IF_LEGITIMATE_ADDRESS. (GO_IF_LEGITIMATE_ADDRESS): Rework using new subroutines. Allow scaled and unscaled addresses. Canonicalize unscaled indexed addresses on targets with non-equivalent space registers. Document issues in handling indexed address modes on PA-RISC. (PREDICATE_CODES): Update for new and deleted predicates. * pa.md (move_dest_operand, move_src_operand, indexed_memory_operand): Use new predicates in move patterns. Add peephole2 patterns to optimize floating point stores. Fix constrain preferencing in move patterns. Delete patterns for handling unscaled indexed memory loads. Add missing load and store with base-register modification patterns. Correct SFmode floating point store pattern. Add missing zero extension loads. From-SVN: r74614
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
This directory contains the GNU Compiler Collection (GCC). The GNU Compiler Collection is free software. See the file 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.html for how to report bugs usefully.
Description
Languages
C++
31.9%
C
31.3%
Ada
12%
D
6.5%
Go
6.4%
Other
11.5%