added VM relocation type
							parent
							
								
									d48dffcfa0
								
							
						
					
					
						commit
						a5f24c8fb9
					
				| 
						 | 
				
			
			@ -50,6 +50,7 @@ CONSTANT: rt-immediate 8
 | 
			
		|||
CONSTANT: rt-stack-chain 9
 | 
			
		||||
CONSTANT: rt-untagged 10
 | 
			
		||||
CONSTANT: rt-megamorphic-cache-hits 11
 | 
			
		||||
CONSTANT: rt-vm 12
 | 
			
		||||
 | 
			
		||||
: rc-absolute? ( n -- ? )
 | 
			
		||||
    ${ rc-absolute-ppc-2/2 rc-absolute-cell rc-absolute } member? ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,6 +44,7 @@ int factorvm::number_of_parameters(relocation_type type)
 | 
			
		|||
	case RT_THIS:
 | 
			
		||||
	case RT_STACK_CHAIN:
 | 
			
		||||
	case RT_MEGAMORPHIC_CACHE_HITS:
 | 
			
		||||
	case RT_VM:
 | 
			
		||||
		return 0;
 | 
			
		||||
	default:
 | 
			
		||||
		critical_error("Bad rel type",type);
 | 
			
		||||
| 
						 | 
				
			
			@ -186,6 +187,8 @@ cell factorvm::compute_relocation(relocation_entry rel, cell index, code_block *
 | 
			
		|||
		return untag_fixnum(ARG);
 | 
			
		||||
	case RT_MEGAMORPHIC_CACHE_HITS:
 | 
			
		||||
		return (cell)&megamorphic_cache_hits;
 | 
			
		||||
	case RT_VM:
 | 
			
		||||
		return (cell)this;
 | 
			
		||||
	default:
 | 
			
		||||
		critical_error("Bad rel type",rel);
 | 
			
		||||
		return 0; /* Can't happen */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,6 +26,8 @@ enum relocation_type {
 | 
			
		|||
	RT_UNTAGGED,
 | 
			
		||||
	/* address of megamorphic_cache_hits var */
 | 
			
		||||
	RT_MEGAMORPHIC_CACHE_HITS,
 | 
			
		||||
	/* address of vm object*/
 | 
			
		||||
	RT_VM,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum relocation_class {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,8 +35,8 @@
 | 
			
		|||
 | 
			
		||||
/* Factor headers */
 | 
			
		||||
#include "layouts.hpp"
 | 
			
		||||
#include "platform.hpp"
 | 
			
		||||
#include "primitives.hpp"
 | 
			
		||||
#include "platform.hpp"
 | 
			
		||||
#include "stacks.hpp"
 | 
			
		||||
#include "segments.hpp"
 | 
			
		||||
#include "contexts.hpp"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue