diff options
Diffstat (limited to 'deps/v8/src/ia32/stub-cache-ia32.cc')
-rw-r--r-- | deps/v8/src/ia32/stub-cache-ia32.cc | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/deps/v8/src/ia32/stub-cache-ia32.cc b/deps/v8/src/ia32/stub-cache-ia32.cc index aa8f47a880..c27a60fd06 100644 --- a/deps/v8/src/ia32/stub-cache-ia32.cc +++ b/deps/v8/src/ia32/stub-cache-ia32.cc @@ -429,7 +429,7 @@ static void GenerateFastApiCall(MacroAssembler* masm, // ----------------------------------- // Get the function and setup the context. Handle<JSFunction> function = optimization.constant_function(); - __ mov(edi, Immediate(function)); + __ LoadHeapObject(edi, function); __ mov(esi, FieldOperand(edi, JSFunction::kContextOffset)); // Pass the additional arguments. @@ -1025,7 +1025,7 @@ void StubCompiler::GenerateLoadConstant(Handle<JSObject> object, Register scratch1, Register scratch2, Register scratch3, - Handle<Object> value, + Handle<JSFunction> value, Handle<String> name, Label* miss) { // Check that the receiver isn't a smi. @@ -1036,7 +1036,7 @@ void StubCompiler::GenerateLoadConstant(Handle<JSObject> object, object, receiver, holder, scratch1, scratch2, scratch3, name, miss); // Return the constant value. - __ mov(eax, value); + __ LoadHeapObject(eax, value); __ ret(0); } @@ -2522,23 +2522,9 @@ Handle<Code> StoreStubCompiler::CompileStoreGlobal( // Store the value in the cell. __ mov(cell_operand, eax); - Label done; - __ test(eax, Immediate(kSmiTagMask)); - __ j(zero, &done); - - __ mov(ecx, eax); - __ lea(edx, cell_operand); - // Cells are always in the remembered set. - __ RecordWrite(ebx, // Object. - edx, // Address. - ecx, // Value. - kDontSaveFPRegs, - OMIT_REMEMBERED_SET, - OMIT_SMI_CHECK); + // No write barrier here, because cells are always rescanned. // Return the value (register eax). - __ bind(&done); - Counters* counters = isolate()->counters(); __ IncrementCounter(counters->named_store_global_inline(), 1); __ ret(0); @@ -2729,7 +2715,7 @@ Handle<Code> LoadStubCompiler::CompileLoadCallback( Handle<Code> LoadStubCompiler::CompileLoadConstant(Handle<JSObject> object, Handle<JSObject> holder, - Handle<Object> value, + Handle<JSFunction> value, Handle<String> name) { // ----------- S t a t e ------------- // -- eax : receiver @@ -2891,7 +2877,7 @@ Handle<Code> KeyedLoadStubCompiler::CompileLoadConstant( Handle<String> name, Handle<JSObject> receiver, Handle<JSObject> holder, - Handle<Object> value) { + Handle<JSFunction> value) { // ----------- S t a t e ------------- // -- eax : key // -- edx : receiver |