diff --git a/target-alpha/cpu.h b/target-alpha/cpu.h index 314d6acc4e..c33339635a 100644 --- a/target-alpha/cpu.h +++ b/target-alpha/cpu.h @@ -512,11 +512,6 @@ void pal_init (CPUState *env); void call_pal (CPUState *env); #endif -static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) -{ - env->pc = tb->pc; -} - static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc, target_ulong *cs_base, int *flags) { diff --git a/target-alpha/exec.h b/target-alpha/exec.h index 0fb459da43..a8a38d29f4 100644 --- a/target-alpha/exec.h +++ b/target-alpha/exec.h @@ -53,4 +53,9 @@ static inline int cpu_halted(CPUState *env) return EXCP_HALTED; } +static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) +{ + env->pc = tb->pc; +} + #endif /* !defined (__ALPHA_EXEC_H__) */ diff --git a/target-arm/cpu.h b/target-arm/cpu.h index f3d138de6b..ddf764e2b8 100644 --- a/target-arm/cpu.h +++ b/target-arm/cpu.h @@ -437,11 +437,6 @@ static inline void cpu_clone_regs(CPUState *env, target_ulong newsp) #include "cpu-all.h" #include "exec-all.h" -static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) -{ - env->regs[15] = tb->pc; -} - static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc, target_ulong *cs_base, int *flags) { diff --git a/target-arm/exec.h b/target-arm/exec.h index 0225c3fcd3..e4c35a33eb 100644 --- a/target-arm/exec.h +++ b/target-arm/exec.h @@ -50,3 +50,9 @@ static inline int cpu_halted(CPUState *env) { #endif void raise_exception(int); + +static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) +{ + env->regs[15] = tb->pc; +} + diff --git a/target-cris/cpu.h b/target-cris/cpu.h index a62d57cf8a..f86c52a43e 100644 --- a/target-cris/cpu.h +++ b/target-cris/cpu.h @@ -252,11 +252,6 @@ static inline void cpu_set_tls(CPUCRISState *env, target_ulong newtls) #include "cpu-all.h" #include "exec-all.h" -static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) -{ - env->pc = tb->pc; -} - static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc, target_ulong *cs_base, int *flags) { diff --git a/target-cris/exec.h b/target-cris/exec.h index 55776baef0..93ce768d75 100644 --- a/target-cris/exec.h +++ b/target-cris/exec.h @@ -45,3 +45,9 @@ static inline int cpu_halted(CPUState *env) { } return EXCP_HALTED; } + +static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) +{ + env->pc = tb->pc; +} + diff --git a/target-i386/cpu.h b/target-i386/cpu.h index 4de486e376..704c265842 100644 --- a/target-i386/cpu.h +++ b/target-i386/cpu.h @@ -941,11 +941,6 @@ static inline void cpu_clone_regs(CPUState *env, target_ulong newsp) #include "hw/apic.h" #endif -static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) -{ - env->eip = tb->pc - tb->cs_base; -} - static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc, target_ulong *cs_base, int *flags) { diff --git a/target-i386/exec.h b/target-i386/exec.h index 4ff3c573ca..fc8945b964 100644 --- a/target-i386/exec.h +++ b/target-i386/exec.h @@ -327,3 +327,9 @@ static inline void cpu_load_efer(CPUState *env, uint64_t val) if (env->efer & MSR_EFER_SVME) env->hflags |= HF_SVME_MASK; } + +static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) +{ + env->eip = tb->pc - tb->cs_base; +} + diff --git a/target-m68k/cpu.h b/target-m68k/cpu.h index b2f37ec33d..0f8451482a 100644 --- a/target-m68k/cpu.h +++ b/target-m68k/cpu.h @@ -244,11 +244,6 @@ static inline void cpu_clone_regs(CPUState *env, target_ulong newsp) #include "cpu-all.h" #include "exec-all.h" -static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) -{ - env->pc = tb->pc; -} - static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc, target_ulong *cs_base, int *flags) { diff --git a/target-m68k/exec.h b/target-m68k/exec.h index ece9aa09cd..f31e06ed95 100644 --- a/target-m68k/exec.h +++ b/target-m68k/exec.h @@ -42,3 +42,9 @@ static inline int cpu_halted(CPUState *env) { } return EXCP_HALTED; } + +static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) +{ + env->pc = tb->pc; +} + diff --git a/target-microblaze/cpu.h b/target-microblaze/cpu.h index ff8c8c8a80..a2677cfa15 100644 --- a/target-microblaze/cpu.h +++ b/target-microblaze/cpu.h @@ -307,11 +307,6 @@ static inline int cpu_interrupts_enabled(CPUState *env) #include "cpu-all.h" #include "exec-all.h" -static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) -{ - env->sregs[SR_PC] = tb->pc; -} - static inline target_ulong cpu_get_pc(CPUState *env) { return env->sregs[SR_PC]; diff --git a/target-microblaze/exec.h b/target-microblaze/exec.h index db1c99e813..87b2494dc6 100644 --- a/target-microblaze/exec.h +++ b/target-microblaze/exec.h @@ -44,3 +44,9 @@ static inline int cpu_halted(CPUState *env) { } return EXCP_HALTED; } + +static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) +{ + env->sregs[SR_PC] = tb->pc; +} + diff --git a/target-mips/cpu.h b/target-mips/cpu.h index c21b8e43ff..1aaca77774 100644 --- a/target-mips/cpu.h +++ b/target-mips/cpu.h @@ -612,13 +612,6 @@ target_phys_addr_t cpu_mips_translate_address (CPUState *env, target_ulong addre int rw); #endif -static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) -{ - env->active_tc.PC = tb->pc; - env->hflags &= ~MIPS_HFLAG_BMASK; - env->hflags |= tb->flags & MIPS_HFLAG_BMASK; -} - static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc, target_ulong *cs_base, int *flags) { diff --git a/target-mips/exec.h b/target-mips/exec.h index a07761d88f..af61b54dcf 100644 --- a/target-mips/exec.h +++ b/target-mips/exec.h @@ -76,4 +76,11 @@ static inline void compute_hflags(CPUState *env) } } +static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) +{ + env->active_tc.PC = tb->pc; + env->hflags &= ~MIPS_HFLAG_BMASK; + env->hflags |= tb->flags & MIPS_HFLAG_BMASK; +} + #endif /* !defined(__QEMU_MIPS_EXEC_H__) */ diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h index 2ad4486727..ca0eb1e386 100644 --- a/target-ppc/cpu.h +++ b/target-ppc/cpu.h @@ -1601,11 +1601,6 @@ enum { /*****************************************************************************/ -static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) -{ - env->nip = tb->pc; -} - static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc, target_ulong *cs_base, int *flags) { diff --git a/target-ppc/exec.h b/target-ppc/exec.h index 09f592c2a3..44cc5e987e 100644 --- a/target-ppc/exec.h +++ b/target-ppc/exec.h @@ -52,4 +52,9 @@ static inline int cpu_halted(CPUState *env) return EXCP_HALTED; } +static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) +{ + env->nip = tb->pc; +} + #endif /* !defined (__PPC_H__) */ diff --git a/target-s390x/cpu.h b/target-s390x/cpu.h index dd407b2424..49d3128896 100644 --- a/target-s390x/cpu.h +++ b/target-s390x/cpu.h @@ -123,11 +123,6 @@ extern CPUState *s390_cpu_addr2state(uint16_t cpu_addr); #define EXCP_ADDR 5 /* addressing exception */ #define EXCP_EXECUTE_SVC 0xff00000 /* supervisor call via execute insn */ -static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock* tb) -{ - env->psw.addr = tb->pc; -} - static inline void cpu_get_tb_cpu_state(CPUState* env, target_ulong *pc, target_ulong *cs_base, int *flags) { diff --git a/target-s390x/exec.h b/target-s390x/exec.h index 837f853475..bf3f264026 100644 --- a/target-s390x/exec.h +++ b/target-s390x/exec.h @@ -45,3 +45,9 @@ static inline int cpu_halted(CPUState *env) } return EXCP_HALTED; } + +static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock* tb) +{ + env->psw.addr = tb->pc; +} + diff --git a/target-sh4/cpu.h b/target-sh4/cpu.h index f8b1680296..f2dee37878 100644 --- a/target-sh4/cpu.h +++ b/target-sh4/cpu.h @@ -303,12 +303,6 @@ static inline int cpu_ptel_pr (uint32_t ptel) #define PTEA_TC (1 << 3) #define cpu_ptea_tc(ptea) (((ptea) & PTEA_TC) >> 3) -static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) -{ - env->pc = tb->pc; - env->flags = tb->flags; -} - #define TB_FLAG_PENDING_MOVCA (1 << 4) static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc, diff --git a/target-sh4/exec.h b/target-sh4/exec.h index edd667d703..2999c023c0 100644 --- a/target-sh4/exec.h +++ b/target-sh4/exec.h @@ -47,4 +47,10 @@ static inline int cpu_halted(CPUState *env) { #include "softmmu_exec.h" #endif +static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) +{ + env->pc = tb->pc; + env->flags = tb->flags; +} + #endif /* _EXEC_SH4_H */ diff --git a/target-sparc/cpu.h b/target-sparc/cpu.h index 8f0484b24a..95fe3dc7a1 100644 --- a/target-sparc/cpu.h +++ b/target-sparc/cpu.h @@ -625,12 +625,6 @@ void cpu_tick_set_limit(CPUTimer *timer, uint64_t limit); trap_state* cpu_tsptr(CPUState* env); #endif -static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) -{ - env->pc = tb->pc; - env->npc = tb->cs_base; -} - static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc, target_ulong *cs_base, int *flags) { diff --git a/target-sparc/exec.h b/target-sparc/exec.h index c84e0558ae..f8115716eb 100644 --- a/target-sparc/exec.h +++ b/target-sparc/exec.h @@ -32,4 +32,10 @@ static inline int cpu_halted(CPUState *env1) { return EXCP_HALTED; } +static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb) +{ + env->pc = tb->pc; + env->npc = tb->cs_base; +} + #endif