| Index: src/mips/ic-mips.cc
|
| diff --git a/src/mips/ic-mips.cc b/src/mips/ic-mips.cc
|
| index 438a0eceed1b6d3839afcb40097ab9a66683b424..e891555c21985c75232c24bf5545d1f87f172393 100644
|
| --- a/src/mips/ic-mips.cc
|
| +++ b/src/mips/ic-mips.cc
|
| @@ -1421,6 +1421,47 @@ void KeyedStoreIC::GenerateSlow(MacroAssembler* masm) {
|
| }
|
|
|
|
|
| +void KeyedStoreIC::GenerateTransitionElementsSmiToDouble(MacroAssembler* masm) {
|
| + // ---------- S t a t e --------------
|
| + // -- a2 : receiver
|
| + // -- a3 : target map
|
| + // -- ra : return address
|
| + // -----------------------------------
|
| + // Must return the modified receiver in v0.
|
| + if (!FLAG_trace_elements_transitions) {
|
| + Label fail;
|
| + ElementsTransitionGenerator::GenerateSmiOnlyToDouble(masm, &fail);
|
| + __ Ret(USE_DELAY_SLOT);
|
| + __ mov(v0, a2);
|
| + __ bind(&fail);
|
| + }
|
| +
|
| + __ push(a2);
|
| + __ TailCallRuntime(Runtime::kTransitionElementsSmiToDouble, 1, 1);
|
| +}
|
| +
|
| +
|
| +void KeyedStoreIC::GenerateTransitionElementsDoubleToObject(
|
| + MacroAssembler* masm) {
|
| + // ---------- S t a t e --------------
|
| + // -- a2 : receiver
|
| + // -- a3 : target map
|
| + // -- ra : return address
|
| + // -----------------------------------
|
| + // Must return the modified receiver in v0.
|
| + if (!FLAG_trace_elements_transitions) {
|
| + Label fail;
|
| + ElementsTransitionGenerator::GenerateDoubleToObject(masm, &fail);
|
| + __ Ret(USE_DELAY_SLOT);
|
| + __ mov(v0, a2);
|
| + __ bind(&fail);
|
| + }
|
| +
|
| + __ push(a2);
|
| + __ TailCallRuntime(Runtime::kTransitionElementsDoubleToObject, 1, 1);
|
| +}
|
| +
|
| +
|
| void StoreIC::GenerateMegamorphic(MacroAssembler* masm,
|
| StrictModeFlag strict_mode) {
|
| // ----------- S t a t e -------------
|
|
|