uk.ac.man.cs.rainbow.simulator.rasm
Class Roll

java.lang.Object
  |
  +--uk.ac.man.cs.rainbow.simulator.Instruction
        |
        +--uk.ac.man.cs.rainbow.simulator.rasm.Roll
All Implemented Interfaces:
Serializable

public class Roll
extends Instruction

Roll the stack contents like the PostScript roll operator. The n argument says how many values are to be rotated, and the j argument says by how much and in what direction the rotation is to take place, with the way it is written below being the way it works with positive numbers, and the reverse operation is performed by using the opposite sign for j.

vn-1 ... v0 n j v(j-1)%n ... v0 vn-1 ... vj%n

See Also:
Serialized Form

Inner classes inherited from class uk.ac.man.cs.rainbow.simulator.Instruction
Instruction.MACRO
 
Constructor Summary
Roll()
           
Roll(RASMCode code)
           
 
Method Summary
protected  boolean execute(RASMThread thread)
          Make this instruction execute in the given context.
 String toString()
           
 
Methods inherited from class uk.ac.man.cs.rainbow.simulator.Instruction
addClass, getInstruction, getInstruction, getInstruction
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Roll

public Roll()

Roll

public Roll(RASMCode code)
Method Detail

toString

public String toString()
Overrides:
toString in class Object

execute

protected boolean execute(RASMThread thread)
                   throws RASMThread.Exception
Description copied from class: Instruction
Make this instruction execute in the given context.
Overrides:
execute in class Instruction
Following copied from class: uk.ac.man.cs.rainbow.simulator.Instruction
Throws:
RainbowException - All sorts of things can go wrong during execution...