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: Alexander Graf <agraf@suse.de>
This commit is contained in:
Alexander Graf 2012-06-21 13:39:48 +02:00
parent b81ccf8ae7
commit 91f477fd9c
1 changed files with 18 additions and 12 deletions

View File

@ -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)