Delay Slot Instruction

Posted By admin On 11/04/22
Delay Slot Instruction Rating: 8,7/10 6364 votes
Slot

Delay Slot Instructions

Delay Slot Instruction

Branch Delay Slot Instruction

Slot
    • Field Summary

      Fields
      Modifier and TypeFieldDescription
      static intINVALID_DEPTH_CHANGE
      • Fields inherited from interface ghidra.program.model.listing.CodeUnit

        COMMENT_PROPERTY, DEFINED_DATA_PROPERTY, EOL_COMMENT, INSTRUCTION_PROPERTY, MNEMONIC, NO_COMMENT, PLATE_COMMENT, POST_COMMENT, PRE_COMMENT, REPEATABLE_COMMENT, SPACE_PROPERTY
    • Method Summary

      All MethodsInstance MethodsAbstract Methods
      Modifier and TypeMethodDescription
      voidclearFallThroughOverride()
      Restores this instruction's fallthrough address back to the default fallthrough for this instruction.
      AddressgetDefaultFallThrough()
      intgetDefaultFallThroughOffset()
      Get default fall-through offset in bytes from start of instruction to the fallthrough instruction.
      Address[]getDefaultFlows()
      Get an array of Address objects for all default flows established by the underlying instruction prototype.
      java.lang.StringgetDefaultOperandRepresentation​(int opIndex)
      Get the operand representation for the given operand index without markup.
      java.util.List<java.lang.Object>getDefaultOperandRepresentationList​(int opIndex)
      Get the operand representation for the given operand index.
      intgetDelaySlotDepth()
      Get the number of delay slot instructions for this argument.
      AddressgetFallFrom()
      Get the Address for the instruction that fell through to this instruction.
      AddressgetFallThrough()
      Get the fallthrough for this instruction, factoring in any fallthrough override and delay slotted instructions.
      FlowOverridegetFlowOverride()
      Returns the flow override which may have been set on this instruction.
      Address[]getFlows()
      Get an array of Address objects for all flows other than a fall-through.
      FlowTypegetFlowType()
      Get the flow type of this instruction (how this instruction flows to the next instruction).
      java.lang.Object[]getInputObjects()
      InstructionContextgetInstructionContext()
      InstructiongetNext()
      Get the instruction following this one in address order.
      RefTypegetOperandRefType​(int index)
      Get the operand reference type for the given operand index.
      intgetOperandType​(int opIndex)
      java.lang.Object[]getOpObjects​(int opIndex)
      Get objects used by this operand (Address, Scalar, Register ...)
      PcodeOp[]getPcode()
      Get an array of PCode operations (micro code) that this instruction performs.
      PcodeOp[]getPcode​(boolean includeOverrides)
      Get an array of PCode operations (micro code) that this instruction performs.
      PcodeOp[]getPcode​(int opIndex)
      Get an array of PCode operations (micro code) that a particular operand performs to compute its value.
      InstructiongetPrevious()
      Get the instruction before this one in address order.
      InstructionPrototypegetPrototype()
      RegistergetRegister​(int opIndex)
      If operand is a pure Register, return the register.
      java.lang.Object[]getResultObjects()
      Get the Result objects produced/affected by this instruction These would probably only be Register or Address
      java.lang.StringgetSeparator​(int opIndex)
      booleanhasFallthrough()
      Returns true if this instruction has a fall-through flow.
      booleanisFallthrough()
      Returns true if this instruction has no execution flow other than fall-through.
      booleanisFallThroughOverridden()
      Returns true if this instructions fallthrough has been overriden.
      booleanisInDelaySlot()
      Return true if this instruction was disassembled in a delay slot
      voidsetFallThrough​(Address addr)
      Overrides the instruction's default fallthrough address to the given address.
      voidsetFlowOverride​(FlowOverride flowOverride)
      • Methods inherited from interface ghidra.program.model.listing.CodeUnit

        addMnemonicReference, addOperandReference, compareTo, contains, getAddress, getAddressString, getBytes, getBytesInCodeUnit, getComment, getCommentAsArray, getExternalReference, getIntProperty, getLabel, getLength, getMaxAddress, getMinAddress, getMnemonicReferences, getMnemonicString, getNumOperands, getObjectProperty, getOperandReferences, getPrimaryReference, getPrimarySymbol, getProgram, getReferenceIteratorTo, getReferencesFrom, getScalar, getStringProperty, getSymbols, getVoidProperty, hasProperty, isSuccessor, propertyNames, removeExternalReference, removeMnemonicReference, removeOperandReference, removeProperty, setComment, setCommentAsArray, setPrimaryMemoryReference, setProperty, setProperty, setProperty, setProperty, setRegisterReference, setStackReference, visitProperty
      • Methods inherited from interface ghidra.program.model.mem.MemBuffer

        getAddress, getBigInteger, getByte, getBytes, getInt, getLong, getMemory, getShort, getUnsignedByte, getUnsignedInt, getUnsignedShort, getVarLengthInt, getVarLengthUnsignedInt, isBigEndian, isInitializedMemory
      • Methods inherited from interface ghidra.program.model.lang.ProcessorContext

        clearRegister, setRegisterValue, setValue
      • Methods inherited from interface ghidra.program.model.lang.ProcessorContextView

        getBaseContextRegister, getRegister, getRegisters, getRegisterValue, getValue, hasValue
Delay
  • Information and translations of delay slot in the most comprehensive dictionary definitions resource on the web. A delay slot is an instruction slot that gets.
  • In computer architecture, a delay slot is an instruction slot being executed without the effects of a preceding instruction. The most common form is a single arbitrary instruction located immediately after a branch instruction on a RISC or DSP architecture; this instruction will execute even if the preceding branch is taken.
  • On the MIPS architecture, jump and branch instructions have a 'delay slot'. This means that the instruction after the jump or branch instruction is executed before the jump or branch is executed.
Delay Slot Instruction

Delay slot instruction Home › Forums › MIPS Insider › Delay slot instruction This topic contains 1 reply, has 2 voices, and was last updated by ChrisImgtec 3 years, 4 months ago. In the branch delay slot, we edit the return address so that when function1 returns, it resumes execution at resume rather than nominalreturn, thereby avoiding having to execute another branch instruction.