public interface

IEImm

implements IEGeneric
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEImm

Summary

Public Methods
abstract IEImm _add(IEImm val)
Perform an addition.
abstract IEImm _and(IEImm val)
Perform a binary-and operation.
abstract IEImm _clearbit(int pos)
Reset a given bit to 0.
abstract int _cmp(IEImm val)
Perform a signed operand comparison.
abstract int _cmpU(IEImm val)
Perform an unsigned operand comparison.
abstract IEImm _div(IEImm val)
Perform a signed division.
abstract IEImm _divU(IEImm val)
Perform an unsigned division.
abstract IEImm _mul(IEImm val)
Perform a signed multiplication.
abstract IEImm _mulU(IEImm val)
Perform an unsigned multiplication.
abstract IEImm _neg()
Perform a negation.
abstract IEImm _not()
Perform a binary-not operation.
abstract IEImm _or(IEImm val)
Perform a binary-or operation.
abstract IEImm _pow(int exponent)
Perform an exponentiation.
abstract IEImm _rem(IEImm val)
Perform a signed remainder (modulo) operation.
abstract IEImm _remU(IEImm val)
Perform an unsigned remainder (modulo) operation.
abstract IEImm _rol(int cnt)
Perform a left-rotate operation.
abstract IEImm _ror(int cnt)
Perform a right-rotate operation.
abstract IEImm _sar(int cnt)
Perform an arithmetic right-shift operation (sign bit is maintained).
abstract IEImm _setbit(int pos)
Set a given bit to 1.
abstract IEImm _shl(int cnt)
Perform a left-shift operation.
abstract IEImm _shr(int cnt)
Perform a regular right-shift operation.
abstract int _signum()
abstract IEImm _sub(IEImm val)
Perform a subtraction.
abstract boolean _testbit(int pos)
Test if a given bit is set.
abstract IEImm _xor(IEImm val)
Perform a binary-xor operation.
abstract boolean canReadAsAddress()
abstract boolean canReadAsLong()
Determine if this value can fit on a 64-bit long primitive.
abstract boolean canReadAsUnsignedLong()
Determine if this value can fit as an unsigned long on a 64-bit long primitive (ie, with the MSB is set to 0).
abstract IEImm expand(int bits)
Expand (zero-extension) this immediate.
abstract BigInteger getUnsignedValue()
Get this immediate as an unsigned big integer value.
abstract BigInteger getValue()
Get this immediate as a big integer value (signed).
abstract long getValueAsAddress()
Get the immediate value as a primitive long, preferably unsigned.
abstract long getValueAsLong()
Get the immediate value as a signed primitive long.
abstract long getValueAsUnsignedLong()
Get the immediate value as an unsigned, zero-extended primitive long.
abstract IEGeneric signExtend(int newBitsize)
Sign extend the current IEGeneric.
abstract IEImm truncate(int bits)
Truncate this immediate or sign-extend it.
abstract IEGeneric zeroExtend(int newBitsize)
Zero extend the current IEGeneric
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.units.code.IInstructionOperand
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEGeneric

Public Methods

public abstract IEImm _add (IEImm val)

Perform an addition.

public abstract IEImm _and (IEImm val)

Perform a binary-and operation.

public abstract IEImm _clearbit (int pos)

Reset a given bit to 0.

public abstract int _cmp (IEImm val)

Perform a signed operand comparison.

Returns
  • 0, 1, or -1

public abstract int _cmpU (IEImm val)

Perform an unsigned operand comparison.

Returns
  • 0, 1, or -1

public abstract IEImm _div (IEImm val)

Perform a signed division.

public abstract IEImm _divU (IEImm val)

Perform an unsigned division.

public abstract IEImm _mul (IEImm val)

Perform a signed multiplication.

public abstract IEImm _mulU (IEImm val)

Perform an unsigned multiplication.

public abstract IEImm _neg ()

Perform a negation.

public abstract IEImm _not ()

Perform a binary-not operation.

public abstract IEImm _or (IEImm val)

Perform a binary-or operation.

public abstract IEImm _pow (int exponent)

Perform an exponentiation.

Parameters
exponent must be positive or zero

public abstract IEImm _rem (IEImm val)

Perform a signed remainder (modulo) operation.

public abstract IEImm _remU (IEImm val)

Perform an unsigned remainder (modulo) operation.

public abstract IEImm _rol (int cnt)

Perform a left-rotate operation.

public abstract IEImm _ror (int cnt)

Perform a right-rotate operation.

public abstract IEImm _sar (int cnt)

Perform an arithmetic right-shift operation (sign bit is maintained). The effective count is computed modulo-positive getBitsize().

public abstract IEImm _setbit (int pos)

Set a given bit to 1.

public abstract IEImm _shl (int cnt)

Perform a left-shift operation. The effective count is computed modulo-positive getBitsize().

public abstract IEImm _shr (int cnt)

Perform a regular right-shift operation. The effective count is computed modulo-positive getBitsize().

public abstract int _signum ()

public abstract IEImm _sub (IEImm val)

Perform a subtraction.

public abstract boolean _testbit (int pos)

Test if a given bit is set.

Returns
  • true if set, false if unset

public abstract IEImm _xor (IEImm val)

Perform a binary-xor operation.

public abstract boolean canReadAsAddress ()

public abstract boolean canReadAsLong ()

Determine if this value can fit on a 64-bit long primitive.

public abstract boolean canReadAsUnsignedLong ()

Determine if this value can fit as an unsigned long on a 64-bit long primitive (ie, with the MSB is set to 0).

public abstract IEImm expand (int bits)

Expand (zero-extension) this immediate. If bits if less than the bitsize of this immediate, this method is the same as truncate. If bits is greater than the bitsize of this immediate, then the resulting value is zero-extended.

public abstract BigInteger getUnsignedValue ()

Get this immediate as an unsigned big integer value.

public abstract BigInteger getValue ()

Get this immediate as a big integer value (signed).

public abstract long getValueAsAddress ()

Get the immediate value as a primitive long, preferably unsigned. Will raise if the value does not fit on 64-bits.

public abstract long getValueAsLong ()

Get the immediate value as a signed primitive long. Will raise if the value does not fit in [LONG_MIN, LONG_MAX] range (64 bits).

public abstract long getValueAsUnsignedLong ()

Get the immediate value as an unsigned, zero-extended primitive long. Will raise if the value does not fit within [0, LONG_MAX] range (63 bits).

getValueAsLong() is a safer method.

public abstract IEGeneric signExtend (int newBitsize)

Sign extend the current IEGeneric. This method will create a valid IEGeneric (meaning IEGeneric will not have duplicates id - in particular, in the form C(x, x.msb()?ones():zeros()) where x will be present in base value and msb predicate)

Parameters
newBitsize must be superior to getBitsize()

public abstract IEImm truncate (int bits)

Truncate this immediate or sign-extend it. If bits if less than the bitsize of this immediate, it is truncated. If bits is greater than the bitsize of this immediate, then the resulting value is sign-extended.

public abstract IEGeneric zeroExtend (int newBitsize)

Zero extend the current IEGeneric

Parameters
newBitsize must be superior to getBitsize()