Dynamically allocate tbs. Avoids branch range problems on RISC hosts.
authorpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>
Sat, 24 May 2008 13:56:15 +0000 (13:56 +0000)
committerpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>
Sat, 24 May 2008 13:56:15 +0000 (13:56 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4555 c046a42c-6fe2-441c-8c8c-71466251a162

exec.c

diff --git a/exec.c b/exec.c
index 53bad8cb3fe5844cb4ccce6e9d200b20a6501efb..adbf7e5b257f2f7da5dc66c5b8fd6238bb3211e5 100644 (file)
--- a/exec.c
+++ b/exec.c
@@ -84,7 +84,7 @@
 #define TARGET_PHYS_ADDR_SPACE_BITS 32
 #endif
 
-TranslationBlock tbs[CODE_GEN_MAX_BLOCKS];
+TranslationBlock *tbs;
 TranslationBlock *tb_phys_hash[CODE_GEN_PHYS_HASH_SIZE];
 int nb_tbs;
 /* any access to the tbs or the page table must use this lock */
@@ -335,6 +335,7 @@ void cpu_exec_init(CPUState *env)
 
     if (!code_gen_ptr) {
         cpu_gen_init();
+        tbs = qemu_malloc(CODE_GEN_MAX_BLOCKS * sizeof(TranslationBlock));
         code_gen_ptr = code_gen_buffer;
         page_init();
         io_mem_init();