llvm::MachineJumpTableInfo::JTEntryKind

JTEntryKind - This enum indicates how each entry of the jump table is represented and emitted.

Synopsis

Declared in <llvm/CodeGen/MachineJumpTableInfo.h>

enum JTEntryKind;

Members

NameDescription
EK_BlockAddress EK_BlockAddress - Each entry is a plain address of block, e.g.: .word LBB123
EK_GPRel64BlockAddress EK_GPRel64BlockAddress - Each entry is an address of block, encoded with a relocation as gp-relative, e.g.: .gpdword LBB123
EK_GPRel32BlockAddress EK_GPRel32BlockAddress - Each entry is an address of block, encoded with a relocation as gp-relative, e.g.: .gprel32 LBB123
EK_LabelDifference32 EK_LabelDifference32 - Each entry is the address of the block minus the address of the jump table. This is used for PIC jump tables where gprel32 is not supported. e.g.: .word LBB123 - LJTI1_2 If the .set directive is supported, this is emitted as: .set L4_5_set_123, LBB123 - LJTI1_2 .word L4_5_set_123
EK_LabelDifference64 EK_LabelDifference64 - Each entry is the address of the block minus the address of the jump table. This is used for PIC jump tables where gprel64 is not supported. e.g.: .quad LBB123 - LJTI1_2
EK_Inline EK_Inline - Jump table entries are emitted inline at their point of use. It is the responsibility of the target to emit the entries.
EK_Custom32 EK_Custom32 - Each entry is a 32-bit value that is custom lowered by the TargetLowering::LowerCustomJumpTableEntry hook.