OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 2604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2615 SetSourcePosition(expr->position()); | 2615 SetSourcePosition(expr->position()); |
2616 | 2616 |
2617 // Load function and argument count into x1 and x0. | 2617 // Load function and argument count into x1 and x0. |
2618 __ Mov(x0, arg_count); | 2618 __ Mov(x0, arg_count); |
2619 __ Peek(x1, arg_count * kXRegSizeInBytes); | 2619 __ Peek(x1, arg_count * kXRegSizeInBytes); |
2620 | 2620 |
2621 // Record call targets in unoptimized code. | 2621 // Record call targets in unoptimized code. |
2622 Handle<Object> uninitialized = | 2622 Handle<Object> uninitialized = |
2623 TypeFeedbackInfo::UninitializedSentinel(isolate()); | 2623 TypeFeedbackInfo::UninitializedSentinel(isolate()); |
2624 StoreFeedbackVectorSlot(expr->CallNewFeedbackSlot(), uninitialized); | 2624 StoreFeedbackVectorSlot(expr->CallNewFeedbackSlot(), uninitialized); |
| 2625 StoreFeedbackVectorSlot(expr->AllocationSiteFeedbackSlot(), |
| 2626 isolate()->factory()->NewAllocationSite()); |
| 2627 ASSERT(expr->AllocationSiteFeedbackSlot() == |
| 2628 expr->CallNewFeedbackSlot() + 1); |
2625 __ LoadObject(x2, FeedbackVector()); | 2629 __ LoadObject(x2, FeedbackVector()); |
2626 __ Mov(x3, Operand(Smi::FromInt(expr->CallNewFeedbackSlot()))); | 2630 __ Mov(x3, Operand(Smi::FromInt(expr->CallNewFeedbackSlot()))); |
2627 | 2631 |
2628 CallConstructStub stub(RECORD_CALL_TARGET); | 2632 CallConstructStub stub(RECORD_CALL_TARGET); |
2629 __ Call(stub.GetCode(isolate()), RelocInfo::CONSTRUCT_CALL); | 2633 __ Call(stub.GetCode(isolate()), RelocInfo::CONSTRUCT_CALL); |
2630 PrepareForBailoutForId(expr->ReturnId(), TOS_REG); | 2634 PrepareForBailoutForId(expr->ReturnId(), TOS_REG); |
2631 context()->Plug(x0); | 2635 context()->Plug(x0); |
2632 } | 2636 } |
2633 | 2637 |
2634 | 2638 |
(...skipping 2372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5007 return previous_; | 5011 return previous_; |
5008 } | 5012 } |
5009 | 5013 |
5010 | 5014 |
5011 #undef __ | 5015 #undef __ |
5012 | 5016 |
5013 | 5017 |
5014 } } // namespace v8::internal | 5018 } } // namespace v8::internal |
5015 | 5019 |
5016 #endif // V8_TARGET_ARCH_A64 | 5020 #endif // V8_TARGET_ARCH_A64 |
OLD | NEW |