target/ppc: Implement hashstp and hashchkp
Implementation for instructions hashstp and hashchkp, the privileged versions of hashst and hashchk, which were added in Power ISA 3.1B. Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br> Reviewed-by: Lucas Mateus Castro <lucas.araujo@eldorado.org.br> Message-Id: <20220715205439.161110-4-victor.colombo@eldorado.org.br> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
This commit is contained in:
parent
670f1da374
commit
53ae2aeb94
|
@ -2253,6 +2253,8 @@ void helper_##op(CPUPPCState *env, target_ulong ea, target_ulong ra, \
|
|||
|
||||
HELPER_HASH(HASHST, env->spr[SPR_HASHKEYR], true)
|
||||
HELPER_HASH(HASHCHK, env->spr[SPR_HASHKEYR], false)
|
||||
HELPER_HASH(HASHSTP, env->spr[SPR_HASHPKEYR], true)
|
||||
HELPER_HASH(HASHCHKP, env->spr[SPR_HASHPKEYR], false)
|
||||
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
|
||||
|
|
|
@ -6,6 +6,8 @@ DEF_HELPER_FLAGS_4(td, TCG_CALL_NO_WG, void, env, tl, tl, i32)
|
|||
#endif
|
||||
DEF_HELPER_4(HASHST, void, env, tl, tl, tl)
|
||||
DEF_HELPER_4(HASHCHK, void, env, tl, tl, tl)
|
||||
DEF_HELPER_4(HASHSTP, void, env, tl, tl, tl)
|
||||
DEF_HELPER_4(HASHCHKP, void, env, tl, tl, tl)
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
DEF_HELPER_2(store_msr, void, env, tl)
|
||||
DEF_HELPER_1(rfi, void, env)
|
||||
|
|
|
@ -330,6 +330,8 @@ PEXTD 011111 ..... ..... ..... 0010111100 - @X
|
|||
|
||||
HASHST 011111 ..... ..... ..... 1011010010 . @X_DW
|
||||
HASHCHK 011111 ..... ..... ..... 1011110010 . @X_DW
|
||||
HASHSTP 011111 ..... ..... ..... 1010010010 . @X_DW
|
||||
HASHCHKP 011111 ..... ..... ..... 1010110010 . @X_DW
|
||||
|
||||
## BCD Assist
|
||||
|
||||
|
|
|
@ -572,3 +572,5 @@ static bool do_hash(DisasContext *ctx, arg_X *a, bool priv,
|
|||
|
||||
TRANS(HASHST, do_hash, false, gen_helper_HASHST)
|
||||
TRANS(HASHCHK, do_hash, false, gen_helper_HASHCHK)
|
||||
TRANS(HASHSTP, do_hash, true, gen_helper_HASHSTP)
|
||||
TRANS(HASHCHKP, do_hash, true, gen_helper_HASHCHKP)
|
||||
|
|
Loading…
Reference in New Issue