summaryrefslogtreecommitdiff
path: root/target/hppa/cpu.h
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2017-12-28 12:38:46 -0800
committerRichard Henderson <richard.henderson@linaro.org>2018-01-30 10:08:18 -0800
commit86f8d05fc0bd077811c11c603b4263df2192e8e0 (patch)
treea01845ef03378d6a2b4d556ef49b66aff80ff971 /target/hppa/cpu.h
parent08aec8b53c76b90f935b96ba2f466331a8a3b8ae (diff)
downloadqemu-86f8d05fc0bd077811c11c603b4263df2192e8e0.tar.gz
target/hppa: Use space registers in data operations
This changes the system virtual address width to 64-bit and incorporates the space registers into load/store operations. Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'target/hppa/cpu.h')
-rw-r--r--target/hppa/cpu.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index ef36826f54..49f95a0b77 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -23,10 +23,24 @@
#include "qemu-common.h"
#include "cpu-qom.h"
+#ifdef TARGET_HPPA64
+#define TARGET_LONG_BITS 64
+#define TARGET_VIRT_ADDR_SPACE_BITS 64
+#define TARGET_REGISTER_BITS 64
+#define TARGET_PHYS_ADDR_SPACE_BITS 64
+#elif defined(CONFIG_USER_ONLY)
#define TARGET_LONG_BITS 32
#define TARGET_VIRT_ADDR_SPACE_BITS 32
#define TARGET_REGISTER_BITS 32
#define TARGET_PHYS_ADDR_SPACE_BITS 32
+#else
+/* In order to form the GVA from space:offset,
+ we need a 64-bit virtual address space. */
+#define TARGET_LONG_BITS 64
+#define TARGET_VIRT_ADDR_SPACE_BITS 64
+#define TARGET_REGISTER_BITS 32
+#define TARGET_PHYS_ADDR_SPACE_BITS 32
+#endif
#define CPUArchState struct CPUHPPAState