Hi!

Sorry this took so long.

On Thu, Oct 15, 2020 at 04:46:01PM +0800, HAO CHEN GUI wrote:
> On 29/9/2020 上午 6:46, Segher Boessenkool wrote:
> >[ Please do not insert patches into discussions ]

So, please send new patches as a new thread.  This makes it much easier
to handle.  If you want to reply to something in the old thread just do
it there, but send the new patch not as a reply.

>       * config/rs6000/rs6000.opt (mrelative-jumptables): Add
>       mrelative-jumptables.

Just "New." or "New flag." or similar?

> +/* Implement TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC.
> +   Marco relative jumpstables indicates addr_diff_vec or addr_vec.  */

The documentation says
  Return true to generate ADDR_DIF_VEC table or false to generate
  ADDR_VEC table for jumps in case of -fPIC.
but you can just leave out that last line completely.

> +      if (rs6000_relative_jumptables)
> +     {
> +       if (TARGET_32BIT)
> +         jump = gen_tablejumpsi_nospec (operands[0], operands[1], ccreg);
> +       else
> +         jump = gen_tablejumpdi_nospec (operands[0], operands[1], ccreg);
> +     }
>        else
> -     jump = gen_tablejumpdi_nospec (operands[0], operands[1], ccreg);
> +     jump = gen_tablejump_absolute_nospec (Pmode, operands[0], operands[1],
> +                                           ccreg);
>        emit_jump_insn (jump);

It now is
  @tablejump<mode>_nospec
so this code will become something like

      if (rs6000_relative_jumptables)
        jump = gen_tablejumpsi_nospec (Pmode, operands[0], operands[1], ccreg);
      else
        jump = gen_tablejump_absolute_nospec (Pmode, operands[0], operands[1],
                                              ccreg);
      emit_jump_insn (jump);


Okay for trunk with those changes.  Thank you!


Segher

Reply via email to