Basic Blocks


Enumerations

enum  LEVEL_CORE::BBL_TYPE {
  LEVEL_CORE::BBL_TYPE_INVALID,
  LEVEL_CORE::BBL_TYPE_UBREAK,
  LEVEL_CORE::BBL_TYPE_CBREAK,
  LEVEL_CORE::BBL_TYPE_STOP,
  LEVEL_CORE::BBL_TYPE_UCALL_UNKNOWN,
  LEVEL_CORE::BBL_TYPE_UCALL_FUN,
  LEVEL_CORE::BBL_TYPE_UCALL_OS,
  LEVEL_CORE::BBL_TYPE_CCALL_OS,
  LEVEL_CORE::BBL_TYPE_CCALL_UNKNOWN,
  LEVEL_CORE::BBL_TYPE_CCALL_FUN,
  LEVEL_CORE::BBL_TYPE_NORMAL,
  LEVEL_CORE::BBL_TYPE_CBRANCH,
  LEVEL_CORE::BBL_TYPE_UBRANCH,
  LEVEL_CORE::BBL_TYPE_COUNTED,
  LEVEL_CORE::BBL_TYPE_SWPIPELINED,
  LEVEL_CORE::BBL_TYPE_CHECK,
  LEVEL_CORE::BBL_TYPE_PREFETCH,
  LEVEL_CORE::BBL_TYPE_UJUMP,
  LEVEL_CORE::BBL_TYPE_UJUMP_DYNLINK,
  LEVEL_CORE::BBL_TYPE_UJUMP_THUNK,
  LEVEL_CORE::BBL_TYPE_UJUMP_TRAMPOLINE,
  LEVEL_CORE::BBL_TYPE_UBRANCH_TRAMPOLINE,
  LEVEL_CORE::BBL_TYPE_CJUMP,
  LEVEL_CORE::BBL_TYPE_CJUMP_SWITCH,
  LEVEL_CORE::BBL_TYPE_STUB,
  LEVEL_CORE::BBL_TYPE_URETURN,
  LEVEL_CORE::BBL_TYPE_CRETURN,
  LEVEL_CORE::BBL_TYPE_DATA,
  LEVEL_CORE::BBL_TYPE_DATA_IADDR,
  LEVEL_CORE::BBL_TYPE_DATA_ARGBLOCK,
  LEVEL_CORE::BBL_TYPE_DATA_SWITCH1,
  LEVEL_CORE::BBL_TYPE_DATA_LAST,
  LEVEL_CORE::BBL_TYPE_CONTAINER,
  LEVEL_CORE::BBL_TYPE_UNKNOWN,
  LEVEL_CORE::BBL_TYPE_VMSVC,
  LEVEL_CORE::BBL_TYPE_LOOKUP,
  LEVEL_CORE::BBL_TYPE_EMU_FT,
  BBL_TYPE_LAST
}

Functions

BBL_TYPE LEVEL_PINCLIENT::BBL_Type (BBL x)

Detailed Description

The basic blocks that correspond to a control flow graph have successor edges to other basic blocks.

Enumeration Type Documentation

enum LEVEL_CORE::BBL_TYPE
 

BBL types enumeration

Enumerator:
BBL_TYPE_INVALID  illegal type, to indicate unknown type use BBL_TYPE_UNKNOWN instead
BBL_TYPE_UBREAK  break (no go)
BBL_TYPE_CBREAK  conditional break
BBL_TYPE_STOP  stop (no go)
BBL_TYPE_UCALL_UNKNOWN  (indirect) call to unknown target
BBL_TYPE_UCALL_FUN  call to known target
BBL_TYPE_UCALL_OS  os call
BBL_TYPE_CCALL_OS  conditional os call
BBL_TYPE_CCALL_UNKNOWN  conditonal (indirect) call to unknown target
BBL_TYPE_CCALL_FUN  conditonal call to known target
BBL_TYPE_NORMAL  fallthrough bbl
BBL_TYPE_CBRANCH  conditional branch
BBL_TYPE_UBRANCH  unconditional branch
BBL_TYPE_COUNTED  conditional branch (counted)
BBL_TYPE_SWPIPELINED  conditional branch (counted,register rotation)
BBL_TYPE_CHECK  check
BBL_TYPE_PREFETCH  prefetch
BBL_TYPE_UJUMP  jump
BBL_TYPE_UJUMP_DYNLINK  jump into the dynamic linker (in .plt)
BBL_TYPE_UJUMP_THUNK  call of dynamically linked code
BBL_TYPE_UJUMP_TRAMPOLINE  jump through a trampoline
BBL_TYPE_UBRANCH_TRAMPOLINE  jump through a trampoline
BBL_TYPE_CJUMP  conditional jump
BBL_TYPE_CJUMP_SWITCH  conditional jump
BBL_TYPE_STUB  jump bbl that implements a shared lib stub
BBL_TYPE_URETURN  return
BBL_TYPE_CRETURN  conditional return
BBL_TYPE_DATA  data -- NB: data entries must be contiguous. see BBL_IsData
BBL_TYPE_DATA_IADDR  data -- pin IADDR for ip relative branch on em64t
BBL_TYPE_DATA_ARGBLOCK  data -- pin argument block for VM
BBL_TYPE_DATA_SWITCH1  data
BBL_TYPE_DATA_LAST  data
BBL_TYPE_CONTAINER  initial container
BBL_TYPE_UNKNOWN  unknown type
BBL_TYPE_VMSVC  vm service request
BBL_TYPE_LOOKUP  indirect hash table lookup code
BBL_TYPE_EMU_FT  invoke pin emulator on instruction with a fall through path


Function Documentation

BBL_TYPE LEVEL_PINCLIENT::BBL_Type BBL  x  ) 
 

Returns:
The type of the basic block


Generated on Tue Jan 16 00:09:08 2007 for Pin by  doxygen 1.4.6