]> gitweb.factorcode.org Git - factor.git/commitdiff
Dev checkpoint
authorPhil Dawes <phil@phildawes.net>
Mon, 17 Aug 2009 20:37:14 +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

index 0c95fcc424e9d118a23009daab25c2f718bb2d75..1beeddd69e7e16d669713fbe98d8e13ed58abf5b 100755 (executable)
@@ -251,7 +251,7 @@ void factorvm::iterate_relocations(code_block *compiled, relocation_iterator ite
                for(cell i = 0; i < length; i++)
                {
                        relocation_entry rel = relocation->data<relocation_entry>()[i];
-                       iter(rel,index,compiled);
+                       iter(rel,index,compiled,this);
                        index += number_of_parameters(relocation_type_of(rel));                 
                }
        }
@@ -352,9 +352,9 @@ void factorvm::update_literal_references_step(relocation_entry rel, cell index,
        }
 }
 
-void update_literal_references_step(relocation_entry rel, cell index, code_block *compiled)
+void update_literal_references_step(relocation_entry rel, cell index, code_block *compiled, factorvm *myvm)
 {
-       return vm->update_literal_references_step(rel,index,compiled);
+       return myvm->update_literal_references_step(rel,index,compiled);
 }
 
 /* Update pointers to literals from compiled code. */
@@ -415,9 +415,9 @@ void factorvm::relocate_code_block_step(relocation_entry rel, cell index, code_b
                                    compute_relocation(rel,index,compiled));
 }
 
-void relocate_code_block_step(relocation_entry rel, cell index, code_block *compiled)
+void relocate_code_block_step(relocation_entry rel, cell index, code_block *compiled, factorvm *myvm)
 {
-       return vm->relocate_code_block_step(rel,index,compiled);
+       return myvm->relocate_code_block_step(rel,index,compiled);
 }
 
 void factorvm::update_word_references_step(relocation_entry rel, cell index, code_block *compiled)
@@ -427,9 +427,9 @@ void factorvm::update_word_references_step(relocation_entry rel, cell index, cod
                relocate_code_block_step(rel,index,compiled);
 }
 
-void update_word_references_step(relocation_entry rel, cell index, code_block *compiled)
+void update_word_references_step(relocation_entry rel, cell index, code_block *compiled, factorvm *myvm)
 {
-       return vm->update_word_references_step(rel,index,compiled);
+       return myvm->update_word_references_step(rel,index,compiled);
 }
 
 /* Relocate new code blocks completely; updating references to literals,
index 67c1e837f47a49094bbd94be1b73eabf9d077df4..e29d161339fdef047f580e76577832124d29dc62 100644 (file)
@@ -64,7 +64,7 @@ void flush_icache_for(code_block *compiled);
 
 struct factorvm;
 
-typedef void (*relocation_iterator)(relocation_entry rel, cell index, code_block *compiled);
+typedef void (*relocation_iterator)(relocation_entry rel, cell index, code_block *compiled, factorvm *vm);
 
 void iterate_relocations(code_block *compiled, relocation_iterator iter);