From: Alexey Kardashevskiy Date: Mon, 23 Dec 2013 02:42:22 +0000 (+1100) Subject: target-ppc: disable unsupported modes for SPR_CTRL/SPR_UCTRL X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.1~386^2~42^2~123^2~114 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4e38181979ec4bc80c75f0c181f9df2d4e933c13;p=sdk%2Femulator%2Fqemu.git target-ppc: disable unsupported modes for SPR_CTRL/SPR_UCTRL The Figure 17 "SPR encodings" of the PowerISA 2.07 describes CTRL SPR as: priviledged # spr5-9 spr0-4 name mtspr mfspr len cat 136 00100 01000 CTRL - no 32 S 152 00100 11000 CTRL yes - 32 S According to this chart, the hypervisor's CTRL (#152) does not support reading, the user-space's CTRL (UCTRL, #136) does not support writing. This replaces unsupported operations with the default SPR_NOACCESS hook. Signed-off-by: Alexey Kardashevskiy Signed-off-by: Alexander Graf --- diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c index d751fc34ec..02f586734b 100644 --- a/target-ppc/translate_init.c +++ b/target-ppc/translate_init.c @@ -6739,11 +6739,11 @@ static void init_proc_970FX (CPUPPCState *env) 0x00000000); spr_register(env, SPR_CTRL, "SPR_CTRL", SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, + SPR_NOACCESS, &spr_write_generic, 0x00000000); spr_register(env, SPR_UCTRL, "SPR_UCTRL", SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, + &spr_read_generic, SPR_NOACCESS, 0x00000000); spr_register(env, SPR_VRSAVE, "SPR_VRSAVE", &spr_read_generic, &spr_write_generic, @@ -6909,11 +6909,11 @@ static void init_proc_power5plus(CPUPPCState *env) 0x00000000); spr_register(env, SPR_CTRL, "SPR_CTRL", SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, + SPR_NOACCESS, &spr_write_generic, 0x00000000); spr_register(env, SPR_UCTRL, "SPR_UCTRL", SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, + &spr_read_generic, SPR_NOACCESS, 0x00000000); spr_register(env, SPR_VRSAVE, "SPR_VRSAVE", &spr_read_generic, &spr_write_generic, @@ -7014,11 +7014,11 @@ static void init_proc_POWER7 (CPUPPCState *env) /* XXX : not implemented */ spr_register(env, SPR_CTRL, "SPR_CTRLT", SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, + SPR_NOACCESS, &spr_write_generic, 0x80800000); spr_register(env, SPR_UCTRL, "SPR_CTRLF", SPR_NOACCESS, SPR_NOACCESS, - &spr_read_generic, &spr_write_generic, + &spr_read_generic, SPR_NOACCESS, 0x80800000); spr_register(env, SPR_VRSAVE, "SPR_VRSAVE", &spr_read_generic, &spr_write_generic,