IDA SDK

- Main Page
- Header Files
- Classes
- Modules

Macros
Switch info flags

## Detailed Description

Used by switch_info_t::flags.

## Macros
#define | SWI_SPARSE 0x01
| sparse switch (value table present) More...
#define | SWI_V32 0x02
| 32-bit values in table
#define | SWI_J32 0x04
| 32-bit jump offsets
#define | SWI_VSPLIT 0x08
| value table is split (only for 32-bit values)
#define | SWI_DEFAULT 0x10
| default case is present
#define | SWI_END_IN_TBL 0x20
| switchend in table (default entry)
#define | SWI_JMP_INV 0x40
| jumptable is inversed. More...
#define | SWI_SHIFT_MASK 0x180
| use formula (element<<shift) + elbase to find jump targets
#define | SWI_ELBASE 0x200
| elbase is present (if not and shift!=0, endof(jumpea) is used)
#define | SWI_JSIZE 0x400
| jump offset expansion bit
#define | SWI_VSIZE 0x800
| value table element size expansion bit
#define | SWI_SEPARATE 0x1000
| create an array of individual elements (otherwise separate items)
#define | SWI_SIGNED 0x2000
| jump table entries are signed
#define | SWI_CUSTOM 0x4000
| custom jump table. More...
#define | SWI_EXTENDED 0x8000
| this is a switch_info_ex_t

## Macro Definition Documentation

#define SWI_SPARSE 0x01

sparse switch (value table present)

otherwise lowcase present

#define SWI_JMP_INV 0x40

jumptable is inversed.

(last entry is for first entry in values table)

#define SWI_CUSTOM 0x4000

custom jump table.

processor_t::create_switch_xrefs will be called to create code xrefs for the table. it must return 2. custom jump table must be created by the module (or see SWI2_STDTBL)