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 |