| OLD | NEW | 
|    1 // Copyright 2014 the V8 project authors. All rights reserved. |    1 // Copyright 2014 the V8 project authors. All rights reserved. | 
|    2 // Use of this source code is governed by a BSD-style license that can be |    2 // Use of this source code is governed by a BSD-style license that can be | 
|    3 // found in the LICENSE file. |    3 // found in the LICENSE file. | 
|    4  |    4  | 
|    5 #include "src/v8.h" |    5 #include "src/v8.h" | 
|    6  |    6  | 
|    7 #if V8_TARGET_ARCH_MIPS64 |    7 #if V8_TARGET_ARCH_MIPS64 | 
|    8  |    8  | 
|    9 #include "src/ic/call-optimization.h" |    9 #include "src/ic/call-optimization.h" | 
|   10 #include "src/ic/handler-compiler.h" |   10 #include "src/ic/handler-compiler.h" | 
| (...skipping 692 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  703   DCHECK(holder_reg.is(receiver()) || holder_reg.is(scratch1())); |  703   DCHECK(holder_reg.is(receiver()) || holder_reg.is(scratch1())); | 
|  704  |  704  | 
|  705   // Preserve the receiver register explicitly whenever it is different from the |  705   // Preserve the receiver register explicitly whenever it is different from the | 
|  706   // holder and it is needed should the interceptor return without any result. |  706   // holder and it is needed should the interceptor return without any result. | 
|  707   // The ACCESSOR case needs the receiver to be passed into C++ code, the FIELD |  707   // The ACCESSOR case needs the receiver to be passed into C++ code, the FIELD | 
|  708   // case might cause a miss during the prototype check. |  708   // case might cause a miss during the prototype check. | 
|  709   bool must_perform_prototype_check = |  709   bool must_perform_prototype_check = | 
|  710       !holder().is_identical_to(it->GetHolder<JSObject>()); |  710       !holder().is_identical_to(it->GetHolder<JSObject>()); | 
|  711   bool must_preserve_receiver_reg = |  711   bool must_preserve_receiver_reg = | 
|  712       !receiver().is(holder_reg) && |  712       !receiver().is(holder_reg) && | 
|  713       (it->property_kind() == LookupIterator::ACCESSOR || |  713       (it->state() == LookupIterator::ACCESSOR || must_perform_prototype_check); | 
|  714        must_perform_prototype_check); |  | 
|  715  |  714  | 
|  716   // Save necessary data before invoking an interceptor. |  715   // Save necessary data before invoking an interceptor. | 
|  717   // Requires a frame to make GC aware of pushed pointers. |  716   // Requires a frame to make GC aware of pushed pointers. | 
|  718   { |  717   { | 
|  719     FrameScope frame_scope(masm(), StackFrame::INTERNAL); |  718     FrameScope frame_scope(masm(), StackFrame::INTERNAL); | 
|  720     if (must_preserve_receiver_reg) { |  719     if (must_preserve_receiver_reg) { | 
|  721       __ Push(receiver(), holder_reg, this->name()); |  720       __ Push(receiver(), holder_reg, this->name()); | 
|  722     } else { |  721     } else { | 
|  723       __ Push(holder_reg, this->name()); |  722       __ Push(holder_reg, this->name()); | 
|  724     } |  723     } | 
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  831   // Return the generated code. |  830   // Return the generated code. | 
|  832   return GetCode(kind(), Code::NORMAL, name); |  831   return GetCode(kind(), Code::NORMAL, name); | 
|  833 } |  832 } | 
|  834  |  833  | 
|  835  |  834  | 
|  836 #undef __ |  835 #undef __ | 
|  837 } |  836 } | 
|  838 }  // namespace v8::internal |  837 }  // namespace v8::internal | 
|  839  |  838  | 
|  840 #endif  // V8_TARGET_ARCH_MIPS64 |  839 #endif  // V8_TARGET_ARCH_MIPS64 | 
| OLD | NEW |