Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Side by Side Diff: src/compiler/s390/instruction-selector-s390.cc

Issue 2700813002: [V8] Implement SIMD Boolean vector types to allow mask registers. (Closed)
Patch Set: Rebase. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/compiler/representation-change.cc ('k') | src/compiler/simplified-lowering.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « src/compiler/representation-change.cc ('k') | src/compiler/simplified-lowering.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698