| 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/v8.h" | 5 #include "src/v8.h" | 
| 6 | 6 | 
| 7 #include "src/arm/lithium-codegen-arm.h" | 7 #include "src/arm/lithium-codegen-arm.h" | 
| 8 #include "src/arm/lithium-gap-resolver-arm.h" | 8 #include "src/arm/lithium-gap-resolver-arm.h" | 
| 9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" | 
| 10 #include "src/code-factory.h" | 10 #include "src/code-factory.h" | 
| (...skipping 3434 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3445 | 3445 | 
| 3446 void LCodeGen::DoLoadKeyedGeneric(LLoadKeyedGeneric* instr) { | 3446 void LCodeGen::DoLoadKeyedGeneric(LLoadKeyedGeneric* instr) { | 
| 3447   DCHECK(ToRegister(instr->context()).is(cp)); | 3447   DCHECK(ToRegister(instr->context()).is(cp)); | 
| 3448   DCHECK(ToRegister(instr->object()).is(LoadDescriptor::ReceiverRegister())); | 3448   DCHECK(ToRegister(instr->object()).is(LoadDescriptor::ReceiverRegister())); | 
| 3449   DCHECK(ToRegister(instr->key()).is(LoadDescriptor::NameRegister())); | 3449   DCHECK(ToRegister(instr->key()).is(LoadDescriptor::NameRegister())); | 
| 3450 | 3450 | 
| 3451   if (FLAG_vector_ics) { | 3451   if (FLAG_vector_ics) { | 
| 3452     EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr); | 3452     EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr); | 
| 3453   } | 3453   } | 
| 3454 | 3454 | 
| 3455   Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(isolate()).code(); | 3455   Handle<Code> ic = | 
|  | 3456       CodeFactory::KeyedLoadICInOptimizedCode( | 
|  | 3457           isolate(), instr->hydrogen()->initialization_state()).code(); | 
| 3456   CallCode(ic, RelocInfo::CODE_TARGET, instr, NEVER_INLINE_TARGET_ADDRESS); | 3458   CallCode(ic, RelocInfo::CODE_TARGET, instr, NEVER_INLINE_TARGET_ADDRESS); | 
| 3457 } | 3459 } | 
| 3458 | 3460 | 
| 3459 | 3461 | 
| 3460 void LCodeGen::DoArgumentsElements(LArgumentsElements* instr) { | 3462 void LCodeGen::DoArgumentsElements(LArgumentsElements* instr) { | 
| 3461   Register scratch = scratch0(); | 3463   Register scratch = scratch0(); | 
| 3462   Register result = ToRegister(instr->result()); | 3464   Register result = ToRegister(instr->result()); | 
| 3463 | 3465 | 
| 3464   if (instr->hydrogen()->from_inlined()) { | 3466   if (instr->hydrogen()->from_inlined()) { | 
| 3465     __ sub(result, sp, Operand(2 * kPointerSize)); | 3467     __ sub(result, sp, Operand(2 * kPointerSize)); | 
| (...skipping 1063 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4529   } | 4531   } | 
| 4530 } | 4532 } | 
| 4531 | 4533 | 
| 4532 | 4534 | 
| 4533 void LCodeGen::DoStoreKeyedGeneric(LStoreKeyedGeneric* instr) { | 4535 void LCodeGen::DoStoreKeyedGeneric(LStoreKeyedGeneric* instr) { | 
| 4534   DCHECK(ToRegister(instr->context()).is(cp)); | 4536   DCHECK(ToRegister(instr->context()).is(cp)); | 
| 4535   DCHECK(ToRegister(instr->object()).is(StoreDescriptor::ReceiverRegister())); | 4537   DCHECK(ToRegister(instr->object()).is(StoreDescriptor::ReceiverRegister())); | 
| 4536   DCHECK(ToRegister(instr->key()).is(StoreDescriptor::NameRegister())); | 4538   DCHECK(ToRegister(instr->key()).is(StoreDescriptor::NameRegister())); | 
| 4537   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister())); | 4539   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister())); | 
| 4538 | 4540 | 
| 4539   Handle<Code> ic = | 4541   Handle<Code> ic = CodeFactory::KeyedStoreICInOptimizedCode( | 
| 4540       CodeFactory::KeyedStoreIC(isolate(), instr->language_mode()).code(); | 4542                         isolate(), instr->language_mode(), | 
|  | 4543                         instr->hydrogen()->initialization_state()).code(); | 
| 4541   CallCode(ic, RelocInfo::CODE_TARGET, instr, NEVER_INLINE_TARGET_ADDRESS); | 4544   CallCode(ic, RelocInfo::CODE_TARGET, instr, NEVER_INLINE_TARGET_ADDRESS); | 
| 4542 } | 4545 } | 
| 4543 | 4546 | 
| 4544 | 4547 | 
| 4545 void LCodeGen::DoTransitionElementsKind(LTransitionElementsKind* instr) { | 4548 void LCodeGen::DoTransitionElementsKind(LTransitionElementsKind* instr) { | 
| 4546   Register object_reg = ToRegister(instr->object()); | 4549   Register object_reg = ToRegister(instr->object()); | 
| 4547   Register scratch = scratch0(); | 4550   Register scratch = scratch0(); | 
| 4548 | 4551 | 
| 4549   Handle<Map> from_map = instr->original_map(); | 4552   Handle<Map> from_map = instr->original_map(); | 
| 4550   Handle<Map> to_map = instr->transitioned_map(); | 4553   Handle<Map> to_map = instr->transitioned_map(); | 
| (...skipping 1432 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5983   __ Push(scope_info); | 5986   __ Push(scope_info); | 
| 5984   __ push(ToRegister(instr->function())); | 5987   __ push(ToRegister(instr->function())); | 
| 5985   CallRuntime(Runtime::kPushBlockContext, 2, instr); | 5988   CallRuntime(Runtime::kPushBlockContext, 2, instr); | 
| 5986   RecordSafepoint(Safepoint::kNoLazyDeopt); | 5989   RecordSafepoint(Safepoint::kNoLazyDeopt); | 
| 5987 } | 5990 } | 
| 5988 | 5991 | 
| 5989 | 5992 | 
| 5990 #undef __ | 5993 #undef __ | 
| 5991 | 5994 | 
| 5992 } }  // namespace v8::internal | 5995 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|