Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index 5b3f23bb022663860c6019bb6239ef059ebf6c50..33c76042db6c0fba3501080c2c3e8e86659edd48 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -1404,6 +1404,27 @@ void LCodeGen::DoStoreGlobal(LStoreGlobal* instr) { |
} |
+void LCodeGen::DoLoadContextSlot(LLoadContextSlot* instr) { |
+#if 0 |
+ // TODO(antonm): load a context with a separate instruction. |
+ Register result = ToRegister(instr->result()); |
+ HLoadContextSlot* hinstr = instr->hydrogen(); |
+ Handle<Context> context = hinstr->context(); |
+ Comment(";;; Load context slot %d out of %p", hinstr->index(), *context); |
+ if (Heap::InNewSpace(*context)) { |
+ Handle<JSGlobalPropertyCell> cell = |
+ Factory::NewJSGlobalPropertyCell(context); |
+ __ mov(result, Operand::Cell(cell)); |
+ } else { |
+ __ mov(result, context); |
+ } |
+ __ mov(result, Operand(result, Context::SlotOffset(hinstr->index()))); |
+#else |
+ Abort("DoLoadContextSlot unimplemented"); |
+#endif |
+} |
+ |
+ |
void LCodeGen::DoLoadNamedField(LLoadNamedField* instr) { |
Abort("DoLoadNamedField unimplemented."); |
} |