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 <sstream> | 5 #include <sstream> |
6 | 6 |
7 #include "src/v8.h" | 7 #include "src/v8.h" |
8 | 8 |
9 #include "src/arm64/lithium-codegen-arm64.h" | 9 #include "src/arm64/lithium-codegen-arm64.h" |
10 #include "src/hydrogen-osr.h" | 10 #include "src/hydrogen-osr.h" |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 | 135 |
136 | 136 |
137 void LInnerAllocatedObject::PrintDataTo(StringStream* stream) { | 137 void LInnerAllocatedObject::PrintDataTo(StringStream* stream) { |
138 stream->Add(" = "); | 138 stream->Add(" = "); |
139 base_object()->PrintTo(stream); | 139 base_object()->PrintTo(stream); |
140 stream->Add(" + "); | 140 stream->Add(" + "); |
141 offset()->PrintTo(stream); | 141 offset()->PrintTo(stream); |
142 } | 142 } |
143 | 143 |
144 | 144 |
| 145 void LCallFunction::PrintDataTo(StringStream* stream) { |
| 146 context()->PrintTo(stream); |
| 147 stream->Add(" "); |
| 148 function()->PrintTo(stream); |
| 149 if (hydrogen()->HasVectorAndSlot()) { |
| 150 stream->Add(" (type-feedback-vector "); |
| 151 temp_vector()->PrintTo(stream); |
| 152 stream->Add(" "); |
| 153 temp_slot()->PrintTo(stream); |
| 154 stream->Add(")"); |
| 155 } |
| 156 } |
| 157 |
| 158 |
145 void LInvokeFunction::PrintDataTo(StringStream* stream) { | 159 void LInvokeFunction::PrintDataTo(StringStream* stream) { |
146 stream->Add("= "); | 160 stream->Add("= "); |
147 function()->PrintTo(stream); | 161 function()->PrintTo(stream); |
148 stream->Add(" #%d / ", arity()); | 162 stream->Add(" #%d / ", arity()); |
149 } | 163 } |
150 | 164 |
151 | 165 |
152 void LInstruction::PrintTo(StringStream* stream) { | 166 void LInstruction::PrintTo(StringStream* stream) { |
153 stream->Add("%s ", this->Mnemonic()); | 167 stream->Add("%s ", this->Mnemonic()); |
154 | 168 |
(...skipping 891 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1046 LCallWithDescriptor* result = new(zone()) LCallWithDescriptor(descriptor, | 1060 LCallWithDescriptor* result = new(zone()) LCallWithDescriptor(descriptor, |
1047 ops, | 1061 ops, |
1048 zone()); | 1062 zone()); |
1049 return MarkAsCall(DefineFixed(result, x0), instr); | 1063 return MarkAsCall(DefineFixed(result, x0), instr); |
1050 } | 1064 } |
1051 | 1065 |
1052 | 1066 |
1053 LInstruction* LChunkBuilder::DoCallFunction(HCallFunction* instr) { | 1067 LInstruction* LChunkBuilder::DoCallFunction(HCallFunction* instr) { |
1054 LOperand* context = UseFixed(instr->context(), cp); | 1068 LOperand* context = UseFixed(instr->context(), cp); |
1055 LOperand* function = UseFixed(instr->function(), x1); | 1069 LOperand* function = UseFixed(instr->function(), x1); |
1056 LCallFunction* call = new(zone()) LCallFunction(context, function); | 1070 LOperand* slot = NULL; |
| 1071 LOperand* vector = NULL; |
| 1072 if (instr->HasVectorAndSlot()) { |
| 1073 slot = FixedTemp(x3); |
| 1074 vector = FixedTemp(x2); |
| 1075 } |
| 1076 |
| 1077 LCallFunction* call = |
| 1078 new (zone()) LCallFunction(context, function, slot, vector); |
1057 return MarkAsCall(DefineFixed(call, x0), instr); | 1079 return MarkAsCall(DefineFixed(call, x0), instr); |
1058 } | 1080 } |
1059 | 1081 |
1060 | 1082 |
1061 LInstruction* LChunkBuilder::DoCallNew(HCallNew* instr) { | 1083 LInstruction* LChunkBuilder::DoCallNew(HCallNew* instr) { |
1062 LOperand* context = UseFixed(instr->context(), cp); | 1084 LOperand* context = UseFixed(instr->context(), cp); |
1063 // The call to CallConstructStub will expect the constructor to be in x1. | 1085 // The call to CallConstructStub will expect the constructor to be in x1. |
1064 LOperand* constructor = UseFixed(instr->constructor(), x1); | 1086 LOperand* constructor = UseFixed(instr->constructor(), x1); |
1065 LCallNew* result = new(zone()) LCallNew(context, constructor); | 1087 LCallNew* result = new(zone()) LCallNew(context, constructor); |
1066 return MarkAsCall(DefineFixed(result, x0), instr); | 1088 return MarkAsCall(DefineFixed(result, x0), instr); |
(...skipping 1687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2754 HAllocateBlockContext* instr) { | 2776 HAllocateBlockContext* instr) { |
2755 LOperand* context = UseFixed(instr->context(), cp); | 2777 LOperand* context = UseFixed(instr->context(), cp); |
2756 LOperand* function = UseRegisterAtStart(instr->function()); | 2778 LOperand* function = UseRegisterAtStart(instr->function()); |
2757 LAllocateBlockContext* result = | 2779 LAllocateBlockContext* result = |
2758 new(zone()) LAllocateBlockContext(context, function); | 2780 new(zone()) LAllocateBlockContext(context, function); |
2759 return MarkAsCall(DefineFixed(result, cp), instr); | 2781 return MarkAsCall(DefineFixed(result, cp), instr); |
2760 } | 2782 } |
2761 | 2783 |
2762 | 2784 |
2763 } } // namespace v8::internal | 2785 } } // namespace v8::internal |
OLD | NEW |