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
Name |
Last commit
|
Last update |
---|---|---|
INSTALL | Loading commit data... | |
boehm-gc | Loading commit data... | |
config | Loading commit data... | |
contrib | Loading commit data... | |
fastjar | Loading commit data... | |
gcc | Loading commit data... | |
include | Loading commit data... | |
intl | Loading commit data... | |
libf2c | Loading commit data... | |
libffi | Loading commit data... | |
libiberty | Loading commit data... | |
libjava | Loading commit data... | |
libobjc | Loading commit data... | |
libstdc++-v3 | Loading commit data... | |
maintainer-scripts | Loading commit data... | |
zlib | Loading commit data... | |
.cvsignore | Loading commit data... | |
ABOUT-NLS | Loading commit data... | |
COPYING | Loading commit data... | |
COPYING.LIB | Loading commit data... | |
ChangeLog | Loading commit data... | |
MAINTAINERS | Loading commit data... | |
Makefile.def | Loading commit data... | |
Makefile.in | Loading commit data... | |
Makefile.tpl | Loading commit data... | |
README | Loading commit data... | |
README.SCO | Loading commit data... | |
config-ml.in | Loading commit data... | |
config.guess | Loading commit data... | |
config.if | Loading commit data... | |
config.rpath | Loading commit data... | |
config.sub | Loading commit data... | |
configure | Loading commit data... | |
configure.in | Loading commit data... | |
install-sh | Loading commit data... | |
libtool.m4 | Loading commit data... | |
ltcf-c.sh | Loading commit data... | |
ltcf-cxx.sh | Loading commit data... | |
ltcf-gcj.sh | Loading commit data... | |
ltconfig | Loading commit data... | |
ltmain.sh | Loading commit data... | |
missing | Loading commit data... | |
mkdep | Loading commit data... | |
mkinstalldirs | Loading commit data... | |
move-if-change | Loading commit data... | |
symlink-tree | Loading commit data... | |
ylwrap | Loading commit data... |