Dev checkpoint
parent
efa974f025
commit
8fa607e9a9
|
@ -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 */
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
namespace factor
|
||||
{
|
||||
|
||||
bool profiling_p;
|
||||
|
||||
void factorvm::init_profiler()
|
||||
{
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
namespace factor
|
||||
{
|
||||
|
||||
extern bool profiling_p;
|
||||
void init_profiler();
|
||||
code_block *compile_profiling_stub(cell word);
|
||||
PRIMITIVE(profiling);
|
||||
|
|
12
vm/vm.hpp
12
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);
|
||||
|
|
Loading…
Reference in New Issue