diff options
Diffstat (limited to 'deps/v8/src/ic/mips/handler-compiler-mips.cc')
-rw-r--r-- | deps/v8/src/ic/mips/handler-compiler-mips.cc | 46 |
1 files changed, 19 insertions, 27 deletions
diff --git a/deps/v8/src/ic/mips/handler-compiler-mips.cc b/deps/v8/src/ic/mips/handler-compiler-mips.cc index f4e0f0baba..df7a0df175 100644 --- a/deps/v8/src/ic/mips/handler-compiler-mips.cc +++ b/deps/v8/src/ic/mips/handler-compiler-mips.cc @@ -107,13 +107,19 @@ void NamedStoreHandlerCompiler::GenerateStoreViaSetter( void PropertyHandlerCompiler::PushVectorAndSlot(Register vector, Register slot) { MacroAssembler* masm = this->masm(); - __ Push(vector, slot); + STATIC_ASSERT(LoadWithVectorDescriptor::kSlot < + LoadWithVectorDescriptor::kVector); + STATIC_ASSERT(StoreWithVectorDescriptor::kSlot < + StoreWithVectorDescriptor::kVector); + STATIC_ASSERT(StoreTransitionDescriptor::kSlot < + StoreTransitionDescriptor::kVector); + __ Push(slot, vector); } void PropertyHandlerCompiler::PopVectorAndSlot(Register vector, Register slot) { MacroAssembler* masm = this->masm(); - __ Pop(vector, slot); + __ Pop(slot, vector); } @@ -123,6 +129,13 @@ void PropertyHandlerCompiler::DiscardVectorAndSlot() { __ Addu(sp, sp, Operand(2 * kPointerSize)); } +void PropertyHandlerCompiler::PushReturnAddress(Register tmp) { + // No-op. Return address is in ra register. +} + +void PropertyHandlerCompiler::PopReturnAddress(Register tmp) { + // No-op. Return address is in ra register. +} void PropertyHandlerCompiler::GenerateDictionaryNegativeLookup( MacroAssembler* masm, Label* miss_label, Register receiver, @@ -317,24 +330,6 @@ void PropertyHandlerCompiler::GenerateApiAccessorCall( __ TailCallStub(&stub); } - -static void StoreIC_PushArgs(MacroAssembler* masm) { - __ Push(StoreDescriptor::ReceiverRegister(), StoreDescriptor::NameRegister(), - StoreDescriptor::ValueRegister(), - StoreWithVectorDescriptor::SlotRegister(), - StoreWithVectorDescriptor::VectorRegister()); -} - - -void ElementHandlerCompiler::GenerateStoreSlow(MacroAssembler* masm) { - StoreIC_PushArgs(masm); - - // The slow case calls into the runtime to complete the store without causing - // an IC miss that would otherwise cause a transition to the generic stub. - __ TailCallRuntime(Runtime::kKeyedStoreIC_Slow); -} - - #undef __ #define __ ACCESS_MASM(masm()) @@ -353,12 +348,6 @@ void NamedStoreHandlerCompiler::GenerateRestoreName(Handle<Name> name) { } -void NamedStoreHandlerCompiler::RearrangeVectorAndSlot( - Register current_map, Register destination_map) { - DCHECK(false); // Not implemented. -} - - void NamedStoreHandlerCompiler::GenerateRestoreMap(Handle<Map> transition, Register map_reg, Register scratch, @@ -615,6 +604,9 @@ void NamedLoadHandlerCompiler::GenerateLoadInterceptor(Register holder_reg) { __ TailCallRuntime(Runtime::kLoadPropertyWithInterceptor); } +void NamedStoreHandlerCompiler::ZapStackArgumentsRegisterAliases() { + STATIC_ASSERT(!StoreWithVectorDescriptor::kPassLastArgsOnStack); +} Handle<Code> NamedStoreHandlerCompiler::CompileStoreCallback( Handle<JSObject> object, Handle<Name> name, Handle<AccessorInfo> callback, @@ -675,7 +667,7 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadGlobal( DiscardVectorAndSlot(); } __ Ret(USE_DELAY_SLOT); - __ mov(v0, result); + __ Move(v0, result); // Ensure the stub returns correct value. FrontendFooter(name, &miss); |