Package ghidra.program.model.lang
Class ParamListStandardOut
- java.lang.Object
-
- ghidra.program.model.lang.ParamListStandard
-
- ghidra.program.model.lang.ParamListRegisterOut
-
- ghidra.program.model.lang.ParamListStandardOut
-
- All Implemented Interfaces:
ParamList
public class ParamListStandardOut extends ParamListRegisterOut
A list of resources describing possible storage locations for a function's return value, and a strategy for selecting a storage location based on data-types in a function signature. Similar to the parent class, when assigning storage, the first entry that matches the data-type is chosen. But if this instance fails to find a match (because the return value data-type is too big) the data-type is converted to a pointer and storage is assigned based on that pointer. Additionally, if configured, this instance will signal that a hidden input parameter is required to fully model where the large return value is stored. The resource list is checked to ensure entries are distinguishable.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface ghidra.program.model.lang.ParamList
ParamList.WithSlotRec
-
-
Field Summary
-
Fields inherited from class ghidra.program.model.lang.ParamListStandard
entry, numgroup, pointermax, resourceTwoStart, spacebase, thisbeforeret
-
-
Constructor Summary
Constructors Constructor Description ParamListStandardOut()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
assignMap(Program prog, DataType[] proto, java.util.ArrayList<VariableStorage> res, boolean addAutoParams)
Given a list of datatypes, calculate the storage locations used for passing those datatypesvoid
restoreXml(XmlPullParser parser, CompilerSpec cspec)
-
Methods inherited from class ghidra.program.model.lang.ParamListStandard
assignAddress, equals, getPotentialRegisterStorage, getStackParameterAlignment, getStackParameterOffset, hashCode, isThisBeforeRetPointer, possibleParamWithSlot, saveXml
-
-
-
-
Method Detail
-
assignMap
public void assignMap(Program prog, DataType[] proto, java.util.ArrayList<VariableStorage> res, boolean addAutoParams)
Description copied from interface:ParamList
Given a list of datatypes, calculate the storage locations used for passing those datatypes- Specified by:
assignMap
in interfaceParamList
- Overrides:
assignMap
in classParamListRegisterOut
- 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
-
restoreXml
public void restoreXml(XmlPullParser parser, CompilerSpec cspec) throws XmlParseException
- Specified by:
restoreXml
in interfaceParamList
- Overrides:
restoreXml
in classParamListStandard
- Throws:
XmlParseException
-
-