avrora.sim
Class GenInterpreter
java.lang.Object
avrora.sim.BaseInterpreter
avrora.sim.GenInterpreter
- All Implemented Interfaces:
- InstrVisitor, IORegisterConstants, State
- public class GenInterpreter
- extends BaseInterpreter
- implements InstrVisitor
The GenInterpreter class is largely generated from the
instruction specification. The framework around the generated code
(utilities) has been written by hand, but most of the code for
each instruction is generated. Therefore it is not recommended
to edit this code extensively.
| Fields inherited from class avrora.sim.BaseInterpreter |
C, cyclesConsumed, delayCycles, eventQueue, flash_data, flash_instr, globalProbe, H, I, innerLoop, ioregs, justReturnedFromInterrupt, N, nextPC, pc, postedInterrupts, regs, S, shouldRun, simulator, sleeping, sram, sram_max, sram_probes, sram_start, SREG_reg, T, totalCycles, V, Z |
| 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 |
protected |
GenInterpreter(Simulator s,
Program p,
int flash_size,
int ioreg_size,
int sram_size)
The constructor for the Interpreter class builds the internal data
structures needed to store the complete state of the machine, including registers,
IO registers, the SRAM, and the flash. |
| Methods inherited from class avrora.sim.BaseInterpreter |
advanceCycles, delay, disableInterrupts, enableInterrupts, getCurrentInstr, getCycles, getDataByte, getFlag_C, getFlag_H, getFlag_I, getFlag_N, getFlag_S, getFlag_T, getFlag_V, getFlag_Z, getInstr, getInstrSize, getIOReg, getIORegisterByte, getPC, getPostedInterrupts, getProbedInstr, getProgramByte, getRegisterByte, getRegisterUnsigned, getRegisterWord, getSP, getSREG, getStackByte, initializeIORegs, insertProbe, insertWatch, isSleeping, makeImpression, popByte, postInterrupt, pushByte, removeProbe, removeWatch, setDataByte, setInstr, setIOReg, setIORegisterByte, setRegisterByte, setRegisterWord, setSP, setSREG, start, stop, unimplemented, unpostInterrupt |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
R0
public static final Register R0
R1
public static final Register R1
R2
public static final Register R2
R3
public static final Register R3
R4
public static final Register R4
R5
public static final Register R5
R6
public static final Register R6
R7
public static final Register R7
R8
public static final Register R8
R9
public static final Register R9
R10
public static final Register R10
R11
public static final Register R11
R12
public static final Register R12
R13
public static final Register R13
R14
public static final Register R14
R15
public static final Register R15
R16
public static final Register R16
R17
public static final Register R17
R18
public static final Register R18
R19
public static final Register R19
R20
public static final Register R20
R21
public static final Register R21
R22
public static final Register R22
R23
public static final Register R23
R24
public static final Register R24
R25
public static final Register R25
R26
public static final Register R26
R27
public static final Register R27
R28
public static final Register R28
R29
public static final Register R29
R30
public static final Register R30
R31
public static final Register R31
RX
public static final Register RX
RY
public static final Register RY
RZ
public static final Register RZ
GenInterpreter
protected GenInterpreter(Simulator s,
Program p,
int flash_size,
int ioreg_size,
int sram_size)
- The constructor for the
Interpreter class builds the internal data
structures needed to store the complete state of the machine, including registers,
IO registers, the SRAM, and the flash. All IO registers are initialized to be
instances of RWIOReg. Reserved and special IO registers must be
inserted by the getIOReg() and setIOReg()
methods.
- Parameters:
p - the program to construct the state forflash_size - the size of the flash (program) memory in bytesioreg_size - the number of IO registerssram_size - the size of the SRAM in bytes
runLoop
protected void runLoop()
- Specified by:
runLoop in class BaseInterpreter
insertProbe
protected void insertProbe(Simulator.Probe p,
int addr)
- Specified by:
insertProbe in class BaseInterpreter
makeProbedInstr
protected avrora.sim.BaseInterpreter.ProbedInstr makeProbedInstr(int addr)
removeProbe
protected void removeProbe(Simulator.Probe p,
int addr)
- Specified by:
removeProbe in class BaseInterpreter
insertBreakPoint
protected void insertBreakPoint(int addr)
- Specified by:
insertBreakPoint in class BaseInterpreter
removeBreakPoint
protected void removeBreakPoint(int addr)
- Specified by:
removeBreakPoint in class BaseInterpreter
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