mirror of
https://github.com/qemu/qemu.git
synced 2024-11-27 22:03:35 +08:00
inline cpu_halted into sole caller
All implementations are now the same, and there is only one caller, so inline the function there. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
38a42e7c52
commit
eda48c344f
@ -208,8 +208,13 @@ int cpu_exec(CPUState *env1)
|
||||
uint8_t *tc_ptr;
|
||||
unsigned long next_tb;
|
||||
|
||||
if (cpu_halted(env1) == EXCP_HALTED)
|
||||
return EXCP_HALTED;
|
||||
if (env1->halted) {
|
||||
if (!cpu_has_work(env1)) {
|
||||
return EXCP_HALTED;
|
||||
}
|
||||
|
||||
env1->halted = 0;
|
||||
}
|
||||
|
||||
cpu_single_env = env1;
|
||||
|
||||
|
@ -42,17 +42,6 @@ static inline int cpu_has_work(CPUState *env)
|
||||
return (env->interrupt_request & CPU_INTERRUPT_HARD);
|
||||
}
|
||||
|
||||
static inline int cpu_halted(CPUState *env)
|
||||
{
|
||||
if (!env->halted)
|
||||
return 0;
|
||||
if (cpu_has_work(env)) {
|
||||
env->halted = 0;
|
||||
return 0;
|
||||
}
|
||||
return EXCP_HALTED;
|
||||
}
|
||||
|
||||
static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb)
|
||||
{
|
||||
env->pc = tb->pc;
|
||||
|
@ -32,19 +32,6 @@ static inline int cpu_has_work(CPUState *env)
|
||||
(CPU_INTERRUPT_FIQ | CPU_INTERRUPT_HARD | CPU_INTERRUPT_EXITTB));
|
||||
}
|
||||
|
||||
static inline int cpu_halted(CPUState *env) {
|
||||
if (!env->halted)
|
||||
return 0;
|
||||
/* An interrupt wakes the CPU even if the I and F CPSR bits are
|
||||
set. We use EXITTB to silently wake CPU without causing an
|
||||
actual interrupt. */
|
||||
if (cpu_has_work(env)) {
|
||||
env->halted = 0;
|
||||
return 0;
|
||||
}
|
||||
return EXCP_HALTED;
|
||||
}
|
||||
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
#include "softmmu_exec.h"
|
||||
#endif
|
||||
|
@ -33,17 +33,6 @@ static inline int cpu_has_work(CPUState *env)
|
||||
return (env->interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_NMI));
|
||||
}
|
||||
|
||||
static inline int cpu_halted(CPUState *env) {
|
||||
if (!env->halted)
|
||||
return 0;
|
||||
|
||||
if (cpu_has_work(env)) {
|
||||
env->halted = 0;
|
||||
return 0;
|
||||
}
|
||||
return EXCP_HALTED;
|
||||
}
|
||||
|
||||
static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb)
|
||||
{
|
||||
env->pc = tb->pc;
|
||||
|
@ -304,18 +304,6 @@ static inline int cpu_has_work(CPUState *env)
|
||||
return work;
|
||||
}
|
||||
|
||||
static inline int cpu_halted(CPUState *env) {
|
||||
/* handle exit of HALTED state */
|
||||
if (!env->halted)
|
||||
return 0;
|
||||
/* disable halt condition */
|
||||
if (cpu_has_work(env)) {
|
||||
env->halted = 0;
|
||||
return 0;
|
||||
}
|
||||
return EXCP_HALTED;
|
||||
}
|
||||
|
||||
/* load efer and update the corresponding hflags. XXX: do consistency
|
||||
checks with cpuid bits ? */
|
||||
static inline void cpu_load_efer(CPUState *env, uint64_t val)
|
||||
|
@ -33,16 +33,6 @@ static inline int cpu_has_work(CPUState *env)
|
||||
return (env->interrupt_request & (CPU_INTERRUPT_HARD));
|
||||
}
|
||||
|
||||
static inline int cpu_halted(CPUState *env) {
|
||||
if (!env->halted)
|
||||
return 0;
|
||||
if (cpu_has_work(env)) {
|
||||
env->halted = 0;
|
||||
return 0;
|
||||
}
|
||||
return EXCP_HALTED;
|
||||
}
|
||||
|
||||
static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb)
|
||||
{
|
||||
env->pc = tb->pc;
|
||||
|
@ -32,17 +32,6 @@ static inline int cpu_has_work(CPUState *env)
|
||||
return (env->interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_NMI));
|
||||
}
|
||||
|
||||
static inline int cpu_halted(CPUState *env) {
|
||||
if (!env->halted)
|
||||
return 0;
|
||||
|
||||
if (cpu_has_work(env)) {
|
||||
env->halted = 0;
|
||||
return 0;
|
||||
}
|
||||
return EXCP_HALTED;
|
||||
}
|
||||
|
||||
static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb)
|
||||
{
|
||||
env->sregs[SR_PC] = tb->pc;
|
||||
|
@ -36,17 +36,6 @@ static inline int cpu_has_work(CPUState *env)
|
||||
return has_work;
|
||||
}
|
||||
|
||||
static inline int cpu_halted(CPUState *env)
|
||||
{
|
||||
if (!env->halted)
|
||||
return 0;
|
||||
if (cpu_has_work(env)) {
|
||||
env->halted = 0;
|
||||
return 0;
|
||||
}
|
||||
return EXCP_HALTED;
|
||||
}
|
||||
|
||||
static inline void compute_hflags(CPUState *env)
|
||||
{
|
||||
env->hflags &= ~(MIPS_HFLAG_COP1X | MIPS_HFLAG_64 | MIPS_HFLAG_CP0 |
|
||||
|
@ -38,17 +38,6 @@ static inline int cpu_has_work(CPUState *env)
|
||||
}
|
||||
|
||||
|
||||
static inline int cpu_halted(CPUState *env)
|
||||
{
|
||||
if (!env->halted)
|
||||
return 0;
|
||||
if (cpu_has_work(env)) {
|
||||
env->halted = 0;
|
||||
return 0;
|
||||
}
|
||||
return EXCP_HALTED;
|
||||
}
|
||||
|
||||
static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb)
|
||||
{
|
||||
env->nip = tb->pc;
|
||||
|
@ -34,18 +34,6 @@ static inline int cpu_has_work(CPUState *env)
|
||||
return env->interrupt_request & CPU_INTERRUPT_HARD; // guess
|
||||
}
|
||||
|
||||
static inline int cpu_halted(CPUState *env)
|
||||
{
|
||||
if (!env->halted) {
|
||||
return 0;
|
||||
}
|
||||
if (cpu_has_work(env)) {
|
||||
env->halted = 0;
|
||||
return 0;
|
||||
}
|
||||
return EXCP_HALTED;
|
||||
}
|
||||
|
||||
static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock* tb)
|
||||
{
|
||||
env->psw.addr = tb->pc;
|
||||
|
@ -32,16 +32,6 @@ static inline int cpu_has_work(CPUState *env)
|
||||
return (env->interrupt_request & CPU_INTERRUPT_HARD);
|
||||
}
|
||||
|
||||
static inline int cpu_halted(CPUState *env) {
|
||||
if (!env->halted)
|
||||
return 0;
|
||||
if (cpu_has_work(env)) {
|
||||
env->halted = 0;
|
||||
return 0;
|
||||
}
|
||||
return EXCP_HALTED;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_USER_ONLY
|
||||
#include "softmmu_exec.h"
|
||||
#endif
|
||||
|
@ -22,16 +22,6 @@ static inline int cpu_has_work(CPUState *env1)
|
||||
}
|
||||
|
||||
|
||||
static inline int cpu_halted(CPUState *env1) {
|
||||
if (!env1->halted)
|
||||
return 0;
|
||||
if (cpu_has_work(env1)) {
|
||||
env1->halted = 0;
|
||||
return 0;
|
||||
}
|
||||
return EXCP_HALTED;
|
||||
}
|
||||
|
||||
static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb)
|
||||
{
|
||||
env->pc = tb->pc;
|
||||
|
Loading…
Reference in New Issue
Block a user