Source to ./ppc32_exec.h
/*
* Cisco router simulation platform.
* Copyright (c) 2005,2006 Christophe Fillot ([email protected])
*/
#ifndef __PPC32_EXEC_H__
#define __PPC32_EXEC_H__
#include "utils.h"
/* PowerPC instruction recognition */
struct ppc32_insn_exec_tag {
char *name;
fastcall int (*exec)(cpu_ppc_t *,ppc_insn_t);
m_uint32_t mask,value;
int instr_type;
m_uint64_t count;
};
/* Get a rotation mask */
static forced_inline m_uint32_t ppc32_rotate_mask(m_uint32_t mb,m_uint32_t me)
{
m_uint32_t mask;
mask = (0xFFFFFFFFU >> mb) ^ ((0xFFFFFFFFU >> me) >> 1);
if (me < mb)
mask = ~mask;
return(mask);
}
/* Initialize instruction lookup table */
void ppc32_exec_create_ilt(void);
/* Dump statistics */
void ppc32_dump_stats(cpu_ppc_t *cpu);
/* Execute a page */
fastcall int ppc32_exec_page(cpu_ppc_t *cpu);
/* Execute a single instruction (external) */
fastcall int ppc32_exec_single_insn_ext(cpu_ppc_t *cpu,ppc_insn_t insn);
#endif