308 |
typedef struct cpu_mips cpu_mips_t; |
typedef struct cpu_mips cpu_mips_t; |
309 |
|
|
310 |
/* Memory operation function prototype */ |
/* Memory operation function prototype */ |
311 |
typedef fastcall u_int (*mips_memop_fn)(cpu_mips_t *cpu,m_uint64_t vaddr, |
typedef fastcall void (*mips_memop_fn)(cpu_mips_t *cpu,m_uint64_t vaddr, |
312 |
u_int reg); |
u_int reg); |
313 |
|
|
314 |
/* TLB entry definition */ |
/* TLB entry definition */ |
315 |
typedef struct { |
typedef struct { |
354 |
m_uint64_t lo,hi,ret_pc; |
m_uint64_t lo,hi,ret_pc; |
355 |
|
|
356 |
/* Code page translation cache */ |
/* Code page translation cache */ |
357 |
mips64_jit_tcb_t **exec_phys_map; |
mips64_jit_tcb_t **exec_blk_map; |
358 |
|
|
359 |
/* Virtual address to physical page translation */ |
/* Virtual address to physical page translation */ |
360 |
fastcall int (*translate)(cpu_mips_t *cpu,m_uint64_t vaddr, |
fastcall int (*translate)(cpu_mips_t *cpu,m_uint64_t vaddr, |
435 |
/* Fast memory operations use */ |
/* Fast memory operations use */ |
436 |
u_int fast_memop; |
u_int fast_memop; |
437 |
|
|
438 |
|
/* Direct block jump */ |
439 |
|
u_int exec_blk_direct_jump; |
440 |
|
|
441 |
/* Address mode (32 or 64 bits) */ |
/* Address mode (32 or 64 bits) */ |
442 |
u_int addr_mode; |
u_int addr_mode; |
443 |
|
|
446 |
mips_insn_t *njm_exec_ptr; |
mips_insn_t *njm_exec_ptr; |
447 |
|
|
448 |
/* Performance counter (number of instructions executed by CPU) */ |
/* Performance counter (number of instructions executed by CPU) */ |
449 |
m_uint64_t perf_counter; |
m_uint32_t perf_counter; |
450 |
|
|
451 |
/* Breakpoints */ |
/* Breakpoints */ |
452 |
m_uint64_t breakpoints[MIPS64_MAX_BREAKPOINTS]; |
m_uint64_t breakpoints[MIPS64_MAX_BREAKPOINTS]; |