1
0
Fork 0

DBG: BBlock flag reorganization

This commit is contained in:
Nukem 2015-07-09 22:24:13 -04:00
parent 14c885dff4
commit f5c0d2fd01
1 changed files with 12 additions and 8 deletions

View File

@ -5,16 +5,20 @@
enum BasicBlockFlags : uint
{
BASIC_BLOCK_FLAG_NONE = 0, // No flag
BASIC_BLOCK_FLAG_FUNCTION = (1 << 1), // Scanned; also part of a known function
BASIC_BLOCK_FLAG_ORPHANED = (1 << 2), // No targets ever reach this block
BASIC_BLOCK_FLAG_CALL = (1 << 3), // The block ends with a call
BASIC_BLOCK_FLAG_RET = (1 << 4), // The block ends with a retn
BASIC_BLOCK_FLAG_INDIRECT = (1 << 5), // This block ends with an indirect branch
BASIC_BLOCK_FLAG_INDIRPTR = (1 << 6), // This block ends with an indirect branch; pointer known
BASIC_BLOCK_FLAG_PREPAD = (1 << 7), // Block ends because there was padding afterwards
BASIC_BLOCK_FLAG_PAD = (1 << 8), // Block is only a series of padding instructions
BASIC_BLOCK_FLAG_CUTOFF = (1 << 9), // Ends prematurely because of another JMP to location
BASIC_BLOCK_FLAG_DELETE = (1 << 10), // Delete element at the next possible time
BASIC_BLOCK_FLAG_CUTOFF = (1 << 3), // Ends prematurely because of another JMP to location
BASIC_BLOCK_FLAG_DELETE = (1 << 4), // Delete element at the next possible time
BASIC_BLOCK_FLAG_CALL = (1 << 5), // The block ends with a call
BASIC_BLOCK_FLAG_RET = (1 << 6), // The block ends with a retn
BASIC_BLOCK_FLAG_ABSJMP = (1 << 7), // Branch is absolute
BASIC_BLOCK_FLAG_INDIRECT = (1 << 8), // This block ends with an indirect branch
BASIC_BLOCK_FLAG_INDIRPTR = (1 << 9), // This block ends with an indirect branch; pointer known
BASIC_BLOCK_FLAG_PREPAD = (1 << 10), // Block ends because there was padding afterwards
BASIC_BLOCK_FLAG_PAD = (1 << 11), // Block is only a series of padding instructions
};
struct BasicBlock