vm: fix RT_HERE fixup on image load
parent
8ed4760b51
commit
4405a66f99
|
@ -117,8 +117,9 @@ struct code_block_compaction_relocation_visitor {
|
||||||
case RT_HERE:
|
case RT_HERE:
|
||||||
{
|
{
|
||||||
cell value = op.load_value(old_offset);
|
cell value = op.load_value(old_offset);
|
||||||
cell offset = value & (data_alignment - 1);
|
cell offset = TAG(value);
|
||||||
op.store_value((cell)fixup.fixup_code((code_block *)value) + offset);
|
code_block *compiled = (code_block *)UNTAG(value);
|
||||||
|
op.store_value((cell)fixup.fixup_code(compiled) + offset);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case RT_THIS:
|
case RT_THIS:
|
||||||
|
|
|
@ -180,8 +180,9 @@ struct startup_code_block_relocation_visitor {
|
||||||
case RT_HERE:
|
case RT_HERE:
|
||||||
{
|
{
|
||||||
cell value = op.load_value(old_offset);
|
cell value = op.load_value(old_offset);
|
||||||
cell offset = value & (data_alignment - 1);
|
cell offset = TAG(value);
|
||||||
op.store_value((cell)fixup.fixup_code((code_block *)value) + offset);
|
code_block *compiled = (code_block *)UNTAG(value);
|
||||||
|
op.store_value((cell)fixup.fixup_code(compiled) + offset);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case RT_UNTAGGED:
|
case RT_UNTAGGED:
|
||||||
|
|
Loading…
Reference in New Issue