| Index: src/bootstrapper.cc
|
| ===================================================================
|
| --- src/bootstrapper.cc (revision 746)
|
| +++ src/bootstrapper.cc (working copy)
|
| @@ -205,11 +205,20 @@
|
| Code* code = Code::cast(code_[i]);
|
| Address pc = code->instruction_start() + pc_[i];
|
| bool is_pc_relative = Bootstrapper::FixupFlagsIsPCRelative::decode(flags);
|
| - if (is_pc_relative) {
|
| + bool use_code_object = Bootstrapper::FixupFlagsUseCodeObject::decode(flags);
|
| +
|
| + if (use_code_object) {
|
| + if (is_pc_relative) {
|
| + Assembler::set_target_address_at(
|
| + pc, reinterpret_cast<Address>(f->code()));
|
| + } else {
|
| + *reinterpret_cast<Object**>(pc) = f->code();
|
| + }
|
| + } else {
|
| + ASSERT(is_pc_relative);
|
| Assembler::set_target_address_at(pc, f->code()->instruction_start());
|
| - } else {
|
| - *reinterpret_cast<Object**>(pc) = f->code();
|
| }
|
| +
|
| LOG(StringEvent("resolved", name));
|
| }
|
| Clear();
|
|
|