Header menu logo B2R2

LiftingOperators Module

Functions and values

Function or value Description

!*ctxt

Full Usage: !*ctxt

Parameters:
Returns: IRBuilder
Modifiers: inline

Fetch IRBuilder from the given translation context.

ctxt : TranslationContext
Returns: IRBuilder

ir !! s

Full Usage: ir !! s

Parameters:
Modifiers: inline

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 !% label

Full Usage: ir !% label

Parameters:
Returns: Symbol
Modifiers: inline

The special operator for creating a symbol.

ir : IRBuilder
label : string
Returns: Symbol

ir !+ rt

Full Usage: ir !+ rt

Parameters:
Returns: Expr
Modifiers: inline

The special operator for creating a temporary variable.

ir : IRBuilder
rt : RegType
Returns: Expr

ir !< insLen

Full Usage: ir !< insLen

Parameters:
Modifiers: inline

The special operator for starting an instruction (ISMark).

ir : IRBuilder
insLen : uint32

ir !> insLen

Full Usage: ir !> insLen

Parameters:
Returns: IRBuilder
Modifiers: inline

The special operator for finishing an instruction (IEMark).

ir : IRBuilder
insLen : uint32
Returns: IRBuilder

ir !? fn

Full Usage: ir !? fn

Parameters:
Returns: 'a
Modifiers: inline
Type parameters: 'a

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

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

Type something to start searching.