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)
  • 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 progra
      proto - is the list of datatypes
      res - is the vector for holding the VariableStorage corresponding to datatypes
      addAutoParams - if true add/process auto-parameters
    • encode

      void encode(Encoder encoder, boolean isInput) throws IOException
      Throws:
      IOException
    • restoreXml

      void restoreXml(XmlPullParser parser, CompilerSpec cspec) throws XmlParseException
      Throws:
      XmlParseException
    • getPotentialRegisterStorage

      VariableStorage[] getPotentialRegisterStorage(Program prog)
      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

      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 occupies
      Parameters:
      loc - is the starting address of the range
      size - is the size of the range in bytes
      res - holds the resulting slot and slotsize
      Returns:
      true if the range is a possible parameter
    • isThisBeforeRetPointer

      boolean isThisBeforeRetPointer()
    • isEquivalent

      boolean isEquivalent(ParamList obj)
      Determine if this ParmList is equivalent to another instance
      Parameters:
      obj - is the other instance
      Returns:
      true if they are equivalent