| 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_PPC | 7 #if V8_TARGET_ARCH_PPC |
| 8 | 8 |
| 9 #include "src/codegen.h" | 9 #include "src/codegen.h" |
| 10 #include "src/debug/debug.h" | 10 #include "src/debug/debug.h" |
| (...skipping 1460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1471 Register vector = LoadWithVectorDescriptor::VectorRegister(); | 1471 Register vector = LoadWithVectorDescriptor::VectorRegister(); |
| 1472 | 1472 |
| 1473 // Copy all arguments from the array to the stack. | 1473 // Copy all arguments from the array to the stack. |
| 1474 Label entry, loop; | 1474 Label entry, loop; |
| 1475 __ LoadP(key, MemOperand(fp, indexOffset)); | 1475 __ LoadP(key, MemOperand(fp, indexOffset)); |
| 1476 __ b(&entry); | 1476 __ b(&entry); |
| 1477 __ bind(&loop); | 1477 __ bind(&loop); |
| 1478 __ LoadP(receiver, MemOperand(fp, argumentsOffset)); | 1478 __ LoadP(receiver, MemOperand(fp, argumentsOffset)); |
| 1479 | 1479 |
| 1480 // Use inline caching to speed up access to arguments. | 1480 // Use inline caching to speed up access to arguments. |
| 1481 FeedbackVectorSpec spec(0, Code::KEYED_LOAD_IC); | 1481 Code::Kind kinds[] = {Code::KEYED_LOAD_IC}; |
| 1482 FeedbackVectorSpec spec(0, 1, kinds); |
| 1482 Handle<TypeFeedbackVector> feedback_vector = | 1483 Handle<TypeFeedbackVector> feedback_vector = |
| 1483 masm->isolate()->factory()->NewTypeFeedbackVector(&spec); | 1484 masm->isolate()->factory()->NewTypeFeedbackVector(&spec); |
| 1484 int index = feedback_vector->GetIndex(FeedbackVectorICSlot(0)); | 1485 int index = feedback_vector->GetIndex(FeedbackVectorICSlot(0)); |
| 1485 __ LoadSmiLiteral(slot, Smi::FromInt(index)); | 1486 __ LoadSmiLiteral(slot, Smi::FromInt(index)); |
| 1486 __ Move(vector, feedback_vector); | 1487 __ Move(vector, feedback_vector); |
| 1487 Handle<Code> ic = | 1488 Handle<Code> ic = |
| 1488 KeyedLoadICStub(masm->isolate(), LoadICState(kNoExtraICState)).GetCode(); | 1489 KeyedLoadICStub(masm->isolate(), LoadICState(kNoExtraICState)).GetCode(); |
| 1489 __ Call(ic, RelocInfo::CODE_TARGET); | 1490 __ Call(ic, RelocInfo::CODE_TARGET); |
| 1490 | 1491 |
| 1491 // Push the nth argument. | 1492 // Push the nth argument. |
| (...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1918 __ bkpt(0); | 1919 __ bkpt(0); |
| 1919 } | 1920 } |
| 1920 } | 1921 } |
| 1921 | 1922 |
| 1922 | 1923 |
| 1923 #undef __ | 1924 #undef __ |
| 1924 } // namespace internal | 1925 } // namespace internal |
| 1925 } // namespace v8 | 1926 } // namespace v8 |
| 1926 | 1927 |
| 1927 #endif // V8_TARGET_ARCH_PPC | 1928 #endif // V8_TARGET_ARCH_PPC |
| OLD | NEW |