B2R2


LiftingOperators Module

Functions and values

Function or value Description

ir !! s

Full Usage: ir !! s

Parameters:

This is the special operator that we use for writing a lifter. There are several major operators we use including this one. This one simply appends a statement to the IRBuilder. We always put a IRBuilder variable immediately after each operator without any space to make it visually distinct. For example, for a builder variable "ir", we write a lifting logic as follows: !ir insAddr insLen

ir : IRBuilder
s : Stmt

ir !* rt

Full Usage: ir !* rt

Parameters:
Returns: Expr

The special operator for creating a temporary variable.

ir : IRBuilder
rt : RegType
Returns: Expr

ir !< insLen

Full Usage: ir !< insLen

Parameters:

The special operator for starting an instruction (ISMark).

ir : IRBuilder
insLen : uint32

ir !> insLen

Full Usage: ir !> insLen

Parameters:
Returns: IRBuilder

The special operator for finishing an instruction (IEMark).

ir : IRBuilder
insLen : uint32
Returns: IRBuilder

ir !? fn

Full Usage: ir !? fn

Parameters:
Returns: 'a

The special operator for applying a function with a IRBuilder as input.

ir : IRBuilder
fn : IRBuilder -> 'a
Returns: 'a