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: default_secondary_reload: class vs scratch_class


DJ Delorie <dj@redhat.com> writes:

> In default_secondary_reload, we have this code:
> 
> 	  if (reg_class_subset_p (reload_class, insn_class))
> 	    {
> 	      gcc_assert (scratch_class == class);
> 	      class = NO_REGS;
> 
> Why doesn't it allow the scratch class to be a superset of the desired
> class?  I'm trying to build am33_2.0-linux-gnu, and I'm getting to
> here with scratch_class GENERAL_REGS and class DATA_OR_EXTENDED_REGS.
> reload_class and insn_class are ADDRESS_REGS.

In general the reload_in and reload_out instructions should match
SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS.  It's
a sanity check.  What reason is there to have scratch_class be
something else?

Ian


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