com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEImm |
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 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() |
Perform an exponentiation.
exponent | must be positive or zero |
---|
Perform an arithmetic right-shift operation (sign bit is maintained). The effective count is
computed modulo-positive getBitsize()
.
Perform a left-shift operation. The effective count is computed modulo-positive
getBitsize()
.
Perform a regular right-shift operation. The effective count is computed modulo-positive
getBitsize()
.
Test if a given bit is set.
Determine if this value can fit on a 64-bit long primitive.
Determine if this value can fit as an unsigned long on a 64-bit long primitive (ie, with the MSB is set to 0).
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.
Get this immediate as an unsigned big integer value.
Get this immediate as a big integer value (signed).
Get the immediate value as a primitive long, preferably unsigned. Will raise if the value does not fit on 64-bits.
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).
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.
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)
newBitsize | must be superior to getBitsize()
|
---|
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.
Zero extend the current IEGeneric
newBitsize | must be superior to getBitsize()
|
---|