public interface

IDVar

implements IDExpression
com.pnfsoftware.jeb.core.units.code.android.ir.IDVar

Class Overview

dexdec IR interface used to represent a variable (identifier).

Identifiers may be single-slot (encoded using a single register) or double-slot (encoded using a pair of registers).

Examples:

 int x = 1;
     ^  // single-slot register
 long y = 2L;
      ^  // double-slot register
 

Summary

Constants
int LIM Separator between physical registers, whose id must be in [0-65536), and virtual registers (generated during the SSA transformation phase), whose values is greater or equal than 65536.
[Expand]
Inherited Constants
From interface com.pnfsoftware.jeb.core.units.code.android.ir.IDElement
Public Methods
abstract long getId()
Get this variable id.
abstract String getPreferredName()
Retrieve the preferred name of this identifier, if there is one.
abstract int getRegister1()
Get the first register id.
abstract int getRegister2()
Get the optional second register id, if this variable uses two slots.
abstract boolean same(IDVar other)
Compare two variables by id only; types and other IR information is disregarded.
abstract void setPreferredName(String name)
Set the optional preferred name of this identifier.
abstract boolean usesPairOfRegisters()
Determine whether this register uses one or two slots (registers).
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.units.code.IInstructionOperand
From interface com.pnfsoftware.jeb.core.units.code.android.ir.IDElement
From interface com.pnfsoftware.jeb.core.units.code.android.ir.IDExpression

Constants

public static final int LIM

Separator between physical registers, whose id must be in [0-65536), and virtual registers (generated during the SSA transformation phase), whose values is greater or equal than 65536.

Constant Value: 65536 (0x00010000)

Public Methods

public abstract long getId ()

Get this variable id.

public abstract String getPreferredName ()

Retrieve the preferred name of this identifier, if there is one. Typically, the preferred is set to the debug name, if one is provided.

Returns
  • preferred name, may be null (in which case, a name would be auto-generated)

public abstract int getRegister1 ()

Get the first register id.

Returns
  • always greater than or equal to zero

public abstract int getRegister2 ()

Get the optional second register id, if this variable uses two slots.

Returns
  • the second register id, -1 if not

public abstract boolean same (IDVar other)

Compare two variables by id only; types and other IR information is disregarded.

public abstract void setPreferredName (String name)

Set the optional preferred name of this identifier.

Parameters
name optional preferred name

public abstract boolean usesPairOfRegisters ()

Determine whether this register uses one or two slots (registers).