#ifndef _AVR_INSTRUCTIONS_H
#define _AVR_INSTRUCTIONS_H
typedef void AVR8_InstructionProc(void);

typedef struct AVR8_Instruction {
        uint16_t opcode;
        uint16_t mask;
        const char *name;
        AVR8_InstructionProc *iproc;
        int cycles;
	int length; /* number of words */
} AVR8_Instruction;


void avr8_adc(void);
void avr8_add(void);
void avr8_adiw(void);
void avr8_and(void);
void avr8_andi(void);
void avr8_asr(void);
void avr8_bclr(void);
void avr8_bld(void);
void avr8_brbc(void);
void avr8_brbs(void);
void avr8_break(void);
void avr8_bset(void);
void avr8_bst(void);
void avr8_call(void);
void avr8_cbi(void);
void avr8_clc(void);
void avr8_clh(void);
void avr8_cli(void);
void avr8_cln(void);
void avr8_clr(void);
void avr8_cls(void);
void avr8_clt(void);
void avr8_clv(void);
void avr8_clz(void);
void avr8_com(void);
void avr8_cp(void);
void avr8_cpc(void);
void avr8_cpi(void);
void avr8_cpse(void);
void avr8_dec(void);
void avr8_eicall(void);
void avr8_eijmp(void);
void avr8_elpm1(void);
void avr8_elpm2(void);
void avr8_elpm3(void);
void avr8_eor(void);
void avr8_fmul(void);
void avr8_fmuls(void);
void avr8_fmulsu(void);
void avr8_icall(void);
void avr8_ijmp(void);
void avr8_in(void);
void avr8_inc(void);
void avr8_jmp(void);
void avr8_ld1(void);
void avr8_ld2(void);
void avr8_ld3(void);
void avr8_ldy1(void);
void avr8_ldy2(void);
void avr8_ldy3(void);
void avr8_ldy4(void);
void avr8_ldz1(void);
void avr8_ldz2(void);
void avr8_ldz3(void);
void avr8_ldz4(void);
void avr8_ldi(void);
void avr8_lds(void);
void avr8_lpm1(void);
void avr8_lpm2(void);
void avr8_lpm3(void);
void avr8_lsr(void);
void avr8_mov(void);
void avr8_movw(void);
void avr8_mul(void);
void avr8_muls(void);
void avr8_mulsu(void);
void avr8_neg(void);
void avr8_nop(void);
void avr8_or(void);
void avr8_ori(void);
void avr8_out(void);
void avr8_pop(void);
void avr8_push(void);
void avr8_rcall(void);
void avr8_ret(void);
void avr8_reti(void);
void avr8_rjmp(void);
void avr8_ror(void);
void avr8_sbc(void);
void avr8_sbci(void);
void avr8_sbi(void);
void avr8_sbic(void);
void avr8_sbis(void);
void avr8_sbiw(void);
void avr8_sbr(void);
void avr8_sbrc(void);
void avr8_sbrs(void);
void avr8_sec(void);
void avr8_seh(void);
void avr8_sei(void);
void avr8_sen(void);
void avr8_ser(void);
void avr8_ses(void);
void avr8_set(void);
void avr8_sev(void);
void avr8_sez(void);
void avr8_sleep(void);
void avr8_spm(void);
void avr8_st1(void);
void avr8_st2(void);
void avr8_st3(void);
void avr8_sty1(void);
void avr8_sty2(void);
void avr8_sty3(void);
void avr8_sty4(void);
void avr8_stz1(void);
void avr8_stz2(void);
void avr8_stz3(void);
void avr8_stz4(void);
void avr8_sts(void);
void avr8_sub(void);
void avr8_subi(void);
void avr8_swap(void);
void avr8_tst(void);
void avr8_wdr(void);
void avr8_undef(void);
#endif
