This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Unexpected offsets when eliminating SP


Michael Hope wrote:
(define_expand "reload_outsi"
  [(parallel [(match_operand 0 "memory_operand" "=m")

Perhaps the problem is that the output operand is an unallocated pseudo-reg instead of a MEM. Looking at other targets that have reload_out* patterns, I see that they have predicates that accept both mem and pseudo-regs here.


I'm a bit confused with the documentation versus the ports.  For
example, REGNO_MODE_CODE_OK_FOR_BASE_P doesn't appear to need a strict
form according to the documentation but the bfin port has a strict and
non-strict version.  Most of the ports have a REG_OK_FOR_BASE_P macro
with strict and non-strict versions macro but it's not documented,
isn't used, and might have been removed around gcc 4.0.

The current docs say that REGNO_MODE_CODE_OK_FOR_BASE_P has strict and non-strict variants.


The REG_OK_FOR_BASE_P stuff is obsolete. That is something that could be cleaned up. However, since most ports are both defining it and using it in the GO_IF_LEGITIMATE_ADDRESS macros, it is something that will take some work, and it might be simpler to just leave the macros there.

Jim


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]