| 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 "src/base/adapters.h" | 5 #include "src/base/adapters.h" |
| 6 #include "src/base/bits.h" | 6 #include "src/base/bits.h" |
| 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 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 395 case MachineRepresentation::kFloat64: | 395 case MachineRepresentation::kFloat64: |
| 396 opcode = kArmVldrF64; | 396 opcode = kArmVldrF64; |
| 397 break; | 397 break; |
| 398 case MachineRepresentation::kBit: // Fall through. | 398 case MachineRepresentation::kBit: // Fall through. |
| 399 case MachineRepresentation::kWord8: | 399 case MachineRepresentation::kWord8: |
| 400 opcode = load_rep.IsUnsigned() ? kArmLdrb : kArmLdrsb; | 400 opcode = load_rep.IsUnsigned() ? kArmLdrb : kArmLdrsb; |
| 401 break; | 401 break; |
| 402 case MachineRepresentation::kWord16: | 402 case MachineRepresentation::kWord16: |
| 403 opcode = load_rep.IsUnsigned() ? kArmLdrh : kArmLdrsh; | 403 opcode = load_rep.IsUnsigned() ? kArmLdrh : kArmLdrsh; |
| 404 break; | 404 break; |
| 405 case MachineRepresentation::kTaggedSigned: // Fall through. |
| 406 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 405 case MachineRepresentation::kTagged: // Fall through. | 407 case MachineRepresentation::kTagged: // Fall through. |
| 406 case MachineRepresentation::kWord32: | 408 case MachineRepresentation::kWord32: |
| 407 opcode = kArmLdr; | 409 opcode = kArmLdr; |
| 408 break; | 410 break; |
| 409 case MachineRepresentation::kWord64: // Fall through. | 411 case MachineRepresentation::kWord64: // Fall through. |
| 410 case MachineRepresentation::kSimd128: // Fall through. | 412 case MachineRepresentation::kSimd128: // Fall through. |
| 411 case MachineRepresentation::kNone: | 413 case MachineRepresentation::kNone: |
| 412 UNREACHABLE(); | 414 UNREACHABLE(); |
| 413 return; | 415 return; |
| 414 } | 416 } |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 474 case MachineRepresentation::kFloat64: | 476 case MachineRepresentation::kFloat64: |
| 475 opcode = kArmVstrF64; | 477 opcode = kArmVstrF64; |
| 476 break; | 478 break; |
| 477 case MachineRepresentation::kBit: // Fall through. | 479 case MachineRepresentation::kBit: // Fall through. |
| 478 case MachineRepresentation::kWord8: | 480 case MachineRepresentation::kWord8: |
| 479 opcode = kArmStrb; | 481 opcode = kArmStrb; |
| 480 break; | 482 break; |
| 481 case MachineRepresentation::kWord16: | 483 case MachineRepresentation::kWord16: |
| 482 opcode = kArmStrh; | 484 opcode = kArmStrh; |
| 483 break; | 485 break; |
| 486 case MachineRepresentation::kTaggedSigned: // Fall through. |
| 487 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 484 case MachineRepresentation::kTagged: // Fall through. | 488 case MachineRepresentation::kTagged: // Fall through. |
| 485 case MachineRepresentation::kWord32: | 489 case MachineRepresentation::kWord32: |
| 486 opcode = kArmStr; | 490 opcode = kArmStr; |
| 487 break; | 491 break; |
| 488 case MachineRepresentation::kWord64: // Fall through. | 492 case MachineRepresentation::kWord64: // Fall through. |
| 489 case MachineRepresentation::kSimd128: // Fall through. | 493 case MachineRepresentation::kSimd128: // Fall through. |
| 490 case MachineRepresentation::kNone: | 494 case MachineRepresentation::kNone: |
| 491 UNREACHABLE(); | 495 UNREACHABLE(); |
| 492 return; | 496 return; |
| 493 } | 497 } |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 633 case MachineRepresentation::kWord32: | 637 case MachineRepresentation::kWord32: |
| 634 opcode = kCheckedLoadWord32; | 638 opcode = kCheckedLoadWord32; |
| 635 break; | 639 break; |
| 636 case MachineRepresentation::kFloat32: | 640 case MachineRepresentation::kFloat32: |
| 637 opcode = kCheckedLoadFloat32; | 641 opcode = kCheckedLoadFloat32; |
| 638 break; | 642 break; |
| 639 case MachineRepresentation::kFloat64: | 643 case MachineRepresentation::kFloat64: |
| 640 opcode = kCheckedLoadFloat64; | 644 opcode = kCheckedLoadFloat64; |
| 641 break; | 645 break; |
| 642 case MachineRepresentation::kBit: // Fall through. | 646 case MachineRepresentation::kBit: // Fall through. |
| 647 case MachineRepresentation::kTaggedSigned: // Fall through. |
| 648 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 643 case MachineRepresentation::kTagged: // Fall through. | 649 case MachineRepresentation::kTagged: // Fall through. |
| 644 case MachineRepresentation::kWord64: // Fall through. | 650 case MachineRepresentation::kWord64: // Fall through. |
| 645 case MachineRepresentation::kSimd128: // Fall through. | 651 case MachineRepresentation::kSimd128: // Fall through. |
| 646 case MachineRepresentation::kNone: | 652 case MachineRepresentation::kNone: |
| 647 UNREACHABLE(); | 653 UNREACHABLE(); |
| 648 return; | 654 return; |
| 649 } | 655 } |
| 650 InstructionOperand offset_operand = g.UseRegister(offset); | 656 InstructionOperand offset_operand = g.UseRegister(offset); |
| 651 InstructionOperand length_operand = g.CanBeImmediate(length, kArmCmp) | 657 InstructionOperand length_operand = g.CanBeImmediate(length, kArmCmp) |
| 652 ? g.UseImmediate(length) | 658 ? g.UseImmediate(length) |
| (...skipping 22 matching lines...) Expand all Loading... |
| 675 case MachineRepresentation::kWord32: | 681 case MachineRepresentation::kWord32: |
| 676 opcode = kCheckedStoreWord32; | 682 opcode = kCheckedStoreWord32; |
| 677 break; | 683 break; |
| 678 case MachineRepresentation::kFloat32: | 684 case MachineRepresentation::kFloat32: |
| 679 opcode = kCheckedStoreFloat32; | 685 opcode = kCheckedStoreFloat32; |
| 680 break; | 686 break; |
| 681 case MachineRepresentation::kFloat64: | 687 case MachineRepresentation::kFloat64: |
| 682 opcode = kCheckedStoreFloat64; | 688 opcode = kCheckedStoreFloat64; |
| 683 break; | 689 break; |
| 684 case MachineRepresentation::kBit: // Fall through. | 690 case MachineRepresentation::kBit: // Fall through. |
| 691 case MachineRepresentation::kTaggedSigned: // Fall through. |
| 692 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 685 case MachineRepresentation::kTagged: // Fall through. | 693 case MachineRepresentation::kTagged: // Fall through. |
| 686 case MachineRepresentation::kWord64: // Fall through. | 694 case MachineRepresentation::kWord64: // Fall through. |
| 687 case MachineRepresentation::kSimd128: // Fall through. | 695 case MachineRepresentation::kSimd128: // Fall through. |
| 688 case MachineRepresentation::kNone: | 696 case MachineRepresentation::kNone: |
| 689 UNREACHABLE(); | 697 UNREACHABLE(); |
| 690 return; | 698 return; |
| 691 } | 699 } |
| 692 InstructionOperand offset_operand = g.UseRegister(offset); | 700 InstructionOperand offset_operand = g.UseRegister(offset); |
| 693 InstructionOperand length_operand = g.CanBeImmediate(length, kArmCmp) | 701 InstructionOperand length_operand = g.CanBeImmediate(length, kArmCmp) |
| 694 ? g.UseImmediate(length) | 702 ? g.UseImmediate(length) |
| (...skipping 1555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2250 Vector<MachineType> req_aligned = Vector<MachineType>::New(2); | 2258 Vector<MachineType> req_aligned = Vector<MachineType>::New(2); |
| 2251 req_aligned[0] = MachineType::Float32(); | 2259 req_aligned[0] = MachineType::Float32(); |
| 2252 req_aligned[1] = MachineType::Float64(); | 2260 req_aligned[1] = MachineType::Float64(); |
| 2253 return MachineOperatorBuilder::AlignmentRequirements:: | 2261 return MachineOperatorBuilder::AlignmentRequirements:: |
| 2254 SomeUnalignedAccessUnsupported(req_aligned, req_aligned); | 2262 SomeUnalignedAccessUnsupported(req_aligned, req_aligned); |
| 2255 } | 2263 } |
| 2256 | 2264 |
| 2257 } // namespace compiler | 2265 } // namespace compiler |
| 2258 } // namespace internal | 2266 } // namespace internal |
| 2259 } // namespace v8 | 2267 } // namespace v8 |
| OLD | NEW |