This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/13054] compile/980310-3.f: insn does not satisfy its constraints
- From: "cvs-commit at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 14 Dec 2003 07:26:39 -0000
- Subject: [Bug target/13054] compile/980310-3.f: insn does not satisfy its constraints
- References: <20031114172421.13054.danglin@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2003-12-14 07:26 -------
Subject: Bug 13054
CVSROOT: /cvs/gcc
Module name: gcc
Changes by: danglin@gcc.gnu.org 2003-12-14 07:26:19
Modified files:
gcc : ChangeLog
gcc/config/pa : pa-protos.h pa.c pa.h pa.md
Log message:
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.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.1992&r2=2.1993
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/pa/pa-protos.h.diff?cvsroot=gcc&r1=1.28&r2=1.29
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/pa/pa.c.diff?cvsroot=gcc&r1=1.233&r2=1.234
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/pa/pa.h.diff?cvsroot=gcc&r1=1.206&r2=1.207
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/pa/pa.md.diff?cvsroot=gcc&r1=1.135&r2=1.136
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13054