Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## avrora.sim
Class Simulator

    java.lang.Object
      avrora.sim.Simulator

All Implemented Interfaces:
  InstrVisitor, IORegisterConstants

Direct Known Subclasses:
  ATMega128L.SimImpl

public abstract class Simulator
extends java.lang.Object
implements InstrVisitor, IORegisterConstants

The `Simulator` class implements a full processor simulator for the AVR instruction set. It is the base class of specific implementations that implement processor-specific behavior.

Nested Class Summary
`static class` | `Simulator.BreakPointException` The `BreakPointException` is an exception that is thrown by the simulator before it executes an instruction which has a breakpoint.
`static class` | `Simulator.ClockCycleTimeout` The `InstructionCountTimeout` class is a probe that simply counts down and throws an exception when the count reaches zero.
`class` | `Simulator.FlagRegister`
`static class` | `Simulator.InstructionCountTimeout` The `InstructionCountTimeout` class is a probe that simply counts down and throws a `TimeoutException` when the count reaches zero.
`static interface` | `Simulator.Interrupt` The `Interrupt` interface represents the behavior of an interrupt (how it manipulates the state of the processor) when it is posted and when it is triggered (handler is executed by the processor).
`class` | `Simulator.MaskableInterrupt`
`class` | `Simulator.MaskRegister`
`static interface` | `Simulator.MemoryProbe`
`static interface` | `Simulator.Probe` The `Simulator.Probe` interface represents a programmer-defined probe that can be inserted at particular instructions or at every instruction.
`static class` | `Simulator.TimeoutException` The `TimeoutException` is thrown by the simulator when a timeout reaches zero.
`static interface` | `Simulator.Trigger` The `Simulator.Trigger` interface represents a trigger that is fired when a timed event occurs within the simulator.

Field Summary
`protected MulticastProbe` | `activeProbe` The `activeProbe` field stores a reference to a `MulticastProbe` that contains all of the probes to be fired before and after the main execution runLoop--i.e. before and after every instruction.
`protected int` | `cyclesConsumed`
`protected DeltaQueue` | `eventQueue` The `eventQueue` field stores a reference to the event queue, a delta list of all events to be processed in order.
`static Simulator.Interrupt` | `IGNORE` The `IGNORE` field stores a reference to a singleton anonymous class that ignores posting and firing of an interrupt.
`protected Simulator.Interrupt[]` | `interrupts` The `interrupts` array stores a reference to an `Interrupt` instance for each of the interrupt vectors supported in the simulator.
`protected boolean` | `justReturnedFromInterrupt` The `justReturnedFromInterrupt` field is used internally in maintaining the invariant stated in the hardware manual that at least one instruction following a return from an interrupt is executed before another interrupt can be processed.
`static int` | `MAX_INTERRUPTS` The `MAX_INTERRUPTS` fields stores the maximum number of interrupt vectors supported by the simulator.
`protected Microcontroller` | `microcontroller`
`protected int` | `nextPC` The `nextPC` field is used internally in maintaining the correct execution order of the instructions.
`protected Program` | `program` The `program` field allows descendants of the `Simulator` class to access the program that is currently loaded in the simulator.
`protected boolean` | `shouldRun` The `shouldRun` flag is used internally in the main execution runLoop to implement the correct semantics of `start()` and `stop()` to the clients.
`protected boolean` | `sleeping` The `sleeping` flag is used internally in the simulator when the microcontroller enters the sleep mode.
`protected State` | `state` The `state` field stores a reference to the `State` object that represents the state of the processor in the simulation.
`static Simulator.Probe` | `TRACEPROBE` The `TRACEPROBE` field represents a simple probe that prints an instruction to the terminal as it is encountered.

Fields inherited from interface avrora.sim.IORegisterConstants
`ACSR, ADCH, ADCL, ADCSRA, ADMUX, ASSR, DDRA, DDRB, DDRC, DDRD, DDRE, DDRF, DDRG, EEARH, EEARL, EECR, EEDR, EICRA, EICRB, EIFR, EIMSK, ETIFR, ETIMSK, ICR1H, ICR1L, ICR3H, ICR3L, MCUCR, MCUCSR, NUM_REGS, OCDR, OCR0, OCR1AH, OCR1AL, OCR1BH, OCR1BL, OCR1CH, OCR1CL, OCR2, OCR3AH, OCR3AL, OCR3BH, OCR3BL, OCR3CH, OCR3CL, OSCCAL, PINA, PINB, PINC, PIND, PINE, PINF, PING, PORTA, PORTB, PORTC, PORTD, PORTE, PORTF, PORTG, RAMPZ, SFIOR, SPCR, SPDR, SPH, SPL, SPMCSR, SPSR, SREG, SREG_C, SREG_H, SREG_I, SREG_N, SREG_S, SREG_T, SREG_V, SREG_Z, TCCR0, TCCR1A, TCCR1B, TCCR1C, TCCR2, TCCR3A, TCCR3B, TCCR3C, TCNT0, TCNT1H, TCNT1L, TCNT2, TCNT3H, TCNT3L, TIFR, TIMSK, TWAR, TWBR, TWCR, TWDR, TWSR, UBRR0H, UBRR0L, UBRR1H, UBRR1L, UCSR0A, UCSR0B, UCSR0C, UCSR1A, UCSR1B, UCSR1C, UDR0, UDR1, WDTCR, XDIV, XMCRA, XMCRB`

Constructor Summary
`Simulator(Microcontroller mcu, Program p)` The constructor creates the internal data structures and initial state of the processor.

Method Summary
`PeriodicTrigger` | `addPeriodicTimerEvent(Simulator.Trigger e, long period)` The `addPeriodicTimerEvent()` method inserts a trigger into the event queue of the simulator with the specified period.
`void` | `addTimerEvent(Simulator.Trigger e, long cycles)` The `addTimerEvent()` method inserts a trigger into the event queue of the simulator with the specified delay in clock cycles.
`protected State` | `constructState()`
`void` | `forceInterrupt(int num)` The `forceInterrupt()` method forces the simulator to post the specified interrupt regardless of the normal source of the interrupt.
`protected int` | `getInterruptVectorAddress(int inum)` The `getInterruptVectorAddress()` method computes the location in memory to jump to for the given interrupt number.
`Microcontroller` | `getMicrocontroller()`
`State` | `getState()` The `getState()` retrieves a reference to the current state of the simulation, including the values of all registers, the SRAM, the IO register, the program memory, program counter, etc.
`void` | `insertBreakPoint(int addr)` The `insertBreakPoint()` method inserts a breakpoint at the instruction at the specified address.
`void` | `insertProbe(Simulator.Probe p)` The `insertProbe()` method allows a probe to be inserted that is executed before and after every instruction that is executed by the simulator
`void` | `insertProbe(Simulator.Probe p, int addr)` The `insertProbe()` method allows a probe to be inserted at a particular address in the program that corresponds to an instruction.
`void` | `removeBreakPoint(int addr)` The `removeBreakPoint` method removes all breakpoints at the specified instruction at the specified address.
`void` | `removeProbe(Simulator.Probe b)` The `removeProbe()` method removes a probe from the global probe table (the probes executed before and after every instruction).
`void` | `removeProbe(Simulator.Probe p, int addr)` The `removeProbe()` method removes a probe from the instruction at the specified the address.
`void` | `removeTimerEvent(Simulator.Trigger e)` The `removeTimerEvent()` method removes a trigger from the event queue of the simulator.
`void` | `reset()` The `reset()` method stops the simulation and resets its state to the default initial state.
`void` | `setWatchPoint(Simulator.MemoryProbe p, int data_addr)` The `setWatchPoint()` method allows a probe to be inserted at a memory location.
`void` | `start()` The `start()` method begins the simulation.
`void` | `stop()` The `stop()` method stops the simulation if it is running.
`protected void` | `triggerInterrupt(int num)`
`void` | `visit(Instr.ADC i)`
`void` | `visit(Instr.ADD i)`
`void` | `visit(Instr.ADIW i)`
`void` | `visit(Instr.AND i)`
`void` | `visit(Instr.ANDI i)`
`void` | `visit(Instr.ASR i)`
`void` | `visit(Instr.BCLR i)`
`void` | `visit(Instr.BLD i)`
`void` | `visit(Instr.BRBC i)`
`void` | `visit(Instr.BRBS i)`
`void` | `visit(Instr.BRCC i)`
`void` | `visit(Instr.BRCS i)`
`void` | `visit(Instr.BREAK i)`
`void` | `visit(Instr.BREQ i)`
`void` | `visit(Instr.BRGE i)`
`void` | `visit(Instr.BRHC i)`
`void` | `visit(Instr.BRHS i)`
`void` | `visit(Instr.BRID i)`
`void` | `visit(Instr.BRIE i)`
`void` | `visit(Instr.BRLO i)`
`void` | `visit(Instr.BRLT i)`
`void` | `visit(Instr.BRMI i)`
`void` | `visit(Instr.BRNE i)`
`void` | `visit(Instr.BRPL i)`
`void` | `visit(Instr.BRSH i)`
`void` | `visit(Instr.BRTC i)`
`void` | `visit(Instr.BRTS i)`
`void` | `visit(Instr.BRVC i)`
`void` | `visit(Instr.BRVS i)`
`void` | `visit(Instr.BSET i)`
`void` | `visit(Instr.BST i)`
`void` | `visit(Instr.CALL i)`
`void` | `visit(Instr.CBI i)`
`void` | `visit(Instr.CBR i)`
`void` | `visit(Instr.CLC i)`
`void` | `visit(Instr.CLH i)`
`void` | `visit(Instr.CLI i)`
`void` | `visit(Instr.CLN i)`
`void` | `visit(Instr.CLR i)`
`void` | `visit(Instr.CLS i)`
`void` | `visit(Instr.CLT i)`
`void` | `visit(Instr.CLV i)`
`void` | `visit(Instr.CLZ i)`
`void` | `visit(Instr.COM i)`
`void` | `visit(Instr.CP i)`
`void` | `visit(Instr.CPC i)`
`void` | `visit(Instr.CPI i)`
`void` | `visit(Instr.CPSE i)`
`void` | `visit(Instr.DEC i)`
`void` | `visit(Instr.EICALL i)`
`void` | `visit(Instr.EIJMP i)`
`void` | `visit(Instr.ELPM i)`
`void` | `visit(Instr.ELPMD i)`
`void` | `visit(Instr.ELPMPI i)`
`void` | `visit(Instr.EOR i)`
`void` | `visit(Instr.FMUL i)`
`void` | `visit(Instr.FMULS i)`
`void` | `visit(Instr.FMULSU i)`
`void` | `visit(Instr.ICALL i)`
`void` | `visit(Instr.IJMP i)`
`void` | `visit(Instr.IN i)`
`void` | `visit(Instr.INC i)`
`void` | `visit(Instr.JMP i)`
`void` | `visit(Instr.LD i)`
`void` | `visit(Instr.LDD i)`
`void` | `visit(Instr.LDI i)`
`void` | `visit(Instr.LDPD i)`
`void` | `visit(Instr.LDPI i)`
`void` | `visit(Instr.LDS i)`
`void` | `visit(Instr.LPM i)`
`void` | `visit(Instr.LPMD i)`
`void` | `visit(Instr.LPMPI i)`
`void` | `visit(Instr.LSL i)`
`void` | `visit(Instr.LSR i)`
`void` | `visit(Instr.MOV i)`
`void` | `visit(Instr.MOVW i)`
`void` | `visit(Instr.MUL i)`
`void` | `visit(Instr.MULS i)`
`void` | `visit(Instr.MULSU i)`
`void` | `visit(Instr.NEG i)`
`void` | `visit(Instr.NOP i)`
`void` | `visit(Instr.OR i)`
`void` | `visit(Instr.ORI i)`
`void` | `visit(Instr.OUT i)`
`void` | `visit(Instr.POP i)`
`void` | `visit(Instr.PUSH i)`
`void` | `visit(Instr.RCALL i)`
`void` | `visit(Instr.RET i)`
`void` | `visit(Instr.RETI i)`
`void` | `visit(Instr.RJMP i)`
`void` | `visit(Instr.ROL i)`
`void` | `visit(Instr.ROR i)`
`void` | `visit(Instr.SBC i)`
`void` | `visit(Instr.SBCI i)`
`void` | `visit(Instr.SBI i)`
`void` | `visit(Instr.SBIC i)`
`void` | `visit(Instr.SBIS i)`
`void` | `visit(Instr.SBIW i)`
`void` | `visit(Instr.SBR i)`
`void` | `visit(Instr.SBRC i)`
`void` | `visit(Instr.SBRS i)`
`void` | `visit(Instr.SEC i)`
`void` | `visit(Instr.SEH i)`
`void` | `visit(Instr.SEI i)`
`void` | `visit(Instr.SEN i)`
`void` | `visit(Instr.SER i)`
`void` | `visit(Instr.SES i)`
`void` | `visit(Instr.SET i)`
`void` | `visit(Instr.SEV i)`
`void` | `visit(Instr.SEZ i)`
`void` | `visit(Instr.SLEEP i)`
`void` | `visit(Instr.SPM i)`
`void` | `visit(Instr.ST i)`
`void` | `visit(Instr.STD i)`
`void` | `visit(Instr.STPD i)`
`void` | `visit(Instr.STPI i)`
`void` | `visit(Instr.STS i)`
`void` | `visit(Instr.SUB i)`
`void` | `visit(Instr.SUBI i)`
`void` | `visit(Instr.SWAP i)`
`void` | `visit(Instr.TST i)`
`void` | `visit(Instr.WDR i)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### TRACEPROBE

    public static final Simulator.Probe TRACEPROBE

  The `TRACEPROBE` field represents a simple probe that prints an instruction to the terminal as it is encountered. This is useful for tracing program execution over simulation.

### program

    protected final Program program

  The `program` field allows descendants of the `Simulator` class to access the program that is currently loaded in the simulator.

### microcontroller

    protected final Microcontroller microcontroller

### state

    protected State state

  The `state` field stores a reference to the `State` object that represents the state of the processor in the simulation. It is protected to allow subclasses access.

### activeProbe

    protected final MulticastProbe activeProbe

  The `activeProbe` field stores a reference to a `MulticastProbe` that contains all of the probes to be fired before and after the main execution runLoop--i.e. before and after every instruction.

### shouldRun

    protected boolean shouldRun

  The `shouldRun` flag is used internally in the main execution runLoop to implement the correct semantics of `start()` and `stop()` to the clients.

### sleeping

    protected boolean sleeping

  The `sleeping` flag is used internally in the simulator when the microcontroller enters the sleep mode.

### justReturnedFromInterrupt

    protected boolean justReturnedFromInterrupt

  The `justReturnedFromInterrupt` field is used internally in maintaining the invariant stated in the hardware manual that at least one instruction following a return from an interrupt is executed before another interrupt can be processed.

### nextPC

    protected int nextPC

  The `nextPC` field is used internally in maintaining the correct execution order of the instructions.

### cyclesConsumed

    protected int cyclesConsumed

### interrupts

    protected Simulator.Interrupt[] interrupts

  The `interrupts` array stores a reference to an `Interrupt` instance for each of the interrupt vectors supported in the simulator.

### eventQueue

    protected DeltaQueue eventQueue

  The `eventQueue` field stores a reference to the event queue, a delta list of all events to be processed in order.

### MAX_INTERRUPTS

    public static int MAX_INTERRUPTS

  The `MAX_INTERRUPTS` fields stores the maximum number of interrupt vectors supported by the simulator.

### IGNORE

    public static final Simulator.Interrupt IGNORE

  The `IGNORE` field stores a reference to a singleton anonymous class that ignores posting and firing of an interrupt. This is the default value for interrupts in a freshly initialized `Simulator` instance.

Constructor Detail

### Simulator

    public Simulator(Microcontroller mcu,
                     Program p)

  The constructor creates the internal data structures and initial state of the processor. It constructs an instance of the simulator that is ready to have devices attached, IO registers probed, and probes and events inserted. Users should not create `Simulator` instances directly, but instead should get an instance of the appropriate processor and load the program into it.

Parameters:
  `p` - the program to load into the simulator

Method Detail

### getMicrocontroller

    public Microcontroller getMicrocontroller()

### getState

    public State getState()

  The `getState()` retrieves a reference to the current state of the simulation, including the values of all registers, the SRAM, the IO register, the program memory, program counter, etc. This state is mutable.

  Returns:
    a reference to the current state of the simulation

### start

    public void start()

  The `start()` method begins the simulation. It causes the simulator to enter a runLoop that executes instructions, firing probes and triggers as it executes. The `start()` method returns normally when the break AVR instruction is executed, when a `BreakPointException` is thrown, when a `TimeoutException` is thrown, or when the `stop()` method on this simulator instance is called.

### stop

    public void stop()

  The `stop()` method stops the simulation if it is running. This method can be called from within a probe or trigger or from another thread.

### reset

    public void reset()

  The `reset()` method stops the simulation and resets its state to the default initial state. Probes inserted in the program are retained. All triggers are removed.

### constructState

    protected State constructState()

### getInterruptVectorAddress

    protected int getInterruptVectorAddress(int inum)

  The `getInterruptVectorAddress()` method computes the location in memory to jump to for the given interrupt number. On the Atmega128L, the starting point is the beginning of memory and each interrupt vector slot is 4 bytes. On older architectures, this is not the case, therefore this method has to be implemented according to the specific device being simulated.

  Parameters:
    `inum` - the interrupt number
  Returns:
    the byte address that represents the address in the program to jump to when this interrupt is fired

### insertProbe

    public void insertProbe(Simulator.Probe p)

  The `insertProbe()` method allows a probe to be inserted that is executed before and after every instruction that is executed by the simulator

  Parameters:
    `p` - the probe to insert

### insertProbe

    public void insertProbe(Simulator.Probe p,
                            int addr)

  The `insertProbe()` method allows a probe to be inserted at a particular address in the program that corresponds to an instruction. The probe is then fired before and after that particular instruction is executed.

  Parameters:
    `p` - the probe to insert
    `addr` - the address at which to insert the probe

### removeProbe

    public void removeProbe(Simulator.Probe b)

  The `removeProbe()` method removes a probe from the global probe table (the probes executed before and after every instruction). The comparison used is reference equality, not `.equals()`.

  Parameters:
    `b` - the probe to remove

### removeProbe

    public void removeProbe(Simulator.Probe p,
                            int addr)

  The `removeProbe()` method removes a probe from the instruction at the specified the address. The comparison used is reference equality, not `.equals()`.

  Parameters:
    `p` - the probe to remove
    `addr` - the address from which to remove the probe

### insertBreakPoint

    public void insertBreakPoint(int addr)

  The `insertBreakPoint()` method inserts a breakpoint at the instruction at the specified address. At most one breakpoint can be inserted at a particular instruction. Subsequent calls to this method would then have no effect for the same address.

  Parameters:
    `addr` -

### removeBreakPoint

    public void removeBreakPoint(int addr)

  The `removeBreakPoint` method removes all breakpoints at the specified instruction at the specified address.

  Parameters:
    `addr` -

### setWatchPoint

    public void setWatchPoint(Simulator.MemoryProbe p,
                              int data_addr)

  The `setWatchPoint()` method allows a probe to be inserted at a memory location. The probe will be executed before every read or write to that memory location.

  Parameters:
    `p` - the probe to insert
    `data_addr` - the data address at which to insert the probe

### forceInterrupt

    public void forceInterrupt(int num)

  The `forceInterrupt()` method forces the simulator to post the specified interrupt regardless of the normal source of the interrupt. If there is a flag register associated with the specified interrupt, then the flag register's value will be set as if the original source of the interrupt (e.g. a timer) had posted the interrupt. As with a normal post of the interrupt, if the interrupt is masked out via a mask register or the master interrupt enable bit, the interrupt will not be delivered. The main reason that this interface exists is for forcing programs to handle interrupts and observe their behavior.

  Parameters:
    `num` - the interrupt number to force

### triggerInterrupt

    protected void triggerInterrupt(int num)

### addTimerEvent

    public void addTimerEvent(Simulator.Trigger e,
                              long cycles)

  The `addTimerEvent()` method inserts a trigger into the event queue of the simulator with the specified delay in clock cycles. The trigger will then be executed at the future time specified

  Parameters:
    `e` - the trigger to be inserted
    `cycles` - the number of cycles in the future at which to trigger

### addPeriodicTimerEvent

    public PeriodicTrigger addPeriodicTimerEvent(Simulator.Trigger e,
                                                 long period)

  The `addPeriodicTimerEvent()` method inserts a trigger into the event queue of the simulator with the specified period. The `PeriodicTrigger` instance created will continually reinsert the trigger after each firing to achieve predictable periodic behavior.

  Parameters:
    `e` - the trigger to insert
    `period` - the period in clock cycles
  Returns:
    the `PeriodicTrigger` instance inserted

### removeTimerEvent

    public void removeTimerEvent(Simulator.Trigger e)

  The `removeTimerEvent()` method removes a trigger from the event queue of the simulator. The comparison used is reference equality, not `.equals()`.

  Parameters:
    `e` - the trigger to remove

### visit

    public void visit(Instr.ADC i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.ADD i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.ADIW i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.AND i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.ANDI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.ASR i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BCLR i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BLD i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRBC i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRBS i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRCC i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRCS i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BREAK i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BREQ i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRGE i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRHC i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRHS i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRID i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRIE i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRLO i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRLT i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRMI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRNE i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRPL i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRSH i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRTC i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRTS i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRVC i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BRVS i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BSET i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.BST i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CALL i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CBI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CBR i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CLC i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CLH i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CLI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CLN i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CLR i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CLS i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CLT i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CLV i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CLZ i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.COM i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CP i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CPC i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CPI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.CPSE i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.DEC i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.EICALL i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.EIJMP i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.ELPM i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.ELPMD i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.ELPMPI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.EOR i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.FMUL i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.FMULS i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.FMULSU i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.ICALL i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.IJMP i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.IN i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.INC i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.JMP i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.LD i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.LDD i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.LDI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.LDPD i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.LDPI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.LDS i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.LPM i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.LPMD i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.LPMPI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.LSL i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.LSR i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.MOV i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.MOVW i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.MUL i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.MULS i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.MULSU i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.NEG i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.NOP i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.OR i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.ORI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.OUT i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.POP i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.PUSH i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.RCALL i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.RET i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.RETI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.RJMP i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.ROL i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.ROR i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SBC i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SBCI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SBI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SBIC i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SBIS i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SBIW i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SBR i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SBRC i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SBRS i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SEC i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SEH i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SEI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SEN i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SER i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SES i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SET i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SEV i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SEZ i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SLEEP i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SPM i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.ST i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.STD i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.STPD i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.STPI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.STS i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SUB i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SUBI i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.SWAP i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.TST i)

  Specified by:
    `visit` in interface `InstrVisitor`

### visit

    public void visit(Instr.WDR i)

  Specified by:
    `visit` in interface `InstrVisitor`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD