| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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/arm64/lithium-arm64.h" | 5 #include "src/crankshaft/arm64/lithium-arm64.h" |
| 6 | 6 |
| 7 #include <sstream> | 7 #include <sstream> |
| 8 | 8 |
| 9 #include "src/crankshaft/arm64/lithium-codegen-arm64.h" | 9 #include "src/crankshaft/arm64/lithium-codegen-arm64.h" |
| 10 #include "src/crankshaft/hydrogen-osr.h" | 10 #include "src/crankshaft/hydrogen-osr.h" |
| (...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 834 } else if (instr->representation().IsDouble()) { | 834 } else if (instr->representation().IsDouble()) { |
| 835 return DoArithmeticD(Token::ADD, instr); | 835 return DoArithmeticD(Token::ADD, instr); |
| 836 } else { | 836 } else { |
| 837 DCHECK(instr->representation().IsTagged()); | 837 DCHECK(instr->representation().IsTagged()); |
| 838 return DoArithmeticT(Token::ADD, instr); | 838 return DoArithmeticT(Token::ADD, instr); |
| 839 } | 839 } |
| 840 } | 840 } |
| 841 | 841 |
| 842 | 842 |
| 843 LInstruction* LChunkBuilder::DoAllocate(HAllocate* instr) { | 843 LInstruction* LChunkBuilder::DoAllocate(HAllocate* instr) { |
| 844 info()->MarkAsDeferredCalling(); | |
| 845 LOperand* context = UseAny(instr->context()); | |
| 846 LOperand* size = UseRegisterOrConstant(instr->size()); | 844 LOperand* size = UseRegisterOrConstant(instr->size()); |
| 847 LOperand* temp1 = TempRegister(); | 845 LOperand* temp1 = TempRegister(); |
| 848 LOperand* temp2 = TempRegister(); | 846 LOperand* temp2 = TempRegister(); |
| 849 LOperand* temp3 = instr->MustPrefillWithFiller() ? TempRegister() : NULL; | 847 if (instr->IsAllocationFolded()) { |
| 850 LAllocate* result = new(zone()) LAllocate(context, size, temp1, temp2, temp3); | 848 LFastAllocate* result = new (zone()) LFastAllocate(size, temp1, temp2); |
| 851 return AssignPointerMap(DefineAsRegister(result)); | 849 return DefineAsRegister(result); |
| 850 } else { |
| 851 info()->MarkAsDeferredCalling(); |
| 852 LOperand* context = UseAny(instr->context()); |
| 853 LOperand* temp3 = instr->MustPrefillWithFiller() ? TempRegister() : NULL; |
| 854 LAllocate* result = |
| 855 new (zone()) LAllocate(context, size, temp1, temp2, temp3); |
| 856 return AssignPointerMap(DefineAsRegister(result)); |
| 857 } |
| 852 } | 858 } |
| 853 | 859 |
| 854 | 860 |
| 855 LInstruction* LChunkBuilder::DoApplyArguments(HApplyArguments* instr) { | 861 LInstruction* LChunkBuilder::DoApplyArguments(HApplyArguments* instr) { |
| 856 LOperand* function = UseFixed(instr->function(), x1); | 862 LOperand* function = UseFixed(instr->function(), x1); |
| 857 LOperand* receiver = UseFixed(instr->receiver(), x0); | 863 LOperand* receiver = UseFixed(instr->receiver(), x0); |
| 858 LOperand* length = UseFixed(instr->length(), x2); | 864 LOperand* length = UseFixed(instr->length(), x2); |
| 859 LOperand* elements = UseFixed(instr->elements(), x3); | 865 LOperand* elements = UseFixed(instr->elements(), x3); |
| 860 LApplyArguments* result = new(zone()) LApplyArguments(function, | 866 LApplyArguments* result = new(zone()) LApplyArguments(function, |
| 861 receiver, | 867 receiver, |
| (...skipping 1753 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2615 | 2621 |
| 2616 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) { | 2622 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) { |
| 2617 LOperand* receiver = UseRegister(instr->receiver()); | 2623 LOperand* receiver = UseRegister(instr->receiver()); |
| 2618 LOperand* function = UseRegister(instr->function()); | 2624 LOperand* function = UseRegister(instr->function()); |
| 2619 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function); | 2625 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function); |
| 2620 return AssignEnvironment(DefineAsRegister(result)); | 2626 return AssignEnvironment(DefineAsRegister(result)); |
| 2621 } | 2627 } |
| 2622 | 2628 |
| 2623 } // namespace internal | 2629 } // namespace internal |
| 2624 } // namespace v8 | 2630 } // namespace v8 |
| OLD | NEW |