OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/compiler/instruction-selector-impl.h" | 6 #include "src/compiler/instruction-selector-impl.h" |
7 #include "src/compiler/node-matchers.h" | 7 #include "src/compiler/node-matchers.h" |
8 #include "src/compiler/node-properties.h" | 8 #include "src/compiler/node-properties.h" |
9 #include "src/s390/frames-s390.h" | 9 #include "src/s390/frames-s390.h" |
10 | 10 |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 case MachineRepresentation::kTaggedSigned: // Fall through. | 289 case MachineRepresentation::kTaggedSigned: // Fall through. |
290 case MachineRepresentation::kTaggedPointer: // Fall through. | 290 case MachineRepresentation::kTaggedPointer: // Fall through. |
291 case MachineRepresentation::kTagged: // Fall through. | 291 case MachineRepresentation::kTagged: // Fall through. |
292 case MachineRepresentation::kWord64: | 292 case MachineRepresentation::kWord64: |
293 opcode = kS390_LoadWord64; | 293 opcode = kS390_LoadWord64; |
294 break; | 294 break; |
295 #else | 295 #else |
296 case MachineRepresentation::kWord64: // Fall through. | 296 case MachineRepresentation::kWord64: // Fall through. |
297 #endif | 297 #endif |
298 case MachineRepresentation::kSimd128: // Fall through. | 298 case MachineRepresentation::kSimd128: // Fall through. |
| 299 case MachineRepresentation::kSimd1x4: // Fall through. |
| 300 case MachineRepresentation::kSimd1x8: // Fall through. |
| 301 case MachineRepresentation::kSimd1x16: // Fall through. |
299 case MachineRepresentation::kNone: | 302 case MachineRepresentation::kNone: |
300 default: | 303 default: |
301 UNREACHABLE(); | 304 UNREACHABLE(); |
302 } | 305 } |
303 return opcode; | 306 return opcode; |
304 } | 307 } |
305 | 308 |
306 bool AutoZeroExtendsWord32ToWord64(Node* node) { | 309 bool AutoZeroExtendsWord32ToWord64(Node* node) { |
307 #if !V8_TARGET_ARCH_S390X | 310 #if !V8_TARGET_ARCH_S390X |
308 return true; | 311 return true; |
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
742 opcode = kS390_StoreWord64; | 745 opcode = kS390_StoreWord64; |
743 if (m.IsWord64ReverseBytes()) { | 746 if (m.IsWord64ReverseBytes()) { |
744 opcode = kS390_StoreReverse64; | 747 opcode = kS390_StoreReverse64; |
745 value = value->InputAt(0); | 748 value = value->InputAt(0); |
746 } | 749 } |
747 break; | 750 break; |
748 #else | 751 #else |
749 case MachineRepresentation::kWord64: // Fall through. | 752 case MachineRepresentation::kWord64: // Fall through. |
750 #endif | 753 #endif |
751 case MachineRepresentation::kSimd128: // Fall through. | 754 case MachineRepresentation::kSimd128: // Fall through. |
| 755 case MachineRepresentation::kSimd1x4: // Fall through. |
| 756 case MachineRepresentation::kSimd1x8: // Fall through. |
| 757 case MachineRepresentation::kSimd1x16: // Fall through. |
752 case MachineRepresentation::kNone: | 758 case MachineRepresentation::kNone: |
753 UNREACHABLE(); | 759 UNREACHABLE(); |
754 return; | 760 return; |
755 } | 761 } |
756 InstructionOperand inputs[4]; | 762 InstructionOperand inputs[4]; |
757 size_t input_count = 0; | 763 size_t input_count = 0; |
758 AddressingMode addressing_mode = | 764 AddressingMode addressing_mode = |
759 g.GetEffectiveAddressMemoryOperand(node, inputs, &input_count); | 765 g.GetEffectiveAddressMemoryOperand(node, inputs, &input_count); |
760 InstructionCode code = | 766 InstructionCode code = |
761 opcode | AddressingModeField::encode(addressing_mode); | 767 opcode | AddressingModeField::encode(addressing_mode); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
806 opcode = kCheckedLoadFloat64; | 812 opcode = kCheckedLoadFloat64; |
807 break; | 813 break; |
808 case MachineRepresentation::kBit: // Fall through. | 814 case MachineRepresentation::kBit: // Fall through. |
809 case MachineRepresentation::kTaggedSigned: // Fall through. | 815 case MachineRepresentation::kTaggedSigned: // Fall through. |
810 case MachineRepresentation::kTaggedPointer: // Fall through. | 816 case MachineRepresentation::kTaggedPointer: // Fall through. |
811 case MachineRepresentation::kTagged: // Fall through. | 817 case MachineRepresentation::kTagged: // Fall through. |
812 #if !V8_TARGET_ARCH_S390X | 818 #if !V8_TARGET_ARCH_S390X |
813 case MachineRepresentation::kWord64: // Fall through. | 819 case MachineRepresentation::kWord64: // Fall through. |
814 #endif | 820 #endif |
815 case MachineRepresentation::kSimd128: // Fall through. | 821 case MachineRepresentation::kSimd128: // Fall through. |
| 822 case MachineRepresentation::kSimd1x4: // Fall through. |
| 823 case MachineRepresentation::kSimd1x8: // Fall through. |
| 824 case MachineRepresentation::kSimd1x16: // Fall through. |
816 case MachineRepresentation::kNone: | 825 case MachineRepresentation::kNone: |
817 UNREACHABLE(); | 826 UNREACHABLE(); |
818 return; | 827 return; |
819 } | 828 } |
820 AddressingMode addressingMode = kMode_MRR; | 829 AddressingMode addressingMode = kMode_MRR; |
821 Emit(opcode | AddressingModeField::encode(addressingMode), | 830 Emit(opcode | AddressingModeField::encode(addressingMode), |
822 g.DefineAsRegister(node), g.UseRegister(base), g.UseRegister(offset), | 831 g.DefineAsRegister(node), g.UseRegister(base), g.UseRegister(offset), |
823 g.UseOperand(length, OperandMode::kUint32Imm)); | 832 g.UseOperand(length, OperandMode::kUint32Imm)); |
824 } | 833 } |
825 | 834 |
(...skipping 27 matching lines...) Expand all Loading... |
853 opcode = kCheckedStoreFloat64; | 862 opcode = kCheckedStoreFloat64; |
854 break; | 863 break; |
855 case MachineRepresentation::kBit: // Fall through. | 864 case MachineRepresentation::kBit: // Fall through. |
856 case MachineRepresentation::kTaggedSigned: // Fall through. | 865 case MachineRepresentation::kTaggedSigned: // Fall through. |
857 case MachineRepresentation::kTaggedPointer: // Fall through. | 866 case MachineRepresentation::kTaggedPointer: // Fall through. |
858 case MachineRepresentation::kTagged: // Fall through. | 867 case MachineRepresentation::kTagged: // Fall through. |
859 #if !V8_TARGET_ARCH_S390X | 868 #if !V8_TARGET_ARCH_S390X |
860 case MachineRepresentation::kWord64: // Fall through. | 869 case MachineRepresentation::kWord64: // Fall through. |
861 #endif | 870 #endif |
862 case MachineRepresentation::kSimd128: // Fall through. | 871 case MachineRepresentation::kSimd128: // Fall through. |
| 872 case MachineRepresentation::kSimd1x4: // Fall through. |
| 873 case MachineRepresentation::kSimd1x8: // Fall through. |
| 874 case MachineRepresentation::kSimd1x16: // Fall through. |
863 case MachineRepresentation::kNone: | 875 case MachineRepresentation::kNone: |
864 UNREACHABLE(); | 876 UNREACHABLE(); |
865 return; | 877 return; |
866 } | 878 } |
867 AddressingMode addressingMode = kMode_MRR; | 879 AddressingMode addressingMode = kMode_MRR; |
868 Emit(opcode | AddressingModeField::encode(addressingMode), g.NoOutput(), | 880 Emit(opcode | AddressingModeField::encode(addressingMode), g.NoOutput(), |
869 g.UseRegister(base), g.UseRegister(offset), | 881 g.UseRegister(base), g.UseRegister(offset), |
870 g.UseOperand(length, OperandMode::kUint32Imm), g.UseRegister(value)); | 882 g.UseOperand(length, OperandMode::kUint32Imm), g.UseRegister(value)); |
871 } | 883 } |
872 | 884 |
(...skipping 1655 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2528 // static | 2540 // static |
2529 MachineOperatorBuilder::AlignmentRequirements | 2541 MachineOperatorBuilder::AlignmentRequirements |
2530 InstructionSelector::AlignmentRequirements() { | 2542 InstructionSelector::AlignmentRequirements() { |
2531 return MachineOperatorBuilder::AlignmentRequirements:: | 2543 return MachineOperatorBuilder::AlignmentRequirements:: |
2532 FullUnalignedAccessSupport(); | 2544 FullUnalignedAccessSupport(); |
2533 } | 2545 } |
2534 | 2546 |
2535 } // namespace compiler | 2547 } // namespace compiler |
2536 } // namespace internal | 2548 } // namespace internal |
2537 } // namespace v8 | 2549 } // namespace v8 |
OLD | NEW |