summaryrefslogtreecommitdiff
path: root/exec.c
diff options
context:
space:
mode:
authorj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-04-05 20:08:21 +0000
committerj_mayer <j_mayer@c046a42c-6fe2-441c-8c8c-71466251a162>2007-04-05 20:08:21 +0000
commitbedb69ea0453a65a1c5a7b159ab485c542ecd15c (patch)
tree98f475bf48e3fa4bb8b2790adb190391d6029412 /exec.c
parentf6b647cd9ece4f26e3c48790930818be1c3a4426 (diff)
Temporary hack for alpha user-mode emulation.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2606 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'exec.c')
-rw-r--r--exec.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/exec.c b/exec.c
index c49c86f1a..2467b6295 100644
--- a/exec.c
+++ b/exec.c
@@ -64,6 +64,9 @@
#if defined(TARGET_SPARC64)
#define TARGET_PHYS_ADDR_SPACE_BITS 41
+#elif defined(TARGET_ALPHA)
+#define TARGET_PHYS_ADDR_SPACE_BITS 42
+#define TARGET_VIRT_ADDR_SPACE_BITS 42
#elif defined(TARGET_PPC64)
#define TARGET_PHYS_ADDR_SPACE_BITS 42
#else
@@ -109,7 +112,15 @@ typedef struct PhysPageDesc {
} PhysPageDesc;
#define L2_BITS 10
+#if defined(CONFIG_USER_ONLY) && defined(TARGET_VIRT_ADDR_SPACE_BITS)
+/* XXX: this is a temporary hack for alpha target.
+ * In the future, this is to be replaced by a multi-level table
+ * to actually be able to handle the complete 64 bits address space.
+ */
+#define L1_BITS (TARGET_VIRT_ADDR_SPACE_BITS - L2_BITS - TARGET_PAGE_BITS)
+#else
#define L1_BITS (32 - L2_BITS - TARGET_PAGE_BITS)
+#endif
#define L1_SIZE (1 << L1_BITS)
#define L2_SIZE (1 << L2_BITS)