RFA: fix sh64-elf build failure on mainline

Ian Lance Taylor ian@airs.com
Thu Nov 24 00:13:00 GMT 2005


Joern RENNECKE <joern.rennecke@st.com> writes:

> 2005-11-23  J"orn Rennecke <joern.rennecke@st.com>
> 
> 	* caller-save.c: (this_insn_sets): Move into:
> 	(save_call_clobbered_regs).
> 	(mark_set_regs): Get this_insn_sets from data.
> 
> 	(save_call_clobbered_regs): Take sets of the return value by
> 	sibcalls into account.


> -	      note_stores (PATTERN (insn), mark_set_regs, NULL);
> +	      note_stores (PATTERN (insn), mark_set_regs, this_insn_sets);

You can't do that safely, because HARD_REG_SET is not an array if
FIRST_PSEUDO_REGISTER <= HOST_BITS_PER_WIDEST_FAST_INT, which can be
true for several targets.  I think the only reliable way to pass down
this_insn_sets is to put it in a struct with one field and pass the
address of the struct.

If you fix that, the patch is OK.

Thanks.

Ian



More information about the Gcc-patches mailing list