moved global state from inline_cache into vm

db4
Phil Dawes 2009-08-17 21:37:13 +01:00
parent 498b1917dc
commit 839491a828
4 changed files with 7 additions and 13 deletions

View File

@ -19,7 +19,6 @@ void init_objects(image_header *h)
return vm->init_objects(h); return vm->init_objects(h);
} }
cell data_relocation_base;
void factorvm::load_data_heap(FILE *file, image_header *h, vm_parameters *p) void factorvm::load_data_heap(FILE *file, image_header *h, vm_parameters *p)
{ {
@ -59,7 +58,6 @@ void load_data_heap(FILE *file, image_header *h, vm_parameters *p)
return vm->load_data_heap(file,h,p); return vm->load_data_heap(file,h,p);
} }
cell code_relocation_base;
void factorvm::load_code_heap(FILE *file, image_header *h, vm_parameters *p) void factorvm::load_code_heap(FILE *file, image_header *h, vm_parameters *p)
{ {

View File

@ -3,14 +3,6 @@
namespace factor namespace factor
{ {
cell max_pic_size;
cell cold_call_to_ic_transitions;
cell ic_to_pic_transitions;
cell pic_to_mega_transitions;
/* PIC_TAG, PIC_HI_TAG, PIC_TUPLE, PIC_HI_TAG_TUPLE */
cell pic_counts[4];
void factorvm::init_inline_caching(int max_size) void factorvm::init_inline_caching(int max_size)
{ {

View File

@ -1,8 +1,5 @@
namespace factor namespace factor
{ {
extern cell max_pic_size;
void init_inline_caching(int max_size); void init_inline_caching(int max_size);
PRIMITIVE(reset_inline_cache_stats); PRIMITIVE(reset_inline_cache_stats);

View File

@ -489,6 +489,8 @@ struct factorvm {
void compact_code_heap(); void compact_code_heap();
//image //image
cell code_relocation_base;
cell data_relocation_base;
void init_objects(image_header *h); void init_objects(image_header *h);
void load_data_heap(FILE *file, image_header *h, vm_parameters *p); void load_data_heap(FILE *file, image_header *h, vm_parameters *p);
void load_code_heap(FILE *file, image_header *h, vm_parameters *p); void load_code_heap(FILE *file, image_header *h, vm_parameters *p);
@ -578,6 +580,11 @@ struct factorvm {
inline void vmprim_dispatch_stats(); inline void vmprim_dispatch_stats();
//inline cache //inline cache
cell max_pic_size;
cell cold_call_to_ic_transitions;
cell ic_to_pic_transitions;
cell pic_to_mega_transitions;
cell pic_counts[4]; /* PIC_TAG, PIC_HI_TAG, PIC_TUPLE, PIC_HI_TAG_TUPLE */
void init_inline_caching(int max_size); void init_inline_caching(int max_size);
void deallocate_inline_cache(cell return_address); void deallocate_inline_cache(cell return_address);
cell determine_inline_cache_type(array *cache_entries); cell determine_inline_cache_type(array *cache_entries);