| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/crankshaft/mips64/lithium-codegen-mips64.h" | 5 #include "src/crankshaft/mips64/lithium-codegen-mips64.h" | 
| 6 | 6 | 
| 7 #include "src/code-factory.h" | 7 #include "src/code-factory.h" | 
| 8 #include "src/code-stubs.h" | 8 #include "src/code-stubs.h" | 
| 9 #include "src/crankshaft/hydrogen-osr.h" | 9 #include "src/crankshaft/hydrogen-osr.h" | 
| 10 #include "src/crankshaft/mips64/lithium-gap-resolver-mips64.h" | 10 #include "src/crankshaft/mips64/lithium-gap-resolver-mips64.h" | 
| (...skipping 2700 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2711     // Read int value directly from upper half of the smi. | 2711     // Read int value directly from upper half of the smi. | 
| 2712     STATIC_ASSERT(kSmiTag == 0); | 2712     STATIC_ASSERT(kSmiTag == 0); | 
| 2713     STATIC_ASSERT(kSmiTagSize + kSmiShiftSize == 32); | 2713     STATIC_ASSERT(kSmiTagSize + kSmiShiftSize == 32); | 
| 2714     offset = SmiWordOffset(offset); | 2714     offset = SmiWordOffset(offset); | 
| 2715     representation = Representation::Integer32(); | 2715     representation = Representation::Integer32(); | 
| 2716   } | 2716   } | 
| 2717   __ Load(result, FieldMemOperand(object, offset), representation); | 2717   __ Load(result, FieldMemOperand(object, offset), representation); | 
| 2718 } | 2718 } | 
| 2719 | 2719 | 
| 2720 | 2720 | 
| 2721 void LCodeGen::DoLoadNamedGeneric(LLoadNamedGeneric* instr) { |  | 
| 2722   DCHECK(ToRegister(instr->context()).is(cp)); |  | 
| 2723   DCHECK(ToRegister(instr->object()).is(LoadDescriptor::ReceiverRegister())); |  | 
| 2724   DCHECK(ToRegister(instr->result()).is(v0)); |  | 
| 2725 |  | 
| 2726   // Name is always in a2. |  | 
| 2727   __ li(LoadDescriptor::NameRegister(), Operand(instr->name())); |  | 
| 2728   EmitVectorLoadICRegisters<LLoadNamedGeneric>(instr); |  | 
| 2729   Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(isolate()).code(); |  | 
| 2730   CallCode(ic, RelocInfo::CODE_TARGET, instr); |  | 
| 2731 } |  | 
| 2732 |  | 
| 2733 |  | 
| 2734 void LCodeGen::DoLoadFunctionPrototype(LLoadFunctionPrototype* instr) { | 2721 void LCodeGen::DoLoadFunctionPrototype(LLoadFunctionPrototype* instr) { | 
| 2735   Register scratch = scratch0(); | 2722   Register scratch = scratch0(); | 
| 2736   Register function = ToRegister(instr->function()); | 2723   Register function = ToRegister(instr->function()); | 
| 2737   Register result = ToRegister(instr->result()); | 2724   Register result = ToRegister(instr->result()); | 
| 2738 | 2725 | 
| 2739   // Get the prototype or initial map from the function. | 2726   // Get the prototype or initial map from the function. | 
| 2740   __ ld(result, | 2727   __ ld(result, | 
| 2741          FieldMemOperand(function, JSFunction::kPrototypeOrInitialMapOffset)); | 2728          FieldMemOperand(function, JSFunction::kPrototypeOrInitialMapOffset)); | 
| 2742 | 2729 | 
| 2743   // Check that the function has a prototype or an initial map. | 2730   // Check that the function has a prototype or an initial map. | 
| (...skipping 2943 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5687   __ ld(result, FieldMemOperand(scratch, | 5674   __ ld(result, FieldMemOperand(scratch, | 
| 5688                                 FixedArray::kHeaderSize - kPointerSize)); | 5675                                 FixedArray::kHeaderSize - kPointerSize)); | 
| 5689   __ bind(deferred->exit()); | 5676   __ bind(deferred->exit()); | 
| 5690   __ bind(&done); | 5677   __ bind(&done); | 
| 5691 } | 5678 } | 
| 5692 | 5679 | 
| 5693 #undef __ | 5680 #undef __ | 
| 5694 | 5681 | 
| 5695 }  // namespace internal | 5682 }  // namespace internal | 
| 5696 }  // namespace v8 | 5683 }  // namespace v8 | 
| OLD | NEW | 
|---|