Package ghidra.pcode.struct
Class CallExpr
java.lang.Object
ghidra.pcode.struct.Expr
ghidra.pcode.struct.CallExpr
- All Implemented Interfaces:
StructuredSleigh.RVal
A p-code userop invocation expression
Userops are essentially treated as functions. They can be invoked passing a list of parameters,
and the expression takes the value it returns (via StructuredSleigh._result(RVal)
.
-
Field Summary
-
Constructor Summary
ModifierConstructorDescriptionprotected
CallExpr
(StructuredSleigh ctx, StructuredSleigh.UseropDecl userop, List<StructuredSleigh.RVal> args) Build a call expression -
Method Summary
Modifier and TypeMethodDescriptiondefault StructuredSleigh.RVal
Generate float additiondefault StructuredSleigh.RVal
addi
(long rhs) Generate integer additiondefault StructuredSleigh.RVal
Generate integer additiondefault StructuredSleigh.RVal
andb
(long rhs) Generate boolean anddefault StructuredSleigh.RVal
Generate boolean anddefault StructuredSleigh.RVal
andi
(long rhs) Generate an integer (bitwise) anddefault StructuredSleigh.RVal
Generate an integer (bitwise) andCast the value to the given typedefault StructuredSleigh.LVal
deref()
Generate a dereference (in the C sense) in the default address spacedefault StructuredSleigh.LVal
deref
(AddressSpace space) Generate a dereference (in the C sense)default StructuredSleigh.RVal
Generate float divisiondefault StructuredSleigh.RVal
divis
(long rhs) Generate signed integer divisiondefault StructuredSleigh.RVal
Generate signed integer divisiondefault StructuredSleigh.RVal
diviu
(long rhs) Generate unsigned integer divisiondefault StructuredSleigh.RVal
Generate unsigned integer divisiondefault StructuredSleigh.RVal
eq
(long rhs) Generate integer comparison: equal todefault StructuredSleigh.RVal
eq
(StructuredSleigh.RVal rhs) Generate integer comparison: equal todefault StructuredSleigh.RVal
eqf
(StructuredSleigh.RVal rhs) Generate float comparison: equal togenerate
(ghidra.pcode.struct.RValInternal parent) default StructuredSleigh.RVal
Generate float comparison: greater than or equal todefault StructuredSleigh.RVal
gteis
(long rhs) Generate signed integer comparison: greater than or equal todefault StructuredSleigh.RVal
Generate signed integer comparison: greater than or equal todefault StructuredSleigh.RVal
gteiu
(long rhs) Generate unsigned integer comparison: greater than or equal todefault StructuredSleigh.RVal
Generate unsigned integer comparison: greater than or equal todefault StructuredSleigh.RVal
gtf
(StructuredSleigh.RVal rhs) Generate float comparison: greater thandefault StructuredSleigh.RVal
gtis
(long rhs) Generate signed integer comparison: greater thandefault StructuredSleigh.RVal
Generate signed integer comparison: greater thandefault StructuredSleigh.RVal
gtiu
(long rhs) Generate unsigned integer comparison: greater thandefault StructuredSleigh.RVal
Generate unsigned integer comparison: greater thandefault StructuredSleigh.RVal
Generate float comparison: less than or equal todefault StructuredSleigh.RVal
lteis
(long rhs) Generate signed integer comparison: less than or equal todefault StructuredSleigh.RVal
Generate signed integer comparison: less than or equal todefault StructuredSleigh.RVal
lteiu
(long rhs) Generate unsigned integer comparison: less than or equal todefault StructuredSleigh.RVal
Generate unsigned integer comparison: less than or equal todefault StructuredSleigh.RVal
ltf
(StructuredSleigh.RVal rhs) Generate unsigned integer comparison: less thandefault StructuredSleigh.RVal
ltis
(long rhs) Generate signed integer comparison: less thandefault StructuredSleigh.RVal
Generate signed integer comparison: less thandefault StructuredSleigh.RVal
ltiu
(long rhs) Generate unsigned integer comparison: less thandefault StructuredSleigh.RVal
Generate unsigned integer comparison: less thandefault StructuredSleigh.RVal
Generate float multiplicationdefault StructuredSleigh.RVal
muli
(long rhs) Generate integer multiplicationdefault StructuredSleigh.RVal
Generate integer multiplicationdefault StructuredSleigh.RVal
neq
(long rhs) Generate integer comparison: not equal todefault StructuredSleigh.RVal
neq
(StructuredSleigh.RVal rhs) Generate integer comparison: not equal todefault StructuredSleigh.RVal
Generate float comparison: not equal todefault StructuredSleigh.RVal
notb()
Generate boolean inversiondefault StructuredSleigh.RVal
noti()
Generate integer (bitwise) inversiondefault StructuredSleigh.RVal
orb
(long rhs) Generate boolean ordefault StructuredSleigh.RVal
orb
(StructuredSleigh.RVal rhs) Generate boolean ordefault StructuredSleigh.RVal
ori
(long rhs) Generate an integer (bitwise) ordefault StructuredSleigh.RVal
ori
(StructuredSleigh.RVal rhs) Generate an integer (bitwise) ordefault StructuredSleigh.RVal
remis
(long rhs) Generate signed integer division remainderdefault StructuredSleigh.RVal
Generate signed integer division remainderdefault StructuredSleigh.RVal
remiu
(long rhs) Generate unsigned integer division remainderdefault StructuredSleigh.RVal
Generate unsigned integer division remainderdefault StructuredSleigh.RVal
shli
(long rhs) Generate bit shift to the leftdefault StructuredSleigh.RVal
Generate bit shift to the leftdefault StructuredSleigh.RVal
shris
(long rhs) Generate signed bit shift to the rightdefault StructuredSleigh.RVal
Generate signed bit shift to the rightdefault StructuredSleigh.RVal
shriu
(long rhs) Generate unsigned bit shift to the rightdefault StructuredSleigh.RVal
Generate unsigned bit shift to the rightdefault StructuredSleigh.RVal
Generate float subtractiondefault StructuredSleigh.RVal
subi
(long rhs) Generate integer subtraction of an immediatedefault StructuredSleigh.RVal
Generate integer subtractiontoString()
default StructuredSleigh.RVal
xorb
(long rhs) Generate boolean exclusive ordefault StructuredSleigh.RVal
Generate boolean exclusive ordefault StructuredSleigh.RVal
xori
(long rhs) Generate an integer (bitwise) exclusive ordefault StructuredSleigh.RVal
Generate an integer (bitwise) exclusive orMethods inherited from class ghidra.pcode.struct.Expr
getContext, getType
-
Constructor Details
-
CallExpr
protected CallExpr(StructuredSleigh ctx, StructuredSleigh.UseropDecl userop, List<StructuredSleigh.RVal> args) Build a call expression- Parameters:
ctx
- the contextuserop
- the userop to invokeargs
- the arguments to pass in (by reference)
-
-
Method Details
-
cast
Description copied from interface:StructuredSleigh.RVal
Cast the value to the given typeThis functions like a C-style pointer cast. There are no implied operations or conversions. Notably, casting between integers and floats is just a re-interpretation of the underlying bits.
- Parameters:
type
- the type- Returns:
- a handle to the resulting value
-
toString
-
generate
-
deref
Description copied from interface:StructuredSleigh.RVal
Generate a dereference (in the C sense) in the default address space- Specified by:
deref
in interfaceStructuredSleigh.RVal
- Returns:
- a handle to the resulting value
-
deref
Description copied from interface:StructuredSleigh.RVal
Generate a dereference (in the C sense)The value is treated as an address, and the result is essentially a variable in the given target address space.
- Specified by:
deref
in interfaceStructuredSleigh.RVal
- Parameters:
space
- the address space of the result- Returns:
- a handle to the resulting value
-
notb
Description copied from interface:StructuredSleigh.RVal
Generate boolean inversion- Specified by:
notb
in interfaceStructuredSleigh.RVal
- Returns:
- a handle to the resulting value
-
noti
Description copied from interface:StructuredSleigh.RVal
Generate integer (bitwise) inversion- Specified by:
noti
in interfaceStructuredSleigh.RVal
- Returns:
- a handle to the resulting value
-
eq
Description copied from interface:StructuredSleigh.RVal
Generate integer comparison: equal to- Specified by:
eq
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
eq
Description copied from interface:StructuredSleigh.RVal
Generate integer comparison: equal to- Specified by:
eq
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
eqf
Description copied from interface:StructuredSleigh.RVal
Generate float comparison: equal to- Specified by:
eqf
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
neq
Description copied from interface:StructuredSleigh.RVal
Generate integer comparison: not equal to- Specified by:
neq
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
neq
Description copied from interface:StructuredSleigh.RVal
Generate integer comparison: not equal to- Specified by:
neq
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
neqf
Description copied from interface:StructuredSleigh.RVal
Generate float comparison: not equal to- Specified by:
neqf
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
ltiu
Description copied from interface:StructuredSleigh.RVal
Generate unsigned integer comparison: less than- Specified by:
ltiu
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
ltiu
Description copied from interface:StructuredSleigh.RVal
Generate unsigned integer comparison: less than- Specified by:
ltiu
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
ltis
Description copied from interface:StructuredSleigh.RVal
Generate signed integer comparison: less than- Specified by:
ltis
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
ltis
Description copied from interface:StructuredSleigh.RVal
Generate signed integer comparison: less than- Specified by:
ltis
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
ltf
Description copied from interface:StructuredSleigh.RVal
Generate unsigned integer comparison: less than- Specified by:
ltf
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
gtiu
Description copied from interface:StructuredSleigh.RVal
Generate unsigned integer comparison: greater than- Specified by:
gtiu
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
gtiu
Description copied from interface:StructuredSleigh.RVal
Generate unsigned integer comparison: greater than- Specified by:
gtiu
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
gtis
Description copied from interface:StructuredSleigh.RVal
Generate signed integer comparison: greater than- Specified by:
gtis
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
gtis
Description copied from interface:StructuredSleigh.RVal
Generate signed integer comparison: greater than- Specified by:
gtis
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
gtf
Description copied from interface:StructuredSleigh.RVal
Generate float comparison: greater than- Specified by:
gtf
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
lteiu
Description copied from interface:StructuredSleigh.RVal
Generate unsigned integer comparison: less than or equal to- Specified by:
lteiu
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
lteiu
Description copied from interface:StructuredSleigh.RVal
Generate unsigned integer comparison: less than or equal to- Specified by:
lteiu
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
lteis
Description copied from interface:StructuredSleigh.RVal
Generate signed integer comparison: less than or equal to- Specified by:
lteis
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
lteis
Description copied from interface:StructuredSleigh.RVal
Generate signed integer comparison: less than or equal to- Specified by:
lteis
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
ltef
Description copied from interface:StructuredSleigh.RVal
Generate float comparison: less than or equal to- Specified by:
ltef
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
gteiu
Description copied from interface:StructuredSleigh.RVal
Generate unsigned integer comparison: greater than or equal to- Specified by:
gteiu
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
gteiu
Description copied from interface:StructuredSleigh.RVal
Generate unsigned integer comparison: greater than or equal to- Specified by:
gteiu
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
gteis
Description copied from interface:StructuredSleigh.RVal
Generate signed integer comparison: greater than or equal to- Specified by:
gteis
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
gteis
Description copied from interface:StructuredSleigh.RVal
Generate signed integer comparison: greater than or equal to- Specified by:
gteis
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
gtef
Description copied from interface:StructuredSleigh.RVal
Generate float comparison: greater than or equal to- Specified by:
gtef
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
orb
Description copied from interface:StructuredSleigh.RVal
Generate boolean or- Specified by:
orb
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
orb
Description copied from interface:StructuredSleigh.RVal
Generate boolean or- Specified by:
orb
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
ori
Description copied from interface:StructuredSleigh.RVal
Generate an integer (bitwise) or- Specified by:
ori
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
ori
Description copied from interface:StructuredSleigh.RVal
Generate an integer (bitwise) or- Specified by:
ori
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
xorb
Description copied from interface:StructuredSleigh.RVal
Generate boolean exclusive or- Specified by:
xorb
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
xorb
Description copied from interface:StructuredSleigh.RVal
Generate boolean exclusive or- Specified by:
xorb
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
xori
Description copied from interface:StructuredSleigh.RVal
Generate an integer (bitwise) exclusive or- Specified by:
xori
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
xori
Description copied from interface:StructuredSleigh.RVal
Generate an integer (bitwise) exclusive or- Specified by:
xori
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
andb
Description copied from interface:StructuredSleigh.RVal
Generate boolean and- Specified by:
andb
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
andb
Description copied from interface:StructuredSleigh.RVal
Generate boolean and- Specified by:
andb
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
andi
Description copied from interface:StructuredSleigh.RVal
Generate an integer (bitwise) and- Specified by:
andi
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
andi
Description copied from interface:StructuredSleigh.RVal
Generate an integer (bitwise) and- Specified by:
andi
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand (mask)- Returns:
- a handle to the resulting value
-
shli
Description copied from interface:StructuredSleigh.RVal
Generate bit shift to the left- Specified by:
shli
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand (shift amount)- Returns:
- a handle to the resulting value
-
shli
Description copied from interface:StructuredSleigh.RVal
Generate bit shift to the left- Specified by:
shli
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand (shift amount)- Returns:
- a handle to the resulting value
-
shriu
Description copied from interface:StructuredSleigh.RVal
Generate unsigned bit shift to the right- Specified by:
shriu
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand (shift amount)- Returns:
- a handle to the resulting value
-
shriu
Description copied from interface:StructuredSleigh.RVal
Generate unsigned bit shift to the right- Specified by:
shriu
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand (shift amount)- Returns:
- a handle to the resulting value
-
shris
Description copied from interface:StructuredSleigh.RVal
Generate signed bit shift to the right- Specified by:
shris
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand (shift amount)- Returns:
- a handle to the resulting value
-
shris
Description copied from interface:StructuredSleigh.RVal
Generate signed bit shift to the right- Specified by:
shris
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand (shift amount)- Returns:
- a handle to the resulting value
-
addi
Description copied from interface:StructuredSleigh.RVal
Generate integer addition- Specified by:
addi
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
addi
Description copied from interface:StructuredSleigh.RVal
Generate integer addition- Specified by:
addi
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
addf
Description copied from interface:StructuredSleigh.RVal
Generate float addition- Specified by:
addf
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
subi
Description copied from interface:StructuredSleigh.RVal
Generate integer subtraction- Specified by:
subi
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
subi
Description copied from interface:StructuredSleigh.RVal
Generate integer subtraction of an immediate- Specified by:
subi
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
subf
Description copied from interface:StructuredSleigh.RVal
Generate float subtraction- Specified by:
subf
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
muli
Description copied from interface:StructuredSleigh.RVal
Generate integer multiplication- Specified by:
muli
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
muli
Description copied from interface:StructuredSleigh.RVal
Generate integer multiplication- Specified by:
muli
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate operand- Returns:
- a handle to the resulting value
-
mulf
Description copied from interface:StructuredSleigh.RVal
Generate float multiplication- Specified by:
mulf
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the second operand- Returns:
- a handle to the resulting value
-
diviu
Description copied from interface:StructuredSleigh.RVal
Generate unsigned integer division- Specified by:
diviu
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the divisor- Returns:
- a handle to the resulting value
-
diviu
Description copied from interface:StructuredSleigh.RVal
Generate unsigned integer division- Specified by:
diviu
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate divisor- Returns:
- a handle to the resulting value
-
divis
Description copied from interface:StructuredSleigh.RVal
Generate signed integer division- Specified by:
divis
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the divisor- Returns:
- a handle to the resulting value
-
divis
Description copied from interface:StructuredSleigh.RVal
Generate signed integer division- Specified by:
divis
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate divisor- Returns:
- a handle to the resulting value
-
divf
Description copied from interface:StructuredSleigh.RVal
Generate float division- Specified by:
divf
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the divisor- Returns:
- a handle to the resulting value
-
remiu
Description copied from interface:StructuredSleigh.RVal
Generate unsigned integer division remainder- Specified by:
remiu
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the divisor- Returns:
- a handle to the resulting value
-
remiu
Description copied from interface:StructuredSleigh.RVal
Generate unsigned integer division remainder- Specified by:
remiu
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate divisor- Returns:
- a handle to the resulting value
-
remis
Description copied from interface:StructuredSleigh.RVal
Generate signed integer division remainder- Specified by:
remis
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the divisor- Returns:
- a handle to the resulting value
-
remis
Description copied from interface:StructuredSleigh.RVal
Generate signed integer division remainder- Specified by:
remis
in interfaceStructuredSleigh.RVal
- Parameters:
rhs
- the immediate divisor- Returns:
- a handle to the resulting value
-