Dev checkpoint

db4
Phil Dawes 2009-08-17 21:37:14 +01:00
parent 8fa607e9a9
commit 93c665c653
2 changed files with 8 additions and 8 deletions

View File

@ -251,7 +251,7 @@ void factorvm::iterate_relocations(code_block *compiled, relocation_iterator ite
for(cell i = 0; i < length; i++) for(cell i = 0; i < length; i++)
{ {
relocation_entry rel = relocation->data<relocation_entry>()[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)); 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. */ /* 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)); 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) 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); 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, /* Relocate new code blocks completely; updating references to literals,

View File

@ -64,7 +64,7 @@ void flush_icache_for(code_block *compiled);
struct factorvm; 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); void iterate_relocations(code_block *compiled, relocation_iterator iter);