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 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
264 void LStoreNamedField::PrintDataTo(StringStream* stream) { | 264 void LStoreNamedField::PrintDataTo(StringStream* stream) { |
265 object()->PrintTo(stream); | 265 object()->PrintTo(stream); |
266 std::ostringstream os; | 266 std::ostringstream os; |
267 os << hydrogen()->access(); | 267 os << hydrogen()->access(); |
268 stream->Add(os.str().c_str()); | 268 stream->Add(os.str().c_str()); |
269 stream->Add(" <- "); | 269 stream->Add(" <- "); |
270 value()->PrintTo(stream); | 270 value()->PrintTo(stream); |
271 } | 271 } |
272 | 272 |
273 | 273 |
274 void LStoreNamedGeneric::PrintDataTo(StringStream* stream) { | |
275 object()->PrintTo(stream); | |
276 stream->Add("."); | |
277 stream->Add(String::cast(*name())->ToCString().get()); | |
278 stream->Add(" <- "); | |
279 value()->PrintTo(stream); | |
280 } | |
281 | |
282 | |
283 void LStringCompareAndBranch::PrintDataTo(StringStream* stream) { | 274 void LStringCompareAndBranch::PrintDataTo(StringStream* stream) { |
284 stream->Add("if string_compare("); | 275 stream->Add("if string_compare("); |
285 left()->PrintTo(stream); | 276 left()->PrintTo(stream); |
286 right()->PrintTo(stream); | 277 right()->PrintTo(stream); |
287 stream->Add(") then B%d else B%d", true_block_id(), false_block_id()); | 278 stream->Add(") then B%d else B%d", true_block_id(), false_block_id()); |
288 } | 279 } |
289 | 280 |
290 | 281 |
291 void LTransitionElementsKind::PrintDataTo(StringStream* stream) { | 282 void LTransitionElementsKind::PrintDataTo(StringStream* stream) { |
292 object()->PrintTo(stream); | 283 object()->PrintTo(stream); |
(...skipping 1958 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2251 temp1 = TempRegister(); | 2242 temp1 = TempRegister(); |
2252 } else { | 2243 } else { |
2253 value = UseRegister(instr->value()); | 2244 value = UseRegister(instr->value()); |
2254 temp0 = TempRegister(); | 2245 temp0 = TempRegister(); |
2255 } | 2246 } |
2256 | 2247 |
2257 return new(zone()) LStoreNamedField(object, value, temp0, temp1); | 2248 return new(zone()) LStoreNamedField(object, value, temp0, temp1); |
2258 } | 2249 } |
2259 | 2250 |
2260 | 2251 |
2261 LInstruction* LChunkBuilder::DoStoreNamedGeneric(HStoreNamedGeneric* instr) { | |
2262 LOperand* context = UseFixed(instr->context(), cp); | |
2263 LOperand* object = | |
2264 UseFixed(instr->object(), StoreDescriptor::ReceiverRegister()); | |
2265 LOperand* value = UseFixed(instr->value(), StoreDescriptor::ValueRegister()); | |
2266 | |
2267 LOperand* slot = FixedTemp(StoreWithVectorDescriptor::SlotRegister()); | |
2268 LOperand* vector = FixedTemp(StoreWithVectorDescriptor::VectorRegister()); | |
2269 | |
2270 LStoreNamedGeneric* result = | |
2271 new (zone()) LStoreNamedGeneric(context, object, value, slot, vector); | |
2272 return MarkAsCall(result, instr); | |
2273 } | |
2274 | |
2275 | |
2276 LInstruction* LChunkBuilder::DoStringAdd(HStringAdd* instr) { | 2252 LInstruction* LChunkBuilder::DoStringAdd(HStringAdd* instr) { |
2277 LOperand* context = UseFixed(instr->context(), cp); | 2253 LOperand* context = UseFixed(instr->context(), cp); |
2278 LOperand* left = UseFixed(instr->left(), x1); | 2254 LOperand* left = UseFixed(instr->left(), x1); |
2279 LOperand* right = UseFixed(instr->right(), x0); | 2255 LOperand* right = UseFixed(instr->right(), x0); |
2280 | 2256 |
2281 LStringAdd* result = new(zone()) LStringAdd(context, left, right); | 2257 LStringAdd* result = new(zone()) LStringAdd(context, left, right); |
2282 return MarkAsCall(DefineFixed(result, x0), instr); | 2258 return MarkAsCall(DefineFixed(result, x0), instr); |
2283 } | 2259 } |
2284 | 2260 |
2285 | 2261 |
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2585 | 2561 |
2586 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) { | 2562 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) { |
2587 LOperand* receiver = UseRegister(instr->receiver()); | 2563 LOperand* receiver = UseRegister(instr->receiver()); |
2588 LOperand* function = UseRegister(instr->function()); | 2564 LOperand* function = UseRegister(instr->function()); |
2589 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function); | 2565 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function); |
2590 return AssignEnvironment(DefineAsRegister(result)); | 2566 return AssignEnvironment(DefineAsRegister(result)); |
2591 } | 2567 } |
2592 | 2568 |
2593 } // namespace internal | 2569 } // namespace internal |
2594 } // namespace v8 | 2570 } // namespace v8 |
OLD | NEW |