diff options
author | j_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-11-12 01:56:18 +0000 |
---|---|---|
committer | j_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-11-12 01:56:18 +0000 |
commit | 3cd7d1ddbba67a79854ea258cdf3a07eb0ad5136 (patch) | |
tree | 5dee929d68c3c96baae508887156292d975cbe82 /target-ppc/helper.c | |
parent | a73666f6564e17adcae2908f7b52d42de2ff5211 (diff) | |
download | qemu-3cd7d1ddbba67a79854ea258cdf3a07eb0ad5136.tar.gz qemu-3cd7d1ddbba67a79854ea258cdf3a07eb0ad5136.tar.bz2 qemu-3cd7d1ddbba67a79854ea258cdf3a07eb0ad5136.zip |
Allow use of SPE extension by all PowerPC targets,
adding gprh registers to store GPR MSBs when GPRs are 32 bits.
Remove not-needed-anymore ppcemb-linux-user target.
Keep ppcemb-softmmu target, which provides 1kB pages support
and 36 bits physical address space.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3628 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/helper.c')
-rw-r--r-- | target-ppc/helper.c | 21 |
1 files changed, 0 insertions, 21 deletions
diff --git a/target-ppc/helper.c b/target-ppc/helper.c index 4937a75482..268703cd4e 100644 --- a/target-ppc/helper.c +++ b/target-ppc/helper.c @@ -2395,7 +2395,6 @@ static always_inline void powerpc_excp (CPUState *env, /* XXX: TODO */ cpu_abort(env, "Debug exception is not implemented yet !\n"); goto store_next; -#if defined(TARGET_PPCEMB) case POWERPC_EXCP_SPEU: /* SPE/embedded floating-point unavailable */ new_msr &= ~((target_ulong)1 << MSR_RI); /* XXX: check this */ goto store_current; @@ -2433,7 +2432,6 @@ static always_inline void powerpc_excp (CPUState *env, cpu_abort(env, "Embedded doorbell critical interrupt " "is not implemented yet !\n"); goto store_next; -#endif /* defined(TARGET_PPCEMB) */ case POWERPC_EXCP_RESET: /* System reset exception */ new_msr &= ~((target_ulong)1 << MSR_RI); #if defined(TARGET_PPC64H) @@ -2833,26 +2831,11 @@ void ppc_hw_interrupt (CPUPPCState *env) powerpc_excp(env, env->excp_model, POWERPC_EXCP_WDT); return; } -#if defined(TARGET_PPCEMB) if (env->pending_interrupts & (1 << PPC_INTERRUPT_CDOORBELL)) { env->pending_interrupts &= ~(1 << PPC_INTERRUPT_CDOORBELL); powerpc_excp(env, env->excp_model, POWERPC_EXCP_DOORCI); return; } -#endif -#if defined(TARGET_PPCEMB) - /* External interrupt */ - if (env->pending_interrupts & (1 << PPC_INTERRUPT_EXT)) { - /* Taking an external interrupt does not clear the external - * interrupt status - */ -#if 0 - env->pending_interrupts &= ~(1 << PPC_INTERRUPT_EXT); -#endif - powerpc_excp(env, env->excp_model, POWERPC_EXCP_EXTERNAL); - return; - } -#endif /* Fixed interval timer on embedded PowerPC */ if (env->pending_interrupts & (1 << PPC_INTERRUPT_FIT)) { env->pending_interrupts &= ~(1 << PPC_INTERRUPT_FIT); @@ -2871,7 +2854,6 @@ void ppc_hw_interrupt (CPUPPCState *env) powerpc_excp(env, env->excp_model, POWERPC_EXCP_DECR); return; } -#if !defined(TARGET_PPCEMB) /* External interrupt */ if (env->pending_interrupts & (1 << PPC_INTERRUPT_EXT)) { /* Taking an external interrupt does not clear the external @@ -2883,14 +2865,11 @@ void ppc_hw_interrupt (CPUPPCState *env) powerpc_excp(env, env->excp_model, POWERPC_EXCP_EXTERNAL); return; } -#endif -#if defined(TARGET_PPCEMB) if (env->pending_interrupts & (1 << PPC_INTERRUPT_DOORBELL)) { env->pending_interrupts &= ~(1 << PPC_INTERRUPT_DOORBELL); powerpc_excp(env, env->excp_model, POWERPC_EXCP_DOORI); return; } -#endif if (env->pending_interrupts & (1 << PPC_INTERRUPT_PERFM)) { env->pending_interrupts &= ~(1 << PPC_INTERRUPT_PERFM); powerpc_excp(env, env->excp_model, POWERPC_EXCP_PERFM); |