| 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 #if V8_TARGET_ARCH_PPC |    5 #if V8_TARGET_ARCH_PPC | 
|    6  |    6  | 
|    7 #include "src/codegen.h" |    7 #include "src/codegen.h" | 
|    8 #include "src/ic/ic.h" |    8 #include "src/ic/ic.h" | 
|    9 #include "src/ic/ic-compiler.h" |    9 #include "src/ic/ic-compiler.h" | 
|   10 #include "src/ic/stub-cache.h" |   10 #include "src/ic/stub-cache.h" | 
| (...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  730       masm, &fast_object, &fast_double, &slow, kCheckMap, kDontIncrementLength, |  730       masm, &fast_object, &fast_double, &slow, kCheckMap, kDontIncrementLength, | 
|  731       value, key, receiver, receiver_map, elements_map, elements); |  731       value, key, receiver, receiver_map, elements_map, elements); | 
|  732   KeyedStoreGenerateMegamorphicHelper(masm, &fast_object_grow, |  732   KeyedStoreGenerateMegamorphicHelper(masm, &fast_object_grow, | 
|  733                                       &fast_double_grow, &slow, kDontCheckMap, |  733                                       &fast_double_grow, &slow, kDontCheckMap, | 
|  734                                       kIncrementLength, value, key, receiver, |  734                                       kIncrementLength, value, key, receiver, | 
|  735                                       receiver_map, elements_map, elements); |  735                                       receiver_map, elements_map, elements); | 
|  736   __ bind(&miss); |  736   __ bind(&miss); | 
|  737   GenerateMiss(masm); |  737   GenerateMiss(masm); | 
|  738 } |  738 } | 
|  739  |  739  | 
|  740  |  | 
|  741 void StoreIC::GenerateMegamorphic(MacroAssembler* masm) { |  | 
|  742   Register receiver = StoreDescriptor::ReceiverRegister(); |  | 
|  743   Register name = StoreDescriptor::NameRegister(); |  | 
|  744   DCHECK(receiver.is(r4)); |  | 
|  745   DCHECK(name.is(r5)); |  | 
|  746   DCHECK(StoreDescriptor::ValueRegister().is(r3)); |  | 
|  747  |  | 
|  748   // Get the receiver from the stack and probe the stub cache. |  | 
|  749   Code::Flags flags = |  | 
|  750       Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC)); |  | 
|  751  |  | 
|  752   masm->isolate()->stub_cache()->GenerateProbe( |  | 
|  753       masm, Code::STORE_IC, flags, receiver, name, r8, r9, r10, r11); |  | 
|  754  |  | 
|  755   // Cache miss: Jump to runtime. |  | 
|  756   GenerateMiss(masm); |  | 
|  757 } |  | 
|  758  |  | 
|  759  |  | 
|  760 void StoreIC::GenerateMiss(MacroAssembler* masm) { |  740 void StoreIC::GenerateMiss(MacroAssembler* masm) { | 
|  761   StoreIC_PushArgs(masm); |  741   StoreIC_PushArgs(masm); | 
|  762  |  742  | 
|  763   // Perform tail call to the entry. |  743   // Perform tail call to the entry. | 
|  764   __ TailCallRuntime(Runtime::kStoreIC_Miss); |  744   __ TailCallRuntime(Runtime::kStoreIC_Miss); | 
|  765 } |  745 } | 
|  766  |  746  | 
|  767  |  747  | 
|  768 void StoreIC::GenerateNormal(MacroAssembler* masm) { |  748 void StoreIC::GenerateNormal(MacroAssembler* masm) { | 
|  769   Label miss; |  749   Label miss; | 
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  887     patcher.EmitCondition(ne); |  867     patcher.EmitCondition(ne); | 
|  888   } else { |  868   } else { | 
|  889     DCHECK(Assembler::GetCondition(branch_instr) == ne); |  869     DCHECK(Assembler::GetCondition(branch_instr) == ne); | 
|  890     patcher.EmitCondition(eq); |  870     patcher.EmitCondition(eq); | 
|  891   } |  871   } | 
|  892 } |  872 } | 
|  893 }  // namespace internal |  873 }  // namespace internal | 
|  894 }  // namespace v8 |  874 }  // namespace v8 | 
|  895  |  875  | 
|  896 #endif  // V8_TARGET_ARCH_PPC |  876 #endif  // V8_TARGET_ARCH_PPC | 
| OLD | NEW |