added VM relocation type

db4
Phil Dawes 2009-08-18 20:40:26 +01:00
parent d48dffcfa0
commit a5f24c8fb9
4 changed files with 7 additions and 1 deletions

View File

@ -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? ;

View File

@ -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 */

View File

@ -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 {

View File

@ -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"