From e1465308cdb00f1a0622dac96747dc08ce8ac6d8 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Mon, 17 Oct 2011 15:22:37 -0700 Subject: [PATCH] vm: add RT_SAFEPOINT relocation type --- vm/code_blocks.cpp | 3 +++ vm/instruction_operands.hpp | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/vm/code_blocks.cpp b/vm/code_blocks.cpp index d46a4a9c2c..6c9a2fc284 100755 --- a/vm/code_blocks.cpp +++ b/vm/code_blocks.cpp @@ -272,6 +272,9 @@ void factor_vm::store_external_address(instruction_operand op) case RT_INLINE_CACHE_MISS: op.store_value((cell)&factor::inline_cache_miss); break; + case RT_SAFEPOINT: + op.store_value((cell)code->safepoint_page); + break; default: critical_error("Bad rel type in store_external_address()",op.rel_type()); break; diff --git a/vm/instruction_operands.hpp b/vm/instruction_operands.hpp index b5a9931b81..492f2d905b 100644 --- a/vm/instruction_operands.hpp +++ b/vm/instruction_operands.hpp @@ -34,7 +34,9 @@ enum relocation_type { RT_DLSYM_TOC, /* address of inline_cache_miss function. This is a separate relocation to reduce compile time and size for PICs. */ - RT_INLINE_CACHE_MISS + RT_INLINE_CACHE_MISS, + /* address of safepoint page in code heap */ + RT_SAFEPOINT }; enum relocation_class {