1 |
/* |
2 |
* Cisco router simulation platform. |
3 |
* Copyright (c) 2005,2006 Christophe Fillot (cf@utc.fr) |
4 |
*/ |
5 |
|
6 |
#ifndef __MIPS64_EXEC_H__ |
7 |
#define __MIPS64_EXEC_H__ |
8 |
|
9 |
#include "utils.h" |
10 |
|
11 |
/* MIPS instruction recognition */ |
12 |
struct mips64_insn_exec_tag { |
13 |
char *name; |
14 |
fastcall int (*exec)(cpu_mips_t *,mips_insn_t); |
15 |
m_uint32_t mask,value; |
16 |
int delay_slot; |
17 |
int instr_type; |
18 |
m_uint64_t count; |
19 |
}; |
20 |
|
21 |
/* Initialize instruction lookup table */ |
22 |
void mips64_exec_create_ilt(void); |
23 |
|
24 |
/* Dump statistics */ |
25 |
void mips64_dump_stats(cpu_mips_t *cpu); |
26 |
|
27 |
/* Dump an instruction */ |
28 |
int mips64_dump_insn(char *buffer,size_t buf_size,size_t insn_name_size, |
29 |
m_uint64_t pc,mips_insn_t instruction); |
30 |
|
31 |
/* Dump an instruction block */ |
32 |
void mips64_dump_insn_block(cpu_mips_t *cpu,m_uint64_t pc,u_int count, |
33 |
size_t insn_name_size); |
34 |
|
35 |
/* Single-step execution */ |
36 |
fastcall void mips64_exec_single_step(cpu_mips_t *cpu,mips_insn_t instruction); |
37 |
|
38 |
/* Run MIPS code in step-by-step mode */ |
39 |
void *mips64_exec_run_cpu(cpu_gen_t *cpu); |
40 |
|
41 |
#endif |