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