]> gitweb.factorcode.org Git - factor.git/commitdiff
Dev checkpoint
authorPhil Dawes <phil@phildawes.net>
Mon, 17 Aug 2009 20:37:13 +0000 (21:37 +0100)
committerPhil Dawes <phil@phildawes.net>
Wed, 16 Sep 2009 07:16:25 +0000 (08:16 +0100)
vm/code_block.cpp
vm/code_block.hpp
vm/code_heap.cpp
vm/code_heap.hpp
vm/contexts.hpp
vm/image.cpp
vm/profiler.cpp
vm/profiler.hpp [changed mode: 0644->0755]
vm/vm.hpp

index d5aa7581c26ec5770bc11bd2a50788555c635d66..0c95fcc424e9d118a23009daab25c2f718bb2d75 100755 (executable)
@@ -397,9 +397,9 @@ void factorvm::copy_literal_references(code_block *compiled)
        }
 }
 
-void copy_literal_references(code_block *compiled)
+void copy_literal_references(code_block *compiled, factorvm *myvm)
 {
-       return vm->copy_literal_references(compiled);
+       return myvm->copy_literal_references(compiled);
 }
 
 /* Compute an address to store at a relocation */
@@ -456,9 +456,9 @@ void factorvm::update_word_references(code_block *compiled)
        }
 }
 
-void update_word_references(code_block *compiled)
+void update_word_references(code_block *compiled, factorvm *myvm)
 {
-       return vm->update_word_references(compiled);
+       return myvm->update_word_references(compiled);
 }
 
 void factorvm::update_literal_and_word_references(code_block *compiled)
@@ -574,9 +574,9 @@ void factorvm::relocate_code_block(code_block *compiled)
        flush_icache_for(compiled);
 }
 
-void relocate_code_block(code_block *compiled)
+void relocate_code_block(code_block *compiled, factorvm *myvm)
 {
-       return vm->relocate_code_block(compiled);
+       return myvm->relocate_code_block(compiled);
 }
 
 /* Fixup labels. This is done at compile time, not image load time */
index 3497ff33badd57f135a3bf755395204b0c1a24d0..67c1e837f47a49094bbd94be1b73eabf9d077df4 100644 (file)
@@ -62,19 +62,21 @@ typedef u32 relocation_entry;
 
 void flush_icache_for(code_block *compiled);
 
+struct factorvm;
+
 typedef void (*relocation_iterator)(relocation_entry rel, cell index, code_block *compiled);
 
 void iterate_relocations(code_block *compiled, relocation_iterator iter);
 
 void store_address_in_code_block(cell klass, cell offset, fixnum absolute_value);
 
-void relocate_code_block(code_block *compiled);
+void relocate_code_block(code_block *compiled, factorvm *myvm);
 
 void update_literal_references(code_block *compiled);
 
-void copy_literal_references(code_block *compiled);
+void copy_literal_references(code_block *compiled, factorvm *myvm);
 
-void update_word_references(code_block *compiled);
+void update_word_references(code_block *compiled, factorvm *myvm);
 
 void update_literal_and_word_references(code_block *compiled);
 
index 3d5d2c955a185e9224c9441a3cb85b1d79c66966..9399c9ae70624cedf1716ae2d1cdb6627eadf5d0 100755 (executable)
@@ -51,7 +51,7 @@ void factorvm::iterate_code_heap(code_heap_iterator iter)
        while(scan)
        {
                if(scan->status != B_FREE)
-                       iter((code_block *)scan);
+                       iter((code_block *)scan,this);
                scan = next_block(&code,scan);
        }
 }
index 31116590ad4c5085752d6a4562e3a5600e9be30a..26e1faeb199e3ab2495bc09fb635d3300a28f6f4 100755 (executable)
@@ -8,7 +8,8 @@ bool in_code_heap_p(cell ptr);
 
 void jit_compile_word(cell word, cell def, bool relocate);
 
-typedef void (*code_heap_iterator)(code_block *compiled);
+struct factorvm;
+typedef void (*code_heap_iterator)(code_block *compiled,factorvm *myvm);
 
 void iterate_code_heap(code_heap_iterator iter);
 
index 56642bcd1a627844aab732bfd10f8081abc1647c..98282101116990e1e47afa39b4fa4e5467b88d86 100644 (file)
@@ -36,8 +36,6 @@ struct context {
        context *next;
 };
 
-//extern cell ds_size, rs_size;
-
 #define ds_bot (stack_chain->datastack_region->start)
 #define ds_top (stack_chain->datastack_region->end)
 #define rs_bot (stack_chain->retainstack_region->start)
index 91fa1b801bff80d0092cbc804490bbbe73fcf3ab..ee86dd5a3fd139d0538067d8e9660c87a1ea40bd 100755 (executable)
@@ -363,9 +363,9 @@ void factorvm::fixup_code_block(code_block *compiled)
        relocate_code_block(compiled);
 }
 
-void fixup_code_block(code_block *compiled)
+void fixup_code_block(code_block *compiled,factorvm *myvm)
 {
-       return vm->fixup_code_block(compiled);
+       return myvm->fixup_code_block(compiled);
 }
 
 void factorvm::relocate_code()
index e87dd947fd867a7cc2fd1944267fdf4c3b5aeab6..8f714a992c4c43a95f0f941dc55b3a767ee53099 100755 (executable)
@@ -3,7 +3,6 @@
 namespace factor
 {
 
-bool profiling_p;
 
 void factorvm::init_profiler()
 {
old mode 100644 (file)
new mode 100755 (executable)
index b83ef3d..ab1d27b
@@ -1,7 +1,6 @@
 namespace factor
 {
 
-extern bool profiling_p;
 void init_profiler();
 code_block *compile_profiling_stub(cell word);
 PRIMITIVE(profiling);
index fab910be48f8c1af6b32c41f478a90f4f8f627f8..d0f31e4d3fd54a6db823e3e1357b2901e0468f25 100644 (file)
--- a/vm/vm.hpp
+++ b/vm/vm.hpp
@@ -1,17 +1,6 @@
 namespace factor
 {
 
-struct heap;
-struct data_heap;
-struct data;
-struct zone;
-struct vm_parameters;
-struct image_header;
-
-typedef u8 card;
-typedef u8 card_deck;
-
-
 struct factorvm {
 
        // contexts
@@ -47,6 +36,7 @@ struct factorvm {
        inline void vmprim_clone();
 
        // profiler
+       bool profiling_p;
        void init_profiler();
        code_block *compile_profiling_stub(cell word_);
        void set_profiling(bool profiling);