| 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 <algorithm> | 5 #include <algorithm> |
| 6 | 6 |
| 7 #include "src/compiler/instruction-selector-impl.h" | 7 #include "src/compiler/instruction-selector-impl.h" |
| 8 #include "src/compiler/node-matchers.h" | 8 #include "src/compiler/node-matchers.h" |
| 9 #include "src/compiler/node-properties.h" | 9 #include "src/compiler/node-properties.h" |
| 10 | 10 |
| (...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 339 if (cont->IsBranch()) { | 339 if (cont->IsBranch()) { |
| 340 inputs[input_count++] = g.Label(cont->true_block()); | 340 inputs[input_count++] = g.Label(cont->true_block()); |
| 341 inputs[input_count++] = g.Label(cont->false_block()); | 341 inputs[input_count++] = g.Label(cont->false_block()); |
| 342 } | 342 } |
| 343 | 343 |
| 344 outputs[output_count++] = g.DefineSameAsFirst(node); | 344 outputs[output_count++] = g.DefineSameAsFirst(node); |
| 345 if (cont->IsSet()) { | 345 if (cont->IsSet()) { |
| 346 outputs[output_count++] = g.DefineAsRegister(cont->result()); | 346 outputs[output_count++] = g.DefineAsRegister(cont->result()); |
| 347 } | 347 } |
| 348 | 348 |
| 349 DCHECK_NE(0, static_cast<int>(input_count)); | 349 DCHECK_NE(0u, input_count); |
| 350 DCHECK_NE(0, static_cast<int>(output_count)); | 350 DCHECK_NE(0u, output_count); |
| 351 DCHECK_GE(arraysize(inputs), input_count); | 351 DCHECK_GE(arraysize(inputs), input_count); |
| 352 DCHECK_GE(arraysize(outputs), output_count); | 352 DCHECK_GE(arraysize(outputs), output_count); |
| 353 | 353 |
| 354 Instruction* instr = selector->Emit(cont->Encode(opcode), output_count, | 354 Instruction* instr = selector->Emit(cont->Encode(opcode), output_count, |
| 355 outputs, input_count, inputs); | 355 outputs, input_count, inputs); |
| 356 if (cont->IsBranch()) instr->MarkAsControl(); | 356 if (cont->IsBranch()) instr->MarkAsControl(); |
| 357 } | 357 } |
| 358 | 358 |
| 359 | 359 |
| 360 // Shared routine for multiple binary operations. | 360 // Shared routine for multiple binary operations. |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 464 void EmitLea(InstructionSelector* selector, InstructionCode opcode, | 464 void EmitLea(InstructionSelector* selector, InstructionCode opcode, |
| 465 Node* result, Node* index, int scale, Node* base, | 465 Node* result, Node* index, int scale, Node* base, |
| 466 Node* displacement) { | 466 Node* displacement) { |
| 467 X64OperandGenerator g(selector); | 467 X64OperandGenerator g(selector); |
| 468 | 468 |
| 469 InstructionOperand inputs[4]; | 469 InstructionOperand inputs[4]; |
| 470 size_t input_count = 0; | 470 size_t input_count = 0; |
| 471 AddressingMode mode = g.GenerateMemoryOperandInputs( | 471 AddressingMode mode = g.GenerateMemoryOperandInputs( |
| 472 index, scale, base, displacement, inputs, &input_count); | 472 index, scale, base, displacement, inputs, &input_count); |
| 473 | 473 |
| 474 DCHECK_NE(0, static_cast<int>(input_count)); | 474 DCHECK_NE(0u, input_count); |
| 475 DCHECK_GE(arraysize(inputs), input_count); | 475 DCHECK_GE(arraysize(inputs), input_count); |
| 476 | 476 |
| 477 InstructionOperand outputs[1]; | 477 InstructionOperand outputs[1]; |
| 478 outputs[0] = g.DefineAsRegister(result); | 478 outputs[0] = g.DefineAsRegister(result); |
| 479 | 479 |
| 480 opcode = AddressingModeField::encode(mode) | opcode; | 480 opcode = AddressingModeField::encode(mode) | opcode; |
| 481 | 481 |
| 482 selector->Emit(opcode, 1, outputs, input_count, inputs); | 482 selector->Emit(opcode, 1, outputs, input_count, inputs); |
| 483 } | 483 } |
| 484 | 484 |
| (...skipping 919 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1404 MachineOperatorBuilder::kFloat64Ceil | | 1404 MachineOperatorBuilder::kFloat64Ceil | |
| 1405 MachineOperatorBuilder::kFloat64RoundTruncate | | 1405 MachineOperatorBuilder::kFloat64RoundTruncate | |
| 1406 MachineOperatorBuilder::kWord32ShiftIsSafe; | 1406 MachineOperatorBuilder::kWord32ShiftIsSafe; |
| 1407 } | 1407 } |
| 1408 return MachineOperatorBuilder::kNoFlags; | 1408 return MachineOperatorBuilder::kNoFlags; |
| 1409 } | 1409 } |
| 1410 | 1410 |
| 1411 } // namespace compiler | 1411 } // namespace compiler |
| 1412 } // namespace internal | 1412 } // namespace internal |
| 1413 } // namespace v8 | 1413 } // namespace v8 |
| OLD | NEW |