| Index: src/code-stubs-hydrogen.cc
|
| diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc
|
| index 225e00f5a49daf4ddebd84734bbc0946b5891661..e33b4a8438eaafcc8baccb0e533fcbab2dacab8f 100644
|
| --- a/src/code-stubs-hydrogen.cc
|
| +++ b/src/code-stubs-hydrogen.cc
|
| @@ -518,13 +518,7 @@ HValue* CodeStubGraphBuilder<LoadGlobalContextFieldStub>::BuildCodeStub() {
|
| int context_index = casted_stub()->context_index();
|
| int slot_index = casted_stub()->slot_index();
|
|
|
| - HValue* native_context = BuildGetNativeContext();
|
| - HValue* global_context_table = Add<HLoadNamedField>(
|
| - native_context, static_cast<HValue*>(NULL),
|
| - HObjectAccess::ForContextSlot(Context::GLOBAL_CONTEXT_TABLE_INDEX));
|
| - HValue* global_context =
|
| - Add<HLoadNamedField>(global_context_table, static_cast<HValue*>(NULL),
|
| - HObjectAccess::ForGlobalContext(context_index));
|
| + HValue* global_context = BuildGetGlobalContext(context_index);
|
| return Add<HLoadNamedField>(global_context, static_cast<HValue*>(NULL),
|
| HObjectAccess::ForContextSlot(slot_index));
|
| }
|
| @@ -536,6 +530,24 @@ Handle<Code> LoadGlobalContextFieldStub::GenerateCode() {
|
|
|
|
|
| template <>
|
| +HValue* CodeStubGraphBuilder<StoreGlobalContextFieldStub>::BuildCodeStub() {
|
| + int context_index = casted_stub()->context_index();
|
| + int slot_index = casted_stub()->slot_index();
|
| +
|
| + HValue* global_context = BuildGetGlobalContext(context_index);
|
| + Add<HStoreNamedField>(global_context,
|
| + HObjectAccess::ForContextSlot(slot_index),
|
| + GetParameter(2), STORE_TO_INITIALIZED_ENTRY);
|
| + return GetParameter(2);
|
| +}
|
| +
|
| +
|
| +Handle<Code> StoreGlobalContextFieldStub::GenerateCode() {
|
| + return DoGenerateCode(this);
|
| +}
|
| +
|
| +
|
| +template <>
|
| HValue* CodeStubGraphBuilder<LoadFastElementStub>::BuildCodeStub() {
|
| HInstruction* load = BuildUncheckedMonomorphicElementAccess(
|
| GetParameter(LoadDescriptor::kReceiverIndex),
|
|
|