| 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 |
_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() | ||||||||||
| abstract boolean | canReadAsUnsignedLong() | ||||||||||
| 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
| |||||||||||
Perform an arithmetic right-shift operation (sign bit is maintained).
Test if a given bit is set.
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()
|
|---|