ish/jit/gen.h
2019-09-09 13:29:15 +08:00

24 lines
532 B
C

#ifndef EMU_GEN_H
#define EMU_GEN_H
#include "jit/jit.h"
#include "emu/tlb.h"
struct gen_state {
addr_t ip;
struct jit_block *block;
unsigned size;
unsigned capacity;
unsigned jump_ip[2];
unsigned block_patch_ip; // for call/call_indir gadgets
};
void gen_start(addr_t addr, struct gen_state *state);
void gen_exit(struct gen_state *state);
void gen_end(struct gen_state *state);
int gen_step32(struct gen_state *state, struct tlb *tlb);
int gen_step16(struct gen_state *state, struct tlb *tlb);
#endif