This patch adds absolute jump table support for rs6000.
authorHaochen Gui <guihaoc@gcc.gnu.org>
Thu, 26 Nov 2020 06:23:45 +0000 (14:23 +0800)
committerHaochen Gui <guihaoc@gcc.gnu.org>
Fri, 27 Nov 2020 01:11:20 +0000 (09:11 +0800)
commit3493b0c32815faf003cbd18dd2c1ff30818f5770
treede324fb40c91dc5aa019223a26be49b2db1d3015
parentd48df6f24ba999ad662d3b7c30f7e2180e842149
This patch adds absolute jump table support for rs6000.

gcc/ChangeLog:

* config/rs6000/rs6000-protos.h (rs6000_output_addr_vec_elt): Declare.
* config/rs6000/rs6000.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC):
Define.
(rs6000_gen_pic_addr_diff_vec, rs6000_output_addr_vec_elt): Implement.
* config/rs6000/rs6000.h (CASE_VECTOR_PC_RELATIVE,
CASE_VECTOR_MODE, ASM_OUTPUT_ADDR_VEC_ELT): Define.
* config/rs6000/rs6000.md (tablejump<mode>_absolute,
tablejump<mode>_absolute_nospec): New expanders.
* config/rs6000/rs6000.opt (mrelative-jumptables): New.
gcc/config/rs6000/rs6000-protos.h
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.h
gcc/config/rs6000/rs6000.md
gcc/config/rs6000/rs6000.opt