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.