aboutsummaryrefslogtreecommitdiff
path: root/target-ppc
diff options
context:
space:
mode:
Diffstat (limited to 'target-ppc')
-rw-r--r--target-ppc/cpu.h88
-rw-r--r--target-ppc/helper.c116
-rw-r--r--target-ppc/helper.h2
-rw-r--r--target-ppc/op_helper.c166
-rw-r--r--target-ppc/translate.c18
-rw-r--r--target-ppc/translate_init.c78
6 files changed, 233 insertions, 235 deletions
diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h
index 27f523f6f3..cd120d03c6 100644
--- a/target-ppc/cpu.h
+++ b/target-ppc/cpu.h
@@ -70,8 +70,8 @@
/*****************************************************************************/
/* MMU model */
-typedef enum powerpc_mmu_t powerpc_mmu_t;
-enum powerpc_mmu_t {
+typedef enum powerpc_mmu e_powerpc_mmu;
+enum powerpc_mmu {
POWERPC_MMU_UNKNOWN = 0x00000000,
/* Standard 32 bits PowerPC MMU */
POWERPC_MMU_32B = 0x00000001,
@@ -104,8 +104,8 @@ enum powerpc_mmu_t {
/*****************************************************************************/
/* Exception model */
-typedef enum powerpc_excp_t powerpc_excp_t;
-enum powerpc_excp_t {
+typedef enum powerpc_excp e_powerpc_excp;
+enum powerpc_excp {
POWERPC_EXCP_UNKNOWN = 0,
/* Standard PowerPC exception model */
POWERPC_EXCP_STD,
@@ -258,8 +258,8 @@ enum {
/*****************************************************************************/
/* Input pins model */
-typedef enum powerpc_input_t powerpc_input_t;
-enum powerpc_input_t {
+typedef enum powerpc_input e_powerpc_input;
+enum powerpc_input {
PPC_FLAGS_INPUT_UNKNOWN = 0,
/* PowerPC 6xx bus */
PPC_FLAGS_INPUT_6xx,
@@ -278,20 +278,18 @@ enum powerpc_input_t {
#define PPC_INPUT(env) (env->bus_model)
/*****************************************************************************/
-typedef struct ppc_def_t ppc_def_t;
-typedef struct opc_handler_t opc_handler_t;
+typedef struct ppc_def a_ppc_def;
+typedef struct opc_handler an_opc_handler;
/*****************************************************************************/
/* Types used to describe some PowerPC registers */
typedef struct CPUPPCState CPUPPCState;
-typedef struct ppc_tb_t ppc_tb_t;
-typedef struct ppc_spr_t ppc_spr_t;
-typedef struct ppc_dcr_t ppc_dcr_t;
-typedef union ppc_avr_t ppc_avr_t;
-typedef union ppc_tlb_t ppc_tlb_t;
+typedef struct ppc_tb a_ppc_tb;
+typedef struct ppc_spr a_ppc_spr;
+typedef struct ppc_dcr a_ppc_dcr;
/* SPR access micro-ops generations callbacks */
-struct ppc_spr_t {
+struct ppc_spr {
void (*uea_read)(void *opaque, int gpr_num, int spr_num);
void (*uea_write)(void *opaque, int spr_num, int gpr_num);
#if !defined(CONFIG_USER_ONLY)
@@ -304,7 +302,7 @@ struct ppc_spr_t {
};
/* Altivec registers (128 bits) */
-union ppc_avr_t {
+union ppc_avr {
float32 f[4];
uint8_t u8[16];
uint16_t u16[8];
@@ -316,16 +314,16 @@ union ppc_avr_t {
};
/* Software TLB cache */
-typedef struct ppc6xx_tlb_t ppc6xx_tlb_t;
-struct ppc6xx_tlb_t {
+typedef struct ppc6xx_tlb a_ppc6xx_tlb;
+struct ppc6xx_tlb {
target_ulong pte0;
target_ulong pte1;
target_ulong EPN;
};
-typedef struct ppcemb_tlb_t ppcemb_tlb_t;
-struct ppcemb_tlb_t {
- target_phys_addr_t RPN;
+typedef struct ppcemb_tlb a_ppcemb_tlb;
+struct ppcemb_tlb {
+ a_target_phys_addr RPN;
target_ulong EPN;
target_ulong PID;
target_ulong size;
@@ -333,13 +331,13 @@ struct ppcemb_tlb_t {
uint32_t attr; /* Storage attributes */
};
-union ppc_tlb_t {
- ppc6xx_tlb_t tlb6;
- ppcemb_tlb_t tlbe;
+union ppc_tlb {
+ a_ppc6xx_tlb tlb6;
+ a_ppcemb_tlb tlbe;
};
-typedef struct ppc_slb_t ppc_slb_t;
-struct ppc_slb_t {
+typedef struct ppc_slb a_ppc_slb;
+struct ppc_slb {
uint64_t tmp64;
uint32_t tmp;
};
@@ -590,7 +588,7 @@ struct CPUPPCState {
/* Address space register */
target_ulong asr;
/* PowerPC 64 SLB area */
- ppc_slb_t slb[64];
+ a_ppc_slb slb[64];
int slb_nr;
#endif
/* segment registers */
@@ -607,7 +605,7 @@ struct CPUPPCState {
int last_way; /* Last used way used to allocate TLB in a LRU way */
int id_tlbs; /* If 1, MMU has separated TLBs for instructions & data */
int nb_pids; /* Number of available PID registers */
- ppc_tlb_t *tlb; /* TLB is optional. Allocate them only if needed */
+ union ppc_tlb *tlb; /* TLB is optional. Allocate them only if needed */
/* 403 dedicated access protection registers */
target_ulong pb[4];
#endif
@@ -615,9 +613,9 @@ struct CPUPPCState {
/* Other registers */
/* Special purpose registers */
target_ulong spr[1024];
- ppc_spr_t spr_cb[1024];
+ a_ppc_spr spr_cb[1024];
/* Altivec registers */
- ppc_avr_t avr[32];
+ union ppc_avr avr[32];
uint32_t vscr;
/* SPE registers */
uint64_t spe_acc;
@@ -628,9 +626,9 @@ struct CPUPPCState {
/* Internal devices resources */
/* Time base and decrementer */
- ppc_tb_t *tb_env;
+ a_ppc_tb *tb_env;
/* Device control registers */
- ppc_dcr_t *dcr_env;
+ a_ppc_dcr *dcr_env;
int dcache_line_size;
int icache_line_size;
@@ -638,9 +636,9 @@ struct CPUPPCState {
/* Those resources are used during exception processing */
/* CPU model definition */
target_ulong msr_mask;
- powerpc_mmu_t mmu_model;
- powerpc_excp_t excp_model;
- powerpc_input_t bus_model;
+ e_powerpc_mmu mmu_model;
+ e_powerpc_excp excp_model;
+ e_powerpc_input bus_model;
int bfd_mach;
uint32_t flags;
uint64_t insns_flags;
@@ -667,7 +665,7 @@ struct CPUPPCState {
target_ulong nip;
/* opcode handlers */
- opc_handler_t *opcodes[0x40];
+ an_opc_handler *opcodes[0x40];
/* Those resources are used only in Qemu core */
target_ulong hflags; /* hflags is a MSR & HFLAGS_MASK */
@@ -683,12 +681,12 @@ struct CPUPPCState {
};
/* Context used internally during MMU translations */
-typedef struct mmu_ctx_t mmu_ctx_t;
-struct mmu_ctx_t {
- target_phys_addr_t raddr; /* Real address */
- target_phys_addr_t eaddr; /* Effective address */
+typedef struct mmu_ctx a_mmu_ctx;
+struct mmu_ctx {
+ a_target_phys_addr raddr; /* Real address */
+ a_target_phys_addr eaddr; /* Effective address */
int prot; /* Protection bits */
- target_phys_addr_t pg_addr[2]; /* PTE tables base addresses */
+ a_target_phys_addr pg_addr[2]; /* PTE tables base addresses */
target_ulong ptem; /* Virtual segment ID | API */
int key; /* Access key */
int nx; /* Non-execute area */
@@ -707,7 +705,7 @@ int cpu_ppc_signal_handler (int host_signum, void *pinfo,
int cpu_ppc_handle_mmu_fault (CPUPPCState *env, target_ulong address, int rw,
int mmu_idx, int is_softmmu);
#define cpu_handle_mmu_fault cpu_ppc_handle_mmu_fault
-int get_physical_address (CPUPPCState *env, mmu_ctx_t *ctx, target_ulong vaddr,
+int get_physical_address (CPUPPCState *env, a_mmu_ctx *ctx, target_ulong vaddr,
int rw, int access_type);
void do_interrupt (CPUPPCState *env);
void ppc_hw_interrupt (CPUPPCState *env);
@@ -738,8 +736,8 @@ void cpu_ppc_reset (void *opaque);
void ppc_cpu_list (FILE *f, int (*cpu_fprintf)(FILE *f, const char *fmt, ...));
-const ppc_def_t *cpu_ppc_find_by_name (const char *name);
-int cpu_ppc_register_internal (CPUPPCState *env, const ppc_def_t *def);
+const a_ppc_def *cpu_ppc_find_by_name (const char *name);
+int cpu_ppc_register_internal (CPUPPCState *env, const a_ppc_def *def);
/* Time-base and decrementer management */
#ifndef NO_CPU_IO_DEFS
@@ -797,8 +795,8 @@ static inline uint64_t ppc_dump_gpr(CPUPPCState *env, int gprn)
}
/* Device control registers */
-int ppc_dcr_read (ppc_dcr_t *dcr_env, int dcrn, target_ulong *valp);
-int ppc_dcr_write (ppc_dcr_t *dcr_env, int dcrn, target_ulong val);
+int ppc_dcr_read (a_ppc_dcr *dcr_env, int dcrn, target_ulong *valp);
+int ppc_dcr_write (a_ppc_dcr *dcr_env, int dcrn, target_ulong val);
#define cpu_init cpu_ppc_init
#define cpu_exec cpu_ppc_exec
diff --git a/target-ppc/helper.c b/target-ppc/helper.c
index 5c85c6120a..afe538fea2 100644
--- a/target-ppc/helper.c
+++ b/target-ppc/helper.c
@@ -97,7 +97,7 @@ int cpu_ppc_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
return 1;
}
-target_phys_addr_t cpu_get_phys_page_debug (CPUState *env, target_ulong addr)
+a_target_phys_addr cpu_get_phys_page_debug (CPUState *env, target_ulong addr)
{
return addr;
}
@@ -197,7 +197,7 @@ static inline int check_prot(int prot, int rw, int access_type)
return ret;
}
-static inline int _pte_check(mmu_ctx_t *ctx, int is_64b, target_ulong pte0,
+static inline int _pte_check(a_mmu_ctx *ctx, int is_64b, target_ulong pte0,
target_ulong pte1, int h, int rw, int type)
{
target_ulong ptem, mmask;
@@ -233,7 +233,7 @@ static inline int _pte_check(mmu_ctx_t *ctx, int is_64b, target_ulong pte0,
pp = pte1 & 0x00000003;
}
if (ptem == ctx->ptem) {
- if (ctx->raddr != (target_phys_addr_t)-1ULL) {
+ if (ctx->raddr != (a_target_phys_addr)-1ULL) {
/* all matches should have equal RPN, WIMG & PP */
if ((ctx->raddr & mmask) != (pte1 & mmask)) {
qemu_log("Bad RPN/WIMG/PP\n");
@@ -259,21 +259,21 @@ static inline int _pte_check(mmu_ctx_t *ctx, int is_64b, target_ulong pte0,
return ret;
}
-static inline int pte32_check(mmu_ctx_t *ctx, target_ulong pte0,
+static inline int pte32_check(a_mmu_ctx *ctx, target_ulong pte0,
target_ulong pte1, int h, int rw, int type)
{
return _pte_check(ctx, 0, pte0, pte1, h, rw, type);
}
#if defined(TARGET_PPC64)
-static inline int pte64_check(mmu_ctx_t *ctx, target_ulong pte0,
+static inline int pte64_check(a_mmu_ctx *ctx, target_ulong pte0,
target_ulong pte1, int h, int rw, int type)
{
return _pte_check(ctx, 1, pte0, pte1, h, rw, type);
}
#endif
-static inline int pte_update_flags(mmu_ctx_t *ctx, target_ulong *pte1p,
+static inline int pte_update_flags(a_mmu_ctx *ctx, target_ulong *pte1p,
int ret, int rw)
{
int store = 0;
@@ -317,7 +317,7 @@ static inline int ppc6xx_tlb_getnum(CPUState *env, target_ulong eaddr, int way,
static inline void ppc6xx_tlb_invalidate_all(CPUState *env)
{
- ppc6xx_tlb_t *tlb;
+ a_ppc6xx_tlb *tlb;
int nr, max;
//LOG_SWTLB("Invalidate all TLBs\n");
@@ -337,7 +337,7 @@ static inline void __ppc6xx_tlb_invalidate_virt(CPUState *env,
int is_code, int match_epn)
{
#if !defined(FLUSH_ALL_TLBS)
- ppc6xx_tlb_t *tlb;
+ a_ppc6xx_tlb *tlb;
int way, nr;
/* Invalidate ITLB + DTLB, all ways */
@@ -366,7 +366,7 @@ static inline void ppc6xx_tlb_invalidate_virt(CPUState *env,
void ppc6xx_tlb_store (CPUState *env, target_ulong EPN, int way, int is_code,
target_ulong pte0, target_ulong pte1)
{
- ppc6xx_tlb_t *tlb;
+ a_ppc6xx_tlb *tlb;
int nr;
nr = ppc6xx_tlb_getnum(env, EPN, way, is_code);
@@ -382,10 +382,10 @@ void ppc6xx_tlb_store (CPUState *env, target_ulong EPN, int way, int is_code,
env->last_way = way;
}
-static inline int ppc6xx_tlb_check(CPUState *env, mmu_ctx_t *ctx,
+static inline int ppc6xx_tlb_check(CPUState *env, a_mmu_ctx *ctx,
target_ulong eaddr, int rw, int access_type)
{
- ppc6xx_tlb_t *tlb;
+ a_ppc6xx_tlb *tlb;
int nr, best, way;
int ret;
@@ -494,7 +494,7 @@ static inline void bat_601_size_prot(CPUState *env, target_ulong *blp,
*protp = prot;
}
-static inline int get_bat(CPUState *env, mmu_ctx_t *ctx, target_ulong virtual,
+static inline int get_bat(CPUState *env, a_mmu_ctx *ctx, target_ulong virtual,
int rw, int type)
{
target_ulong *BATlt, *BATut, *BATu, *BATl;
@@ -571,7 +571,7 @@ static inline int get_bat(CPUState *env, mmu_ctx_t *ctx, target_ulong virtual,
}
/* PTE table lookup */
-static inline int _find_pte(mmu_ctx_t *ctx, int is_64b, int h, int rw,
+static inline int _find_pte(a_mmu_ctx *ctx, int is_64b, int h, int rw,
int type, int target_page_bits)
{
target_ulong base, pte0, pte1;
@@ -653,21 +653,21 @@ static inline int _find_pte(mmu_ctx_t *ctx, int is_64b, int h, int rw,
return ret;
}
-static inline int find_pte32(mmu_ctx_t *ctx, int h, int rw, int type,
+static inline int find_pte32(a_mmu_ctx *ctx, int h, int rw, int type,
int target_page_bits)
{
return _find_pte(ctx, 0, h, rw, type, target_page_bits);
}
#if defined(TARGET_PPC64)
-static inline int find_pte64(mmu_ctx_t *ctx, int h, int rw, int type,
+static inline int find_pte64(a_mmu_ctx *ctx, int h, int rw, int type,
int target_page_bits)
{
return _find_pte(ctx, 1, h, rw, type, target_page_bits);
}
#endif
-static inline int find_pte(CPUState *env, mmu_ctx_t *ctx, int h, int rw,
+static inline int find_pte(CPUState *env, a_mmu_ctx *ctx, int h, int rw,
int type, int target_page_bits)
{
#if defined(TARGET_PPC64)
@@ -679,13 +679,13 @@ static inline int find_pte(CPUState *env, mmu_ctx_t *ctx, int h, int rw,
}
#if defined(TARGET_PPC64)
-static ppc_slb_t *slb_get_entry(CPUPPCState *env, int nr)
+static a_ppc_slb *slb_get_entry(CPUPPCState *env, int nr)
{
- ppc_slb_t *retval = &env->slb[nr];
+ a_ppc_slb *retval = &env->slb[nr];
#if 0 // XXX implement bridge mode?
if (env->spr[SPR_ASR] & 1) {
- target_phys_addr_t sr_base;
+ a_target_phys_addr sr_base;
sr_base = env->spr[SPR_ASR] & 0xfffffffffffff000;
sr_base += (12 * nr);
@@ -698,9 +698,9 @@ static ppc_slb_t *slb_get_entry(CPUPPCState *env, int nr)
return retval;
}
-static void slb_set_entry(CPUPPCState *env, int nr, ppc_slb_t *slb)
+static void slb_set_entry(CPUPPCState *env, int nr, a_ppc_slb *slb)
{
- ppc_slb_t *entry = &env->slb[nr];
+ a_ppc_slb *entry = &env->slb[nr];
if (slb == entry)
return;
@@ -709,12 +709,12 @@ static void slb_set_entry(CPUPPCState *env, int nr, ppc_slb_t *slb)
entry->tmp = slb->tmp;
}
-static inline int slb_is_valid(ppc_slb_t *slb)
+static inline int slb_is_valid(a_ppc_slb *slb)
{
return (int)(slb->tmp64 & 0x0000000008000000ULL);
}
-static inline void slb_invalidate(ppc_slb_t *slb)
+static inline void slb_invalidate(a_ppc_slb *slb)
{
slb->tmp64 &= ~0x0000000008000000ULL;
}
@@ -730,7 +730,7 @@ static inline int slb_lookup(CPUPPCState *env, target_ulong eaddr,
LOG_SLB("%s: eaddr " TARGET_FMT_lx "\n", __func__, eaddr);
mask = 0x0000000000000000ULL; /* Avoid gcc warning */
for (n = 0; n < env->slb_nr; n++) {
- ppc_slb_t *slb = slb_get_entry(env, n);
+ a_ppc_slb *slb = slb_get_entry(env, n);
LOG_SLB("%s: seg %d %016" PRIx64 " %08"
PRIx32 "\n", __func__, n, slb->tmp64, slb->tmp);
@@ -768,7 +768,7 @@ void ppc_slb_invalidate_all (CPUPPCState *env)
do_invalidate = 0;
/* XXX: Warning: slbia never invalidates the first segment */
for (n = 1; n < env->slb_nr; n++) {
- ppc_slb_t *slb = slb_get_entry(env, n);
+ a_ppc_slb *slb = slb_get_entry(env, n);
if (slb_is_valid(slb)) {
slb_invalidate(slb);
@@ -792,7 +792,7 @@ void ppc_slb_invalidate_one (CPUPPCState *env, uint64_t T0)
n = slb_lookup(env, T0, &vsid, &page_mask, &attr, NULL);
if (n >= 0) {
- ppc_slb_t *slb = slb_get_entry(env, n);
+ a_ppc_slb *slb = slb_get_entry(env, n);
if (slb_is_valid(slb)) {
slb_invalidate(slb);
@@ -809,7 +809,7 @@ void ppc_slb_invalidate_one (CPUPPCState *env, uint64_t T0)
target_ulong ppc_load_slb (CPUPPCState *env, int slb_nr)
{
target_ulong rt;
- ppc_slb_t *slb = slb_get_entry(env, slb_nr);
+ a_ppc_slb *slb = slb_get_entry(env, slb_nr);
if (slb_is_valid(slb)) {
/* SLB entry is valid */
@@ -829,7 +829,7 @@ target_ulong ppc_load_slb (CPUPPCState *env, int slb_nr)
void ppc_store_slb (CPUPPCState *env, target_ulong rb, target_ulong rs)
{
- ppc_slb_t *slb;
+ a_ppc_slb *slb;
uint64_t vsid;
uint64_t esid;
@@ -855,18 +855,18 @@ void ppc_store_slb (CPUPPCState *env, target_ulong rb, target_ulong rs)
#endif /* defined(TARGET_PPC64) */
/* Perform segment based translation */
-static inline target_phys_addr_t get_pgaddr(target_phys_addr_t sdr1,
+static inline a_target_phys_addr get_pgaddr(a_target_phys_addr sdr1,
int sdr_sh,
- target_phys_addr_t hash,
- target_phys_addr_t mask)
+ a_target_phys_addr hash,
+ a_target_phys_addr mask)
{
- return (sdr1 & ((target_phys_addr_t)(-1ULL) << sdr_sh)) | (hash & mask);
+ return (sdr1 & ((a_target_phys_addr)(-1ULL) << sdr_sh)) | (hash & mask);
}
-static inline int get_segment(CPUState *env, mmu_ctx_t *ctx,
+static inline int get_segment(CPUState *env, a_mmu_ctx *ctx,
target_ulong eaddr, int rw, int type)
{
- target_phys_addr_t sdr, hash, mask, sdr_mask, htab_mask;
+ a_target_phys_addr sdr, hash, mask, sdr_mask, htab_mask;
target_ulong sr, vsid, vsid_mask, pgidx, page_mask;
#if defined(TARGET_PPC64)
int attr;
@@ -958,7 +958,7 @@ static inline int get_segment(CPUState *env, mmu_ctx_t *ctx,
ctx->ptem = (vsid << 7) | (pgidx >> 10);
}
/* Initialize real address with an invalid value */
- ctx->raddr = (target_phys_addr_t)-1ULL;
+ ctx->raddr = (a_target_phys_addr)-1ULL;
if (unlikely(env->mmu_model == POWERPC_MMU_SOFT_6xx ||
env->mmu_model == POWERPC_MMU_SOFT_74xx)) {
/* Software TLB search */
@@ -985,7 +985,7 @@ static inline int get_segment(CPUState *env, mmu_ctx_t *ctx,
}
#if defined (DUMP_PAGE_TABLES)
if (qemu_log_enabled()) {
- target_phys_addr_t curaddr;
+ a_target_phys_addr curaddr;
uint32_t a0, a1, a2, a3;
qemu_log("Page table: " TARGET_FMT_plx " len " TARGET_FMT_plx
"\n", sdr, mask + 0x80);
@@ -1049,8 +1049,8 @@ static inline int get_segment(CPUState *env, mmu_ctx_t *ctx,
}
/* Generic TLB check function for embedded PowerPC implementations */
-static inline int ppcemb_tlb_check(CPUState *env, ppcemb_tlb_t *tlb,
- target_phys_addr_t *raddrp,
+static inline int ppcemb_tlb_check(CPUState *env, a_ppcemb_tlb *tlb,
+ a_target_phys_addr *raddrp,
target_ulong address, uint32_t pid, int ext,
int i)
{
@@ -1075,7 +1075,7 @@ static inline int ppcemb_tlb_check(CPUState *env, ppcemb_tlb_t *tlb,
#if (TARGET_PHYS_ADDR_BITS >= 36)
if (ext) {
/* Extend the physical address to 36 bits */
- *raddrp |= (target_phys_addr_t)(tlb->RPN & 0xF) << 32;
+ *raddrp |= (a_target_phys_addr)(tlb->RPN & 0xF) << 32;
}
#endif
@@ -1085,8 +1085,8 @@ static inline int ppcemb_tlb_check(CPUState *env, ppcemb_tlb_t *tlb,
/* Generic TLB search function for PowerPC embedded implementations */
int ppcemb_tlb_search (CPUPPCState *env, target_ulong address, uint32_t pid)
{
- ppcemb_tlb_t *tlb;
- target_phys_addr_t raddr;
+ a_ppcemb_tlb *tlb;
+ a_target_phys_addr raddr;
int i, ret;
/* Default return value is no match */
@@ -1105,7 +1105,7 @@ int ppcemb_tlb_search (CPUPPCState *env, target_ulong address, uint32_t pid)
/* Helpers specific to PowerPC 40x implementations */
static inline void ppc4xx_tlb_invalidate_all(CPUState *env)
{
- ppcemb_tlb_t *tlb;
+ a_ppcemb_tlb *tlb;
int i;
for (i = 0; i < env->nb_tlb; i++) {
@@ -1119,8 +1119,8 @@ static inline void ppc4xx_tlb_invalidate_virt(CPUState *env,
target_ulong eaddr, uint32_t pid)
{
#if !defined(FLUSH_ALL_TLBS)
- ppcemb_tlb_t *tlb;
- target_phys_addr_t raddr;
+ a_ppcemb_tlb *tlb;
+ a_target_phys_addr raddr;
target_ulong page, end;
int i;
@@ -1139,15 +1139,15 @@ static inline void ppc4xx_tlb_invalidate_virt(CPUState *env,
#endif
}
-static int mmu40x_get_physical_address (CPUState *env, mmu_ctx_t *ctx,
+static int mmu40x_get_physical_address (CPUState *env, a_mmu_ctx *ctx,
target_ulong address, int rw, int access_type)
{
- ppcemb_tlb_t *tlb;
- target_phys_addr_t raddr;
+ a_ppcemb_tlb *tlb;
+ a_target_phys_addr raddr;
int i, ret, zsel, zpr, pr;
ret = -1;
- raddr = (target_phys_addr_t)-1ULL;
+ raddr = (a_target_phys_addr)-1ULL;
pr = msr_pr;
for (i = 0; i < env->nb_tlb; i++) {
tlb = &env->tlb[i].tlbe;
@@ -1208,16 +1208,16 @@ void store_40x_sler (CPUPPCState *env, uint32_t val)
env->spr[SPR_405_SLER] = val;
}
-static int mmubooke_get_physical_address (CPUState *env, mmu_ctx_t *ctx,
+static int mmubooke_get_physical_address (CPUState *env, a_mmu_ctx *ctx,
target_ulong address, int rw,
int access_type)
{
- ppcemb_tlb_t *tlb;
- target_phys_addr_t raddr;
+ a_ppcemb_tlb *tlb;
+ a_target_phys_addr raddr;
int i, prot, ret;
ret = -1;
- raddr = (target_phys_addr_t)-1ULL;
+ raddr = (a_target_phys_addr)-1ULL;
for (i = 0; i < env->nb_tlb; i++) {
tlb = &env->tlb[i].tlbe;
if (ppcemb_tlb_check(env, tlb, &raddr, address,
@@ -1254,7 +1254,7 @@ static int mmubooke_get_physical_address (CPUState *env, mmu_ctx_t *ctx,
return ret;
}
-static inline int check_physical(CPUState *env, mmu_ctx_t *ctx,
+static inline int check_physical(CPUState *env, a_mmu_ctx *ctx,
target_ulong eaddr, int rw)
{
int in_plb, ret;
@@ -1320,7 +1320,7 @@ static inline int check_physical(CPUState *env, mmu_ctx_t *ctx,
return ret;
}
-int get_physical_address (CPUState *env, mmu_ctx_t *ctx, target_ulong eaddr,
+int get_physical_address (CPUState *env, a_mmu_ctx *ctx, target_ulong eaddr,
int rw, int access_type)
{
int ret;
@@ -1384,9 +1384,9 @@ int get_physical_address (CPUState *env, mmu_ctx_t *ctx, target_ulong eaddr,
return ret;
}
-target_phys_addr_t cpu_get_phys_page_debug (CPUState *env, target_ulong addr)
+a_target_phys_addr cpu_get_phys_page_debug (CPUState *env, target_ulong addr)
{
- mmu_ctx_t ctx;
+ a_mmu_ctx ctx;
if (unlikely(get_physical_address(env, &ctx, addr, 0, ACCESS_INT) != 0))
return -1;
@@ -1398,7 +1398,7 @@ target_phys_addr_t cpu_get_phys_page_debug (CPUState *env, target_ulong addr)
int cpu_ppc_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
int mmu_idx, int is_softmmu)
{
- mmu_ctx_t ctx;
+ a_mmu_ctx ctx;
int access_type;
int ret = 0;
@@ -2800,7 +2800,7 @@ void cpu_ppc_reset (void *opaque)
CPUPPCState *cpu_ppc_init (const char *cpu_model)
{
CPUPPCState *env;
- const ppc_def_t *def;
+ const a_ppc_def *def;
def = cpu_ppc_find_by_name(cpu_model);
if (!def)
diff --git a/target-ppc/helper.h b/target-ppc/helper.h
index 5cf6cd4501..ad5d075e02 100644
--- a/target-ppc/helper.h
+++ b/target-ppc/helper.h
@@ -94,7 +94,7 @@ DEF_HELPER_1(frsqrte, i64, i64)
DEF_HELPER_3(fsel, i64, i64, i64, i64)
#define dh_alias_avr ptr
-#define dh_ctype_avr ppc_avr_t *
+#define dh_ctype_avr union ppc_avr *
DEF_HELPER_3(vaddubm, void, avr, avr, avr)
DEF_HELPER_3(vadduhm, void, avr, avr, avr)
diff --git a/target-ppc/op_helper.c b/target-ppc/op_helper.c
index e3bd29cc10..e6cec76491 100644
--- a/target-ppc/op_helper.c
+++ b/target-ppc/op_helper.c
@@ -1782,7 +1782,7 @@ target_ulong helper_divso (target_ulong arg1, target_ulong arg2)
#if !defined (CONFIG_USER_ONLY)
target_ulong helper_rac (target_ulong addr)
{
- mmu_ctx_t ctx;
+ a_mmu_ctx ctx;
int nb_BATs;
target_ulong ret = 0;
@@ -1996,7 +1996,7 @@ SATCVT(sd, uw, int64_t, uint32_t, 0, UINT32_MAX, 1, 1)
#undef SATCVT
#define LVE(name, access, swap, element) \
- void helper_##name (ppc_avr_t *r, target_ulong addr) \
+ void helper_##name (union ppc_avr *r, target_ulong addr) \
{ \
size_t n_elems = ARRAY_SIZE(r->element); \
int adjust = HI_IDX*(n_elems-1); \
@@ -2015,7 +2015,7 @@ LVE(lvewx, ldl, bswap32, u32)
#undef I
#undef LVE
-void helper_lvsl (ppc_avr_t *r, target_ulong sh)
+void helper_lvsl (union ppc_avr *r, target_ulong sh)
{
int i, j = (sh & 0xf);
@@ -2024,7 +2024,7 @@ void helper_lvsl (ppc_avr_t *r, target_ulong sh)
}
}
-void helper_lvsr (ppc_avr_t *r, target_ulong sh)
+void helper_lvsr (union ppc_avr *r, target_ulong sh)
{
int i, j = 0x10 - (sh & 0xf);
@@ -2034,7 +2034,7 @@ void helper_lvsr (ppc_avr_t *r, target_ulong sh)
}
#define STVE(name, access, swap, element) \
- void helper_##name (ppc_avr_t *r, target_ulong addr) \
+ void helper_##name (union ppc_avr *r, target_ulong addr) \
{ \
size_t n_elems = ARRAY_SIZE(r->element); \
int adjust = HI_IDX*(n_elems-1); \
@@ -2053,7 +2053,7 @@ STVE(stvewx, stl, bswap32, u32)
#undef I
#undef LVE
-void helper_mtvscr (ppc_avr_t *r)
+void helper_mtvscr (union ppc_avr *r)
{
#if defined(HOST_WORDS_BIGENDIAN)
env->vscr = r->u32[3];
@@ -2063,7 +2063,7 @@ void helper_mtvscr (ppc_avr_t *r)
set_flush_to_zero(vscr_nj, &env->vec_status);
}
-void helper_vaddcuw (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+void helper_vaddcuw (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
{
int i;
for (i = 0; i < ARRAY_SIZE(r->u32); i++) {
@@ -2071,13 +2071,13 @@ void helper_vaddcuw (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
}
}
-#define VARITH_DO(name, op, element) \
-void helper_v##name (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
-{ \
- int i; \
- for (i = 0; i < ARRAY_SIZE(r->element); i++) { \
- r->element[i] = a->element[i] op b->element[i]; \
- } \
+#define VARITH_DO(name, op, element) \
+void helper_v##name (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
+{ \
+ int i; \
+ for (i = 0; i < ARRAY_SIZE(r->element); i++) { \
+ r->element[i] = a->element[i] op b->element[i]; \
+ } \
}
#define VARITH(suffix, element) \
VARITH_DO(add##suffix, +, element) \
@@ -2089,7 +2089,7 @@ VARITH(uwm, u32)
#undef VARITH
#define VARITHFP(suffix, func) \
- void helper_v##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
+ void helper_v##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)\
{ \
int i; \
for (i = 0; i < ARRAY_SIZE(r->f); i++) { \
@@ -2109,7 +2109,7 @@ VARITHFP(subfp, float32_sub)
}
#define VARITHSAT_DO(name, op, optype, cvt, element) \
- void helper_v##name (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
+ void helper_v##name (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
{ \
int sat = 0; \
int i; \
@@ -2142,7 +2142,7 @@ VARITHSAT_UNSIGNED(w, u32, uint64_t, cvtsduw)
#undef VARITHSAT_UNSIGNED
#define VAVG_DO(name, element, etype) \
- void helper_v##name (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
+ void helper_v##name (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)\
{ \
int i; \
for (i = 0; i < ARRAY_SIZE(r->element); i++) { \
@@ -2161,7 +2161,7 @@ VAVG(w, s32, int64_t, u32, uint64_t)
#undef VAVG
#define VCF(suffix, cvt, element) \
- void helper_vcf##suffix (ppc_avr_t *r, ppc_avr_t *b, uint32_t uim) \
+ void helper_vcf##suffix (union ppc_avr *r, union ppc_avr *b, uint32_t uim) \
{ \
int i; \
for (i = 0; i < ARRAY_SIZE(r->f); i++) { \
@@ -2174,7 +2174,7 @@ VCF(sx, int32_to_float32, s32)
#undef VCF
#define VCMP_DO(suffix, compare, element, record) \
- void helper_vcmp##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
+ void helper_vcmp##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
{ \
uint32_t ones = (uint32_t)-1; \
uint32_t all = ones; \
@@ -2210,7 +2210,7 @@ VCMP(gtsw, >, s32)
#undef VCMP
#define VCMPFP_DO(suffix, compare, order, record) \
- void helper_vcmp##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
+ void helper_vcmp##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
{ \
uint32_t ones = (uint32_t)-1; \
uint32_t all = ones; \
@@ -2243,7 +2243,7 @@ VCMPFP(gtfp, ==, float_relation_greater)
#undef VCMPFP_DO
#undef VCMPFP
-static inline void vcmpbfp_internal(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b,
+static inline void vcmpbfp_internal(union ppc_avr *r, union ppc_avr *a, union ppc_avr *b,
int record)
{
int i;
@@ -2267,18 +2267,18 @@ static inline void vcmpbfp_internal(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b,
}
}
-void helper_vcmpbfp (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+void helper_vcmpbfp (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
{
vcmpbfp_internal(r, a, b, 0);
}
-void helper_vcmpbfp_dot (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+void helper_vcmpbfp_dot (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
{
vcmpbfp_internal(r, a, b, 1);
}
#define VCT(suffix, satcvt, element) \
- void helper_vct##suffix (ppc_avr_t *r, ppc_avr_t *b, uint32_t uim) \
+ void helper_vct##suffix (union ppc_avr *r, union ppc_avr *b, uint32_t uim) \
{ \
int i; \
int sat = 0; \
@@ -2304,7 +2304,7 @@ VCT(uxs, cvtsduw, u32)
VCT(sxs, cvtsdsw, s32)
#undef VCT
-void helper_vmaddfp (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+void helper_vmaddfp (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
{
int i;
for (i = 0; i < ARRAY_SIZE(r->f); i++) {
@@ -2322,7 +2322,7 @@ void helper_vmaddfp (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
}
}
-void helper_vmhaddshs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+void helper_vmhaddshs (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
{
int sat = 0;
int i;
@@ -2338,7 +2338,7 @@ void helper_vmhaddshs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
}
}
-void helper_vmhraddshs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+void helper_vmhraddshs (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
{
int sat = 0;
int i;
@@ -2355,7 +2355,7 @@ void helper_vmhraddshs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
}
#define VMINMAX_DO(name, compare, element) \
- void helper_v##name (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
+ void helper_v##name (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
{ \
int i; \
for (i = 0; i < ARRAY_SIZE(r->element); i++) { \
@@ -2379,7 +2379,7 @@ VMINMAX(uw, u32)
#undef VMINMAX
#define VMINMAXFP(suffix, rT, rF) \
- void helper_v##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
+ void helper_v##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
{ \
int i; \
for (i = 0; i < ARRAY_SIZE(r->f); i++) { \
@@ -2396,7 +2396,7 @@ VMINMAXFP(minfp, a, b)
VMINMAXFP(maxfp, b, a)
#undef VMINMAXFP
-void helper_vmladduhm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+void helper_vmladduhm (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
{
int i;
for (i = 0; i < ARRAY_SIZE(r->s16); i++) {
@@ -2406,9 +2406,9 @@ void helper_vmladduhm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
}
#define VMRG_DO(name, element, highp) \
- void helper_v##name (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
+ void helper_v##name (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
{ \
- ppc_avr_t result; \
+ union ppc_avr result; \
int i; \
size_t n_elems = ARRAY_SIZE(r->element); \
for (i = 0; i < n_elems/2; i++) { \
@@ -2440,7 +2440,7 @@ VMRG(w, u32)
#undef MRGHI
#undef MRGLO
-void helper_vmsummbm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+void helper_vmsummbm (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
{
int32_t prod[16];
int i;
@@ -2454,7 +2454,7 @@ void helper_vmsummbm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
}
}
-void helper_vmsumshm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+void helper_vmsumshm (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
{
int32_t prod[8];
int i;
@@ -2468,7 +2468,7 @@ void helper_vmsumshm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
}
}
-void helper_vmsumshs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+void helper_vmsumshs (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
{
int32_t prod[8];
int i;
@@ -2488,7 +2488,7 @@ void helper_vmsumshs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
}
}
-void helper_vmsumubm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+void helper_vmsumubm (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
{
uint16_t prod[16];
int i;
@@ -2502,7 +2502,7 @@ void helper_vmsumubm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
}
}
-void helper_vmsumuhm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+void helper_vmsumuhm (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
{
uint32_t prod[8];
int i;
@@ -2516,7 +2516,7 @@ void helper_vmsumuhm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
}
}
-void helper_vmsumuhs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+void helper_vmsumuhs (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
{
uint32_t prod[8];
int i;
@@ -2537,7 +2537,7 @@ void helper_vmsumuhs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
}
#define VMUL_DO(name, mul_element, prod_element, evenp) \
- void helper_v##name (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
+ void helper_v##name (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
{ \
int i; \
VECTOR_FOR_INORDER_I(i, prod_element) { \
@@ -2558,7 +2558,7 @@ VMUL(uh, u16, u32)
#undef VMUL_DO
#undef VMUL
-void helper_vnmsubfp (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+void helper_vnmsubfp (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
{
int i;
for (i = 0; i < ARRAY_SIZE(r->f); i++) {
@@ -2577,9 +2577,9 @@ void helper_vnmsubfp (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
}
}
-void helper_vperm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+void helper_vperm (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
{
- ppc_avr_t result;
+ union ppc_avr result;
int i;
VECTOR_FOR_INORDER_I (i, u8) {
int s = c->u8[i] & 0x1f;
@@ -2602,14 +2602,14 @@ void helper_vperm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
#else
#define PKBIG 0
#endif
-void helper_vpkpx (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+void helper_vpkpx (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
{
int i, j;
- ppc_avr_t result;
+ union ppc_avr result;
#if defined(HOST_WORDS_BIGENDIAN)
- const ppc_avr_t *x[2] = { a, b };
+ const union ppc_avr *x[2] = { a, b };
#else
- const ppc_avr_t *x[2] = { b, a };
+ const union ppc_avr *x[2] = { b, a };
#endif
VECTOR_FOR_INORDER_I (i, u64) {
@@ -2624,13 +2624,13 @@ void helper_vpkpx (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
}
#define VPK(suffix, from, to, cvt, dosat) \
- void helper_vpk##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
+ void helper_vpk##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
{ \
int i; \
int sat = 0; \
- ppc_avr_t result; \
- ppc_avr_t *a0 = PKBIG ? a : b; \
- ppc_avr_t *a1 = PKBIG ? b : a; \
+ union ppc_avr result; \
+ union ppc_avr *a0 = PKBIG ? a : b; \
+ union ppc_avr *a1 = PKBIG ? b : a; \
VECTOR_FOR_INORDER_I (i, from) { \
result.to[i] = cvt(a0->from[i], &sat); \
result.to[i+ARRAY_SIZE(r->from)] = cvt(a1->from[i], &sat); \
@@ -2653,7 +2653,7 @@ VPK(uwum, u32, u16, I, 0)
#undef VPK
#undef PKBIG
-void helper_vrefp (ppc_avr_t *r, ppc_avr_t *b)
+void helper_vrefp (union ppc_avr *r, union ppc_avr *b)
{
int i;
for (i = 0; i < ARRAY_SIZE(r->f); i++) {
@@ -2664,7 +2664,7 @@ void helper_vrefp (ppc_avr_t *r, ppc_avr_t *b)
}
#define VRFI(suffix, rounding) \
- void helper_vrfi##suffix (ppc_avr_t *r, ppc_avr_t *b) \
+ void helper_vrfi##suffix (union ppc_avr *r, union ppc_avr *b) \
{ \
int i; \
float_status s = env->vec_status; \
@@ -2682,7 +2682,7 @@ VRFI(z, float_round_to_zero)
#undef VRFI
#define VROTATE(suffix, element) \
- void helper_vrl##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
+ void helper_vrl##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
{ \
int i; \
for (i = 0; i < ARRAY_SIZE(r->element); i++) { \
@@ -2696,7 +2696,7 @@ VROTATE(h, u16)
VROTATE(w, u32)
#undef VROTATE
-void helper_vrsqrtefp (ppc_avr_t *r, ppc_avr_t *b)
+void helper_vrsqrtefp (union ppc_avr *r, union ppc_avr *b)
{
int i;
for (i = 0; i < ARRAY_SIZE(r->f); i++) {
@@ -2707,13 +2707,13 @@ void helper_vrsqrtefp (ppc_avr_t *r, ppc_avr_t *b)
}
}
-void helper_vsel (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+void helper_vsel (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
{
r->u64[0] = (a->u64[0] & ~c->u64[0]) | (b->u64[0] & c->u64[0]);
r->u64[1] = (a->u64[1] & ~c->u64[1]) | (b->u64[1] & c->u64[1]);
}
-void helper_vlogefp (ppc_avr_t *r, ppc_avr_t *b)
+void helper_vlogefp (union ppc_avr *r, union ppc_avr *b)
{
int i;
for (i = 0; i < ARRAY_SIZE(r->f); i++) {
@@ -2734,7 +2734,7 @@ void helper_vlogefp (ppc_avr_t *r, ppc_avr_t *b)
* shift counts are not identical. We check to make sure that they are
* to conform to what real hardware appears to do. */
#define VSHIFT(suffix, leftp) \
- void helper_vs##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
+ void helper_vs##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
{ \
int shift = b->u8[LO_IDX*15] & 0x7; \
int doit = 1; \
@@ -2763,7 +2763,7 @@ VSHIFT(r, RIGHT)
#undef RIGHT
#define VSL(suffix, element) \
- void helper_vsl##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
+ void helper_vsl##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
{ \
int i; \
for (i = 0; i < ARRAY_SIZE(r->element); i++) { \
@@ -2777,11 +2777,11 @@ VSL(h, u16)
VSL(w, u32)
#undef VSL
-void helper_vsldoi (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, uint32_t shift)
+void helper_vsldoi (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, uint32_t shift)
{
int sh = shift & 0xf;
int i;
- ppc_avr_t result;
+ union ppc_avr result;
#if defined(HOST_WORDS_BIGENDIAN)
for (i = 0; i < ARRAY_SIZE(r->u8); i++) {
@@ -2805,7 +2805,7 @@ void helper_vsldoi (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, uint32_t shift)
*r = result;
}
-void helper_vslo (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+void helper_vslo (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
{
int sh = (b->u8[LO_IDX*0xf] >> 3) & 0xf;
@@ -2826,7 +2826,7 @@ void helper_vslo (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
#define SPLAT_ELEMENT(element) (ARRAY_SIZE(r->element)-1 - _SPLAT_MASKED(element))
#endif
#define VSPLT(suffix, element) \
- void helper_vsplt##suffix (ppc_avr_t *r, ppc_avr_t *b, uint32_t splat) \
+ void helper_vsplt##suffix (union ppc_avr *r, union ppc_avr *b, uint32_t splat) \
{ \
uint32_t s = b->element[SPLAT_ELEMENT(element)]; \
int i; \
@@ -2842,7 +2842,7 @@ VSPLT(w, u32)
#undef _SPLAT_MASKED
#define VSPLTI(suffix, element, splat_type) \
- void helper_vspltis##suffix (ppc_avr_t *r, uint32_t splat) \
+ void helper_vspltis##suffix (union ppc_avr *r, uint32_t splat) \
{ \
splat_type x = (int8_t)(splat << 3) >> 3; \
int i; \
@@ -2856,7 +2856,7 @@ VSPLTI(w, s32, int32_t)
#undef VSPLTI
#define VSR(suffix, element) \
- void helper_vsr##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
+ void helper_vsr##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
{ \
int i; \
for (i = 0; i < ARRAY_SIZE(r->element); i++) { \
@@ -2873,7 +2873,7 @@ VSR(h, u16)
VSR(w, u32)
#undef VSR
-void helper_vsro (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+void helper_vsro (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
{
int sh = (b->u8[LO_IDX*0xf] >> 3) & 0xf;
@@ -2886,7 +2886,7 @@ void helper_vsro (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
#endif
}
-void helper_vsubcuw (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+void helper_vsubcuw (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
{
int i;
for (i = 0; i < ARRAY_SIZE(r->u32); i++) {
@@ -2894,11 +2894,11 @@ void helper_vsubcuw (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
}
}
-void helper_vsumsws (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+void helper_vsumsws (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
{
int64_t t;
int i, upper;
- ppc_avr_t result;
+ union ppc_avr result;
int sat = 0;
#if defined(HOST_WORDS_BIGENDIAN)
@@ -2919,10 +2919,10 @@ void helper_vsumsws (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
}
}
-void helper_vsum2sws (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+void helper_vsum2sws (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
{
int i, j, upper;
- ppc_avr_t result;
+ union ppc_avr result;
int sat = 0;
#if defined(HOST_WORDS_BIGENDIAN)
@@ -2945,7 +2945,7 @@ void helper_vsum2sws (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
}
}
-void helper_vsum4sbs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+void helper_vsum4sbs (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
{
int i, j;
int sat = 0;
@@ -2963,7 +2963,7 @@ void helper_vsum4sbs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
}
}
-void helper_vsum4shs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+void helper_vsum4shs (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
{
int sat = 0;
int i;
@@ -2979,7 +2979,7 @@ void helper_vsum4shs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
}
}
-void helper_vsum4ubs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+void helper_vsum4ubs (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
{
int i, j;
int sat = 0;
@@ -3005,10 +3005,10 @@ void helper_vsum4ubs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
#define UPKLO 1
#endif
#define VUPKPX(suffix, hi) \
- void helper_vupk##suffix (ppc_avr_t *r, ppc_avr_t *b) \
+ void helper_vupk##suffix (union ppc_avr *r, union ppc_avr *b) \
{ \
int i; \
- ppc_avr_t result; \
+ union ppc_avr result; \
for (i = 0; i < ARRAY_SIZE(r->u32); i++) { \
uint16_t e = b->u16[hi ? i : i+4]; \
uint8_t a = (e >> 15) ? 0xff : 0; \
@@ -3024,10 +3024,10 @@ VUPKPX(hpx, UPKHI)
#undef VUPKPX
#define VUPK(suffix, unpacked, packee, hi) \
- void helper_vupk##suffix (ppc_avr_t *r, ppc_avr_t *b) \
+ void helper_vupk##suffix (union ppc_avr *r, union ppc_avr *b) \
{ \
int i; \
- ppc_avr_t result; \
+ union ppc_avr result; \
if (hi) { \
for (i = 0; i < ARRAY_SIZE(r->unpacked); i++) { \
result.unpacked[i] = b->packee[i]; \
@@ -3921,7 +3921,7 @@ static inline int booke_page_size_to_tlb(target_ulong page_size)
/* Helpers for 4xx TLB management */
target_ulong helper_4xx_tlbre_lo (target_ulong entry)
{
- ppcemb_tlb_t *tlb;
+ a_ppcemb_tlb *tlb;
target_ulong ret;
int size;
@@ -3940,7 +3940,7 @@ target_ulong helper_4xx_tlbre_lo (target_ulong entry)
target_ulong helper_4xx_tlbre_hi (target_ulong entry)
{
- ppcemb_tlb_t *tlb;
+ a_ppcemb_tlb *tlb;
target_ulong ret;
entry &= 0x3F;
@@ -3955,7 +3955,7 @@ target_ulong helper_4xx_tlbre_hi (target_ulong entry)
void helper_4xx_tlbwe_hi (target_ulong entry, target_ulong val)
{
- ppcemb_tlb_t *tlb;
+ a_ppcemb_tlb *tlb;
target_ulong page, end;
LOG_SWTLB("%s entry %d val " TARGET_FMT_lx "\n", __func__, (int)entry,
@@ -4010,7 +4010,7 @@ void helper_4xx_tlbwe_hi (target_ulong entry, target_ulong val)
void helper_4xx_tlbwe_lo (target_ulong entry, target_ulong val)
{
- ppcemb_tlb_t *tlb;
+ a_ppcemb_tlb *tlb;
LOG_SWTLB("%s entry %i val " TARGET_FMT_lx "\n", __func__, (int)entry,
val);
@@ -4039,7 +4039,7 @@ target_ulong helper_4xx_tlbsx (target_ulong address)
/* PowerPC 440 TLB management */
void helper_440_tlbwe (uint32_t word, target_ulong entry, target_ulong value)
{
- ppcemb_tlb_t *tlb;
+ a_ppcemb_tlb *tlb;
target_ulong EPN, RPN, size;
int do_flush_tlbs;
@@ -4101,7 +4101,7 @@ void helper_440_tlbwe (uint32_t word, target_ulong entry, target_ulong value)
target_ulong helper_440_tlbre (uint32_t word, target_ulong entry)
{
- ppcemb_tlb_t *tlb;
+ a_ppcemb_tlb *tlb;
target_ulong ret;
int size;
diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index d4e81ce89b..640016b39c 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -191,11 +191,11 @@ typedef struct DisasContext {
int fpu_enabled;
int altivec_enabled;
int spe_enabled;
- ppc_spr_t *spr_cb; /* Needed to check rights for mfspr/mtspr */
+ a_ppc_spr *spr_cb; /* Needed to check rights for mfspr/mtspr */
int singlestep_enabled;
} DisasContext;
-struct opc_handler_t {
+struct opc_handler {
/* invalid bits */
uint32_t inval;
/* instruction type */
@@ -318,16 +318,16 @@ GEN_OPCODE(name, opc1, opc2, opc3, inval, type)
#define GEN_HANDLER2(name, onam, opc1, opc2, opc3, inval, type) \
GEN_OPCODE2(name, onam, opc1, opc2, opc3, inval, type)
-typedef struct opcode_t {
+typedef struct opcode {
unsigned char opc1, opc2, opc3;
#if HOST_LONG_BITS == 64 /* Explicitly align to 64 bits */
unsigned char pad[5];
#else
unsigned char pad[1];
#endif
- opc_handler_t handler;
+ an_opc_handler handler;
const char *oname;
-} opcode_t;
+} an_opcode;
/*****************************************************************************/
/*** Instruction decoding ***/
@@ -530,7 +530,7 @@ static void gen_invalid(DisasContext *ctx)
gen_inval_exception(ctx, POWERPC_EXCP_INVAL_INVAL);
}
-static opc_handler_t invalid_handler = {
+static an_opc_handler invalid_handler = {
.inval = 0xFFFFFFFF,
.type = PPC_NONE,
.handler = gen_invalid,
@@ -7975,7 +7975,7 @@ GEN_SPE(efdctsiz, speundef, 0x1D, 0x0B, 0x00180000, PPC_SPE_DOUBLE);
GEN_SPE(efdtstgt, efdtstlt, 0x1E, 0x0B, 0x00600000, PPC_SPE_DOUBLE); //
GEN_SPE(efdtsteq, speundef, 0x1F, 0x0B, 0x00600000, PPC_SPE_DOUBLE); //
-static opcode_t opcodes[] = {
+static an_opcode opcodes[] = {
GEN_HANDLER(invalid, 0x00, 0x00, 0x00, 0xFFFFFFFF, PPC_NONE),
GEN_HANDLER(cmp, 0x1F, 0x00, 0x00, 0x00400000, PPC_INTEGER),
GEN_HANDLER(cmpi, 0x0B, 0xFF, 0xFF, 0x00400000, PPC_INTEGER),
@@ -8903,7 +8903,7 @@ void cpu_dump_statistics (CPUState *env, FILE*f,
int flags)
{
#if defined(DO_PPC_STATISTICS)
- opc_handler_t **t1, **t2, **t3, *handler;
+ an_opc_handler **t1, **t2, **t3, *handler;
int op1, op2, op3;
t1 = env->opcodes;
@@ -8951,7 +8951,7 @@ static inline void gen_intermediate_code_internal(CPUState *env,
int search_pc)
{
DisasContext ctx, *ctxp = &ctx;
- opc_handler_t **table, *handler;
+ an_opc_handler **table, *handler;
target_ulong pc_start;
uint16_t *gen_opc_end;
CPUBreakpoint *bp;
diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index 79d3b4ca9a..c7b857fa66 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -32,15 +32,15 @@
#define TODO_USER_ONLY 1
#endif
-struct ppc_def_t {
+struct ppc_def {
const char *name;
uint32_t pvr;
uint32_t svr;
uint64_t insns_flags;
uint64_t msr_mask;
- powerpc_mmu_t mmu_model;
- powerpc_excp_t excp_model;
- powerpc_input_t bus_model;
+ e_powerpc_mmu mmu_model;
+ e_powerpc_excp excp_model;
+ e_powerpc_input bus_model;
uint32_t flags;
int bfd_mach;
void (*init_proc)(CPUPPCState *env);
@@ -531,7 +531,7 @@ static inline void spr_register (CPUPPCState *env, int num,
target_ulong initial_value)
#endif
{
- ppc_spr_t *spr;
+ a_ppc_spr *spr;
spr = &env->spr_cb[num];
if (spr->name != NULL ||env-> spr[num] != 0x00000000 ||
@@ -7228,7 +7228,7 @@ enum {
#define POWERPC_DEF(_name, _pvr, _type) \
POWERPC_DEF_SVR(_name, _pvr, POWERPC_SVR_NONE, _type)
-static const ppc_def_t ppc_defs[] = {
+static const a_ppc_def ppc_defs[] = {
/* Embedded PowerPC */
/* PowerPC 401 family */
/* Generic PowerPC 401 */
@@ -8882,7 +8882,7 @@ static const ppc_def_t ppc_defs[] = {
/*****************************************************************************/
/* Generic CPU instanciation routine */
-static void init_ppc_proc (CPUPPCState *env, const ppc_def_t *def)
+static void init_ppc_proc (CPUPPCState *env, const a_ppc_def *def)
{
#if !defined(CONFIG_USER_ONLY)
int i;
@@ -9022,7 +9022,7 @@ static void init_ppc_proc (CPUPPCState *env, const ppc_def_t *def)
int nb_tlb = env->nb_tlb;
if (env->id_tlbs != 0)
nb_tlb *= 2;
- env->tlb = qemu_mallocz(nb_tlb * sizeof(ppc_tlb_t));
+ env->tlb = qemu_mallocz(nb_tlb * sizeof(union ppc_tlb));
/* Pre-compute some useful values */
env->tlb_per_way = env->nb_tlb / env->nb_ways;
}
@@ -9093,14 +9093,14 @@ static inline int is_indirect_opcode (void *handler)
return ((unsigned long)handler & 0x03) == PPC_INDIRECT;
}
-static inline opc_handler_t **ind_table(void *handler)
+static inline an_opc_handler **ind_table(void *handler)
{
- return (opc_handler_t **)((unsigned long)handler & ~3);
+ return (an_opc_handler **)((unsigned long)handler & ~3);
}
/* Instruction table creation */
/* Opcodes tables creation */
-static void fill_new_table (opc_handler_t **table, int len)
+static void fill_new_table (an_opc_handler **table, int len)
{
int i;
@@ -9108,19 +9108,19 @@ static void fill_new_table (opc_handler_t **table, int len)
table[i] = &invalid_handler;
}
-static int create_new_table (opc_handler_t **table, unsigned char idx)
+static int create_new_table (an_opc_handler **table, unsigned char idx)
{
- opc_handler_t **tmp;
+ an_opc_handler **tmp;
- tmp = malloc(0x20 * sizeof(opc_handler_t));
+ tmp = malloc(0x20 * sizeof(an_opc_handler));
fill_new_table(tmp, 0x20);
- table[idx] = (opc_handler_t *)((unsigned long)tmp | PPC_INDIRECT);
+ table[idx] = (an_opc_handler *)((unsigned long)tmp | PPC_INDIRECT);
return 0;
}
-static int insert_in_table (opc_handler_t **table, unsigned char idx,
- opc_handler_t *handler)
+static int insert_in_table (an_opc_handler **table, unsigned char idx,
+ an_opc_handler *handler)
{
if (table[idx] != &invalid_handler)
return -1;
@@ -9129,8 +9129,8 @@ static int insert_in_table (opc_handler_t **table, unsigned char idx,
return 0;
}
-static int register_direct_insn (opc_handler_t **ppc_opcodes,
- unsigned char idx, opc_handler_t *handler)
+static int register_direct_insn (an_opc_handler **ppc_opcodes,
+ unsigned char idx, an_opc_handler *handler)
{
if (insert_in_table(ppc_opcodes, idx, handler) < 0) {
printf("*** ERROR: opcode %02x already assigned in main "
@@ -9145,9 +9145,9 @@ static int register_direct_insn (opc_handler_t **ppc_opcodes,
return 0;
}
-static int register_ind_in_table (opc_handler_t **table,
+static int register_ind_in_table (an_opc_handler **table,
unsigned char idx1, unsigned char idx2,
- opc_handler_t *handler)
+ an_opc_handler *handler)
{
if (table[idx1] == &invalid_handler) {
if (create_new_table(table, idx1) < 0) {
@@ -9180,9 +9180,9 @@ static int register_ind_in_table (opc_handler_t **table,
return 0;
}
-static int register_ind_insn (opc_handler_t **ppc_opcodes,
+static int register_ind_insn (an_opc_handler **ppc_opcodes,
unsigned char idx1, unsigned char idx2,
- opc_handler_t *handler)
+ an_opc_handler *handler)
{
int ret;
@@ -9191,9 +9191,9 @@ static int register_ind_insn (opc_handler_t **ppc_opcodes,
return ret;
}
-static int register_dblind_insn (opc_handler_t **ppc_opcodes,
+static int register_dblind_insn (an_opc_handler **ppc_opcodes,
unsigned char idx1, unsigned char idx2,
- unsigned char idx3, opc_handler_t *handler)
+ unsigned char idx3, an_opc_handler *handler)
{
if (register_ind_in_table(ppc_opcodes, idx1, idx2, NULL) < 0) {
printf("*** ERROR: unable to join indirect table idx "
@@ -9210,7 +9210,7 @@ static int register_dblind_insn (opc_handler_t **ppc_opcodes,
return 0;
}
-static int register_insn (opc_handler_t **ppc_opcodes, opcode_t *insn)
+static int register_insn (an_opc_handler **ppc_opcodes, an_opcode *insn)
{
if (insn->opc2 != 0xFF) {
if (insn->opc3 != 0xFF) {
@@ -9230,7 +9230,7 @@ static int register_insn (opc_handler_t **ppc_opcodes, opcode_t *insn)
return 0;
}
-static int test_opcode_table (opc_handler_t **table, int len)
+static int test_an_opcodeable (an_opc_handler **table, int len)
{
int i, count, tmp;
@@ -9240,7 +9240,7 @@ static int test_opcode_table (opc_handler_t **table, int len)
table[i] = &invalid_handler;
if (table[i] != &invalid_handler) {
if (is_indirect_opcode(table[i])) {
- tmp = test_opcode_table(ind_table(table[i]), 0x20);
+ tmp = test_an_opcodeable(ind_table(table[i]), 0x20);
if (tmp == 0) {
free(table[i]);
table[i] = &invalid_handler;
@@ -9256,16 +9256,16 @@ static int test_opcode_table (opc_handler_t **table, int len)
return count;
}
-static void fix_opcode_tables (opc_handler_t **ppc_opcodes)
+static void fix_an_opcodeables (an_opc_handler **ppc_opcodes)
{
- if (test_opcode_table(ppc_opcodes, 0x40) == 0)
+ if (test_an_opcodeable(ppc_opcodes, 0x40) == 0)
printf("*** WARNING: no opcode defined !\n");
}
/*****************************************************************************/
-static int create_ppc_opcodes (CPUPPCState *env, const ppc_def_t *def)
+static int create_ppc_opcodes (CPUPPCState *env, const a_ppc_def *def)
{
- opcode_t *opc;
+ an_opcode *opc;
fill_new_table(env->opcodes, 0x40);
for (opc = opcodes; opc < &opcodes[ARRAY_SIZE(opcodes)]; opc++) {
@@ -9278,7 +9278,7 @@ static int create_ppc_opcodes (CPUPPCState *env, const ppc_def_t *def)
}
}
}
- fix_opcode_tables(env->opcodes);
+ fix_an_opcodeables(env->opcodes);
fflush(stdout);
fflush(stderr);
@@ -9288,7 +9288,7 @@ static int create_ppc_opcodes (CPUPPCState *env, const ppc_def_t *def)
#if defined(PPC_DUMP_CPU)
static void dump_ppc_insns (CPUPPCState *env)
{
- opc_handler_t **table, *handler;
+ an_opc_handler **table, *handler;
const char *p, *q;
uint8_t opc1, opc2, opc3;
@@ -9475,7 +9475,7 @@ static int gdb_set_spe_reg(CPUState *env, uint8_t *mem_buf, int n)
return 0;
}
-int cpu_ppc_register_internal (CPUPPCState *env, const ppc_def_t *def)
+int cpu_ppc_register_internal (CPUPPCState *env, const a_ppc_def *def)
{
env->msr_mask = def->msr_mask;
env->mmu_model = def->mmu_model;
@@ -9667,9 +9667,9 @@ int cpu_ppc_register_internal (CPUPPCState *env, const ppc_def_t *def)
return 0;
}
-static const ppc_def_t *ppc_find_by_pvr (uint32_t pvr)
+static const a_ppc_def *ppc_find_by_pvr (uint32_t pvr)
{
- const ppc_def_t *ret;
+ const a_ppc_def *ret;
uint32_t pvr_rev;
int i, best, match, best_match, max;
@@ -9707,9 +9707,9 @@ static const ppc_def_t *ppc_find_by_pvr (uint32_t pvr)
#include <ctype.h>
-const ppc_def_t *cpu_ppc_find_by_name (const char *name)
+const a_ppc_def *cpu_ppc_find_by_name (const char *name)
{
- const ppc_def_t *ret;
+ const a_ppc_def *ret;
const char *p;
int i, max, len;