提交 91f477fd 编写于 作者: A Alexander Graf

PPC: Extract SPR dump generation into its own function

This patch moves the debug #ifdef'ed SPR trace generation into its
own function, so we can call it from multiple places.
Signed-off-by: NAlexander Graf <agraf@suse.de>
上级 b81ccf8a
...@@ -55,28 +55,34 @@ PPC_IRQ_INIT_FN(e500); ...@@ -55,28 +55,34 @@ PPC_IRQ_INIT_FN(e500);
/* Generic callbacks: /* Generic callbacks:
* do nothing but store/retrieve spr value * do nothing but store/retrieve spr value
*/ */
static void spr_load_dump_spr(int sprn)
{
#ifdef PPC_DUMP_SPR_ACCESSES
TCGv_i32 t0 = tcg_const_i32(sprn);
gen_helper_load_dump_spr(t0);
tcg_temp_free_i32(t0);
#endif
}
static void spr_read_generic (void *opaque, int gprn, int sprn) static void spr_read_generic (void *opaque, int gprn, int sprn)
{ {
gen_load_spr(cpu_gpr[gprn], sprn); gen_load_spr(cpu_gpr[gprn], sprn);
spr_load_dump_spr(sprn);
}
static void spr_store_dump_spr(int sprn)
{
#ifdef PPC_DUMP_SPR_ACCESSES #ifdef PPC_DUMP_SPR_ACCESSES
{ TCGv_i32 t0 = tcg_const_i32(sprn);
TCGv_i32 t0 = tcg_const_i32(sprn); gen_helper_store_dump_spr(t0);
gen_helper_load_dump_spr(t0); tcg_temp_free_i32(t0);
tcg_temp_free_i32(t0);
}
#endif #endif
} }
static void spr_write_generic (void *opaque, int sprn, int gprn) static void spr_write_generic (void *opaque, int sprn, int gprn)
{ {
gen_store_spr(sprn, cpu_gpr[gprn]); gen_store_spr(sprn, cpu_gpr[gprn]);
#ifdef PPC_DUMP_SPR_ACCESSES spr_store_dump_spr(sprn);
{
TCGv_i32 t0 = tcg_const_i32(sprn);
gen_helper_store_dump_spr(t0);
tcg_temp_free_i32(t0);
}
#endif
} }
#if !defined(CONFIG_USER_ONLY) #if !defined(CONFIG_USER_ONLY)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册