avrora.core
Class Instr.CBI

java.lang.Object
  extended byavrora.core.Instr
      extended byavrora.core.Instr.IMMIMM_class
          extended byavrora.core.Instr.CBI
All Implemented Interfaces:
InstrPrototype
Enclosing class:
Instr

public static class Instr.CBI
extends Instr.IMMIMM_class


Nested Class Summary
 
Nested classes inherited from class avrora.core.Instr
Instr.ADC, Instr.ADD, Instr.ADIW, Instr.AND, Instr.ANDI, Instr.ASR, Instr.BCLR, Instr.BLD, Instr.BRBC, Instr.BRBS, Instr.BRCC, Instr.BRCS, Instr.BREAK, Instr.BREQ, Instr.BRGE, Instr.BRHC, Instr.BRHS, Instr.BRID, Instr.BRIE, Instr.BRLO, Instr.BRLT, Instr.BRMI, Instr.BRNE, Instr.BRPL, Instr.BRSH, Instr.BRTC, Instr.BRTS, Instr.BRVC, Instr.BRVS, Instr.BSET, Instr.BST, Instr.CALL, Instr.CBI, Instr.CBR, Instr.CLC, Instr.CLH, Instr.CLI, Instr.CLN, Instr.CLR, Instr.CLS, Instr.CLT, Instr.CLV, Instr.CLZ, Instr.COM, Instr.CP, Instr.CPC, Instr.CPI, Instr.CPSE, Instr.DEC, Instr.EICALL, Instr.EIJMP, Instr.ELPM, Instr.ELPMD, Instr.ELPMPI, Instr.EOR, Instr.FMUL, Instr.FMULS, Instr.FMULSU, Instr.ICALL, Instr.IJMP, Instr.IMM_class, Instr.ImmediateRequired, Instr.IMMIMM_class, Instr.IMMREG_class, Instr.IMMWORD_class, Instr.IN, Instr.INC, Instr.InvalidImmediate, Instr.InvalidOperand, Instr.InvalidRegister, Instr.JMP, Instr.LD, Instr.LDD, Instr.LDI, Instr.LDPD, Instr.LDPI, Instr.LDS, Instr.LPM, Instr.LPMD, Instr.LPMPI, Instr.LSL, Instr.LSR, Instr.MOV, Instr.MOVW, Instr.MUL, Instr.MULS, Instr.MULSU, Instr.NEG, Instr.NONE_class, Instr.NOP, Instr.OR, Instr.ORI, Instr.OUT, Instr.POP, Instr.PUSH, Instr.RCALL, Instr.REG_class, Instr.REGIMM_class, Instr.REGIMMREG_class, Instr.RegisterRequired, Instr.REGREG_class, Instr.REGREGIMM_class, Instr.RET, Instr.RETI, Instr.RJMP, Instr.ROL, Instr.ROR, Instr.SBC, Instr.SBCI, Instr.SBI, Instr.SBIC, Instr.SBIS, Instr.SBIW, Instr.SBR, Instr.SBRC, Instr.SBRS, Instr.SEC, Instr.SEH, Instr.SEI, Instr.SEN, Instr.SER, Instr.SES, Instr.SET, Instr.SEV, Instr.SEZ, Instr.SLEEP, Instr.SPM, Instr.ST, Instr.STD, Instr.STPD, Instr.STPI, Instr.STS, Instr.SUB, Instr.SUBI, Instr.SWAP, Instr.TST, Instr.WDR, Instr.WORD_class, Instr.WrongNumberOfOperands
 
Field Summary
 
Fields inherited from class avrora.core.Instr.IMMIMM_class
imm1, imm2
 
Constructor Summary
Instr.CBI(int pc, int a, int b)
           
 
Method Summary
 void accept(InstrVisitor v)
          The accept() method is part of the visitor pattern for instructions.
 int getCycles()
          The getCycles() method returns the number of cylces consumed by the instruction in the default case.
 java.lang.String getName()
          The getName() method returns the name of the instruction as a string.
 
Methods inherited from class avrora.core.Instr.IMMIMM_class
build, getOperands
 
Methods inherited from class avrora.core.Instr
getSize, getVariant, isInstr, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Instr.CBI

public Instr.CBI(int pc,
                 int a,
                 int b)
Method Detail

getName

public java.lang.String getName()
Description copied from interface: InstrPrototype
The getName() method returns the name of the instruction as a string. For instructions that are variants of instructions, this method returns the actual name of the instruction. For example, for "ld x+, (addr)", the variant is "ldpi" (load with post increment), but the actual instruction is "ld", so this method will return "ld".

Returns:
the name of the instruction

accept

public void accept(InstrVisitor v)
Description copied from class: Instr
The accept() method is part of the visitor pattern for instructions. The visitor pattern uses two virtual dispatches combined with memory overloading to achieve dispatching on multiple types. The result is clean and modular code.

Specified by:
accept in class Instr
Parameters:
v - the visitor to accept

getCycles

public int getCycles()
Description copied from class: Instr
The getCycles() method returns the number of cylces consumed by the instruction in the default case. Most instructions consume the same amount of clock cycles no matter what behavior. For example, 8-bit arithmetic takes one cycle, load and stores take two cycles, etc. Some instructions like the branch and skip instructions take more cycles if they are taken or not taken. In that case, this count returned is the smallest number of cycles that can be consumed by this instruction.

Overrides:
getCycles in class Instr
Returns:
the number of cycles that this instruction consumes