1 |
dpavlin |
1 |
/* |
2 |
|
|
* Cisco 7200 (Predator) 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 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 |
|
|
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_mips_t *cpu); |
40 |
|
|
|
41 |
|
|
#endif |