Index: src/x64/lithium-codegen-x64.cc |
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
index 6239acb51531d1f39ecfd1e247315736e82c3e29..f10cf8529af2c3aa7fd898a5c6ffc42cfb0825bf 100644 |
--- a/src/x64/lithium-codegen-x64.cc |
+++ b/src/x64/lithium-codegen-x64.cc |
@@ -1897,9 +1897,10 @@ void LCodeGen::DoInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr) { |
Register map = ToRegister(instr->TempAt(0)); |
__ movq(map, FieldOperand(object, HeapObject::kMapOffset)); |
__ bind(deferred->map_check()); // Label for calculating code patching. |
- __ movq(kScratchRegister, factory()->the_hole_value(), |
- RelocInfo::EMBEDDED_OBJECT); |
- __ cmpq(map, kScratchRegister); // Patched to cached map. |
+ Handle<JSGlobalPropertyCell> cache_cell = |
+ factory()->NewJSGlobalPropertyCell(factory()->the_hole_value()); |
+ __ movq(kScratchRegister, cache_cell, RelocInfo::GLOBAL_PROPERTY_CELL); |
+ __ cmpq(map, Operand(kScratchRegister, 0)); |
__ j(not_equal, &cache_miss, Label::kNear); |
// Patched to load either true or false. |
__ LoadRoot(ToRegister(instr->result()), Heap::kTheHoleValueRootIndex); |