aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHelge Deller <deller@gmx.de>2025-01-28 20:08:17 +0100
committerHelge Deller <deller@gmx.de>2025-01-30 13:37:20 +0100
commit75f73d5af1104c25975322a41b4bc4965fdff719 (patch)
treef0f0766d25988d1f837ac6c3be56c27d2597c665
parentf7aa7fa97ce7d66d9255d663aa9df46f3505b137 (diff)
downloadqemu-75f73d5af1104c25975322a41b4bc4965fdff719.zip
qemu-75f73d5af1104c25975322a41b4bc4965fdff719.tar.gz
qemu-75f73d5af1104c25975322a41b4bc4965fdff719.tar.bz2
target/hppa: 64-bit CPUs start with space register hashing enabled
Turn on space register hashing for 64-bit CPUs when reset. Signed-off-by: Helge Deller <deller@gmx.de> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
-rw-r--r--target/hppa/cpu.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c
index b0bc9d3..c86f919 100644
--- a/target/hppa/cpu.c
+++ b/target/hppa/cpu.c
@@ -28,6 +28,7 @@
#include "exec/translation-block.h"
#include "fpu/softfloat.h"
#include "tcg/tcg.h"
+#include "hw/hppa/hppa_hardware.h"
static void hppa_cpu_set_pc(CPUState *cs, vaddr value)
{
@@ -217,6 +218,10 @@ static void hppa_cpu_reset_hold(Object *obj, ResetType type)
memset(env, 0, offsetof(CPUHPPAState, end_reset_fields));
cpu_hppa_loaded_fr0(env);
+
+ /* 64-bit machines start with space-register hashing enabled in %dr2 */
+ env->dr[2] = hppa_is_pa20(env) ? HPPA64_DIAG_SPHASH_ENABLE : 0;
+
cpu_hppa_put_psw(env, PSW_M);
}