> md.texi says > > The @samp{tablejump} insn is always the last insn before the jump > table it uses. Its assembler code normally has no need to use the > second operand, but you should incorporate it in the RTL pattern so > that the jump optimizer will not delete the table as unreachable code. > > but rtl.texi says > > A @code{jump_table_data} insn is a placeholder for the jump-table data > of a @code{casesi} or @code{tablejump} insn. They are placed after > a @code{tablejump_p} insn. A @code{jump_table_data} insn is not part o > a basic blockm but it is associated with the basic block that ends with > the @code{tablejump_p} insn. The @code{PATTERN} of a @code{jump_table_data} > is always either an @code{addr_vec} or an @code{addr_diff_vec}, and a > @code{jump_table_data} insn is always preceded by a @code{code_label}. The > @code{tablejump_p} insn refers to that @code{code_label} via its > @code{JUMP_LABEL}. > > Which of these two is true?
The latter I'd say, see skip_insns_after_block. -- Eric Botcazou