This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: default_secondary_reload: class vs scratch_class
- From: Ian Lance Taylor <ian at airs dot com>
- To: DJ Delorie <dj at redhat dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: 09 May 2006 20:57:37 -0700
- Subject: Re: default_secondary_reload: class vs scratch_class
- References: <200605092221.k49MLFt3011364@greed.delorie.com>
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