#include "opcodefun.h"

#include <unistd.h>
#include <stdlib.h>

#include "../aux/aux.h"
#include "../var/var.h"
#include "../stack/stack.h"
#include "../virtual/virtual.h"
#include "../int/int.h"
#include "../list/list.h"
#include "../string/string.h"
#include "../builtin/builtin.h"

extern int          go_retVal;
extern FILE         *go_infile;
extern BinHeader    *go_header;
extern Variable     *go_globalVar;
extern void         (*go_pRssFun[])(void);

Variable   *o_getDest(void);
int     o_isTrue(void);

void o_call(void);
void o_exit(void);
void o_ret(void);
void o_popReg(void);
void o_push_imm(void);
void o_callRss(void);
void o_push_strconst(void);
void o_pushVar(void);
void o_popVar(void);
void o_frame(void);
void o_asp(void);
void o_add(void);
void o_shl(void);
void o_shr(void);
void o_empty(void);
void o_jmp(void);
void o_jmpTrue(void);
void o_push_reg(void);
void o_older(void);
void o_younger(void);
void o_atoi(void);
void o_atol(void);
void o_band (void);
void o_bnot(void);
void o_bor(void);
void o_dec(void);
void o_div(void);
void o_eq(void);
void o_gr(void);
void o_greq(void);
void o_inc(void);
void o_itoa(void);
void o_jmpFalse(void);
void o_mod(void);
void o_mul(void);
void o_neq(void);


void o_push_0(void);
void o_push_1_jmp_end(void);

void o_sm(void);
void o_smeq(void);
void o_sub(void);
void o_umin(void);
void o_xor(void);
void o_copyVar(void);




