On 07/26/2018 03:13 AM, Alan Hayward wrote:
> Ensure clobber high is a register expression.
> Info is passed through for the error case.
> 
> 2018-07-25  Alan Hayward  <alan.hayw...@arm.com>
> 
>       * emit-rtl.c (verify_rtx_sharing): Check for CLOBBER_HIGH.
>       (copy_insn_1): Likewise.
>       (gen_hard_reg_clobber_high): New gen function.
>       * genconfig.c (walk_insn_part): Check for CLOBBER_HIGH.
>       * genemit.c (gen_exp): Likewise.
>       (gen_emit_seq): Pass through info.
>       (gen_insn): Check for CLOBBER_HIGH.
>       (gen_expand): Pass through info.
>       (gen_split): Likewise.
>       (output_add_clobbers): Likewise.
>       * genrecog.c (validate_pattern): Check for CLOBBER_HIGH.
>       (remove_clobbers): Likewise.
>       * rtl.h (gen_hard_reg_clobber_high): New declaration.
> ---
>  gcc/emit-rtl.c  | 16 ++++++++++++++++
>  gcc/genconfig.c |  1 +
>  gcc/genemit.c   | 51 +++++++++++++++++++++++++++++++--------------------
>  gcc/genrecog.c  |  3 ++-
>  gcc/rtl.h       |  1 +
>  5 files changed, 51 insertions(+), 21 deletions(-)
> 
> diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
> index e4b070486e8..6a32bcbdaf6 100644
> --- a/gcc/emit-rtl.c
> +++ b/gcc/emit-rtl.c
> @@ -6508,6 +6511,19 @@ gen_hard_reg_clobber (machine_mode mode, unsigned int 
> regno)
>           gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (mode, regno)));
>  }
>  
> +static GTY((deletable)) rtx
> +hard_reg_clobbers_high[NUM_MACHINE_MODES][FIRST_PSEUDO_REGISTER];
> +
> +rtx
> +gen_hard_reg_clobber_high (machine_mode mode, unsigned int regno)
> +{
> +  if (hard_reg_clobbers_high[mode][regno])
> +    return hard_reg_clobbers_high[mode][regno];
> +  else
> +    return (hard_reg_clobbers_high[mode][regno]
> +         = gen_rtx_CLOBBER_HIGH (VOIDmode, gen_rtx_REG (mode, regno)));
> +}
You need a function comment on gen_hard_reg_clobber_high.

OK with that change.

jeff

Reply via email to