Index: src/x64/lithium-codegen-x64.cc |
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
index 8e54f20736493d22adcedae360e12dca29d9db9f..7ceff76e148f70efd55d40c898b00e50a628ced0 100644 |
--- a/src/x64/lithium-codegen-x64.cc |
+++ b/src/x64/lithium-codegen-x64.cc |
@@ -2047,7 +2047,7 @@ void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) { |
} |
-void LCodeGen::DoStoreGlobal(LStoreGlobal* instr) { |
+void LCodeGen::DoStoreGlobalCell(LStoreGlobalCell* instr) { |
Register value = ToRegister(instr->InputAt(0)); |
Register temp = ToRegister(instr->TempAt(0)); |
ASSERT(!value.is(temp)); |
@@ -2070,6 +2070,16 @@ void LCodeGen::DoStoreGlobal(LStoreGlobal* instr) { |
} |
+void LCodeGen::DoStoreGlobalGeneric(LStoreGlobalGeneric* instr) { |
+ ASSERT(ToRegister(instr->global_object()).is(rdx)); |
+ ASSERT(ToRegister(instr->value()).is(rax)); |
+ |
+ __ Move(rcx, instr->name()); |
+ Handle<Code> ic = isolate()->builtins()->StoreIC_Initialize(); |
+ CallCode(ic, RelocInfo::CODE_TARGET_CONTEXT, instr); |
+} |
+ |
+ |
void LCodeGen::DoLoadContextSlot(LLoadContextSlot* instr) { |
Register context = ToRegister(instr->context()); |
Register result = ToRegister(instr->result()); |
@@ -2744,7 +2754,6 @@ void LCodeGen::DoPower(LPower* instr) { |
ExternalReference::power_double_int_function(isolate()), 2); |
} else { |
ASSERT(exponent_type.IsTagged()); |
- CpuFeatures::Scope scope(SSE2); |
Register right_reg = ToRegister(right); |
Label non_smi, call; |