Package ghidra.program.model.lang
Interface ParamList
- All Known Implementing Classes:
ParamListRegisterOut
,ParamListStandard
,ParamListStandardOut
public interface ParamList
A group of ParamEntry that form a complete set for passing parameters (in one direction)
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionvoid
assignMap
(Program prog, DataType[] proto, ArrayList<VariableStorage> res, boolean addAutoParams) Given a list of datatypes, calculate the storage locations used for passing those datatypesvoid
Get a list of all parameter storage locations consisting of a single registerint
Return the amount of alignment used for parameters passed on the stack, or -1 if there are no stack paramsFind the boundary offset that separates parameters on the stack from other local variables This is usually the address of the first stack parameter, but if the stack grows positive, this is the first address AFTER the parameters on the stackboolean
isEquivalent
(ParamList obj) Determine if this ParmList is equivalent to another instanceboolean
boolean
possibleParamWithSlot
(Address loc, int size, ParamList.WithSlotRec res) Determine if a particular address range is a possible parameter, and if so what slot(s) it occupiesvoid
restoreXml
(XmlPullParser parser, CompilerSpec cspec)
-
Method Details
-
assignMap
void assignMap(Program prog, DataType[] proto, ArrayList<VariableStorage> res, boolean addAutoParams) Given a list of datatypes, calculate the storage locations used for passing those datatypes- Parameters:
prog
- is the active prograproto
- is the list of datatypesres
- is the vector for holding the VariableStorage corresponding to datatypesaddAutoParams
- if true add/process auto-parameters
-
encode
- Throws:
IOException
-
restoreXml
- Throws:
XmlParseException
-
getPotentialRegisterStorage
Get a list of all parameter storage locations consisting of a single register- Parameters:
prog
- is the controlling program- Returns:
- an array of VariableStorage
-
getStackParameterAlignment
int getStackParameterAlignment()Return the amount of alignment used for parameters passed on the stack, or -1 if there are no stack params- Returns:
- the alignment
-
getStackParameterOffset
Long getStackParameterOffset()Find the boundary offset that separates parameters on the stack from other local variables This is usually the address of the first stack parameter, but if the stack grows positive, this is the first address AFTER the parameters on the stack- Returns:
- the boundary offset
-
possibleParamWithSlot
Determine if a particular address range is a possible parameter, and if so what slot(s) it occupies- Parameters:
loc
- is the starting address of the rangesize
- is the size of the range in bytesres
- holds the resulting slot and slotsize- Returns:
- true if the range is a possible parameter
-
isThisBeforeRetPointer
boolean isThisBeforeRetPointer() -
isEquivalent
Determine if this ParmList is equivalent to another instance- Parameters:
obj
- is the other instance- Returns:
- true if they are equivalent
-