| 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/compiler/instruction-selector-impl.h" |     5 #include "src/compiler/instruction-selector-impl.h" | 
|     6 #include "src/compiler/node-matchers.h" |     6 #include "src/compiler/node-matchers.h" | 
|     7 #include "src/compiler/node-properties.h" |     7 #include "src/compiler/node-properties.h" | 
|     8  |     8  | 
|     9 namespace v8 { |     9 namespace v8 { | 
|    10 namespace internal { |    10 namespace internal { | 
| (...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   584       immediate_mode = kLoadStoreImm8; |   584       immediate_mode = kLoadStoreImm8; | 
|   585       break; |   585       break; | 
|   586     case MachineRepresentation::kWord16: |   586     case MachineRepresentation::kWord16: | 
|   587       opcode = load_rep.IsSigned() ? kArm64Ldrsh : kArm64Ldrh; |   587       opcode = load_rep.IsSigned() ? kArm64Ldrsh : kArm64Ldrh; | 
|   588       immediate_mode = kLoadStoreImm16; |   588       immediate_mode = kLoadStoreImm16; | 
|   589       break; |   589       break; | 
|   590     case MachineRepresentation::kWord32: |   590     case MachineRepresentation::kWord32: | 
|   591       opcode = kArm64LdrW; |   591       opcode = kArm64LdrW; | 
|   592       immediate_mode = kLoadStoreImm32; |   592       immediate_mode = kLoadStoreImm32; | 
|   593       break; |   593       break; | 
 |   594     case MachineRepresentation::kTaggedSigned:   // Fall through. | 
 |   595     case MachineRepresentation::kTaggedPointer:  // Fall through. | 
|   594     case MachineRepresentation::kTagged:  // Fall through. |   596     case MachineRepresentation::kTagged:  // Fall through. | 
|   595     case MachineRepresentation::kWord64: |   597     case MachineRepresentation::kWord64: | 
|   596       opcode = kArm64Ldr; |   598       opcode = kArm64Ldr; | 
|   597       immediate_mode = kLoadStoreImm64; |   599       immediate_mode = kLoadStoreImm64; | 
|   598       break; |   600       break; | 
|   599     case MachineRepresentation::kSimd128:  // Fall through. |   601     case MachineRepresentation::kSimd128:  // Fall through. | 
|   600     case MachineRepresentation::kNone: |   602     case MachineRepresentation::kNone: | 
|   601       UNREACHABLE(); |   603       UNREACHABLE(); | 
|   602       return; |   604       return; | 
|   603   } |   605   } | 
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   674         immediate_mode = kLoadStoreImm8; |   676         immediate_mode = kLoadStoreImm8; | 
|   675         break; |   677         break; | 
|   676       case MachineRepresentation::kWord16: |   678       case MachineRepresentation::kWord16: | 
|   677         opcode = kArm64Strh; |   679         opcode = kArm64Strh; | 
|   678         immediate_mode = kLoadStoreImm16; |   680         immediate_mode = kLoadStoreImm16; | 
|   679         break; |   681         break; | 
|   680       case MachineRepresentation::kWord32: |   682       case MachineRepresentation::kWord32: | 
|   681         opcode = kArm64StrW; |   683         opcode = kArm64StrW; | 
|   682         immediate_mode = kLoadStoreImm32; |   684         immediate_mode = kLoadStoreImm32; | 
|   683         break; |   685         break; | 
 |   686       case MachineRepresentation::kTaggedSigned:   // Fall through. | 
 |   687       case MachineRepresentation::kTaggedPointer:  // Fall through. | 
|   684       case MachineRepresentation::kTagged:  // Fall through. |   688       case MachineRepresentation::kTagged:  // Fall through. | 
|   685       case MachineRepresentation::kWord64: |   689       case MachineRepresentation::kWord64: | 
|   686         opcode = kArm64Str; |   690         opcode = kArm64Str; | 
|   687         immediate_mode = kLoadStoreImm64; |   691         immediate_mode = kLoadStoreImm64; | 
|   688         break; |   692         break; | 
|   689       case MachineRepresentation::kSimd128:  // Fall through. |   693       case MachineRepresentation::kSimd128:  // Fall through. | 
|   690       case MachineRepresentation::kNone: |   694       case MachineRepresentation::kNone: | 
|   691         UNREACHABLE(); |   695         UNREACHABLE(); | 
|   692         return; |   696         return; | 
|   693     } |   697     } | 
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   739     case MachineRepresentation::kWord64: |   743     case MachineRepresentation::kWord64: | 
|   740       opcode = kCheckedLoadWord64; |   744       opcode = kCheckedLoadWord64; | 
|   741       break; |   745       break; | 
|   742     case MachineRepresentation::kFloat32: |   746     case MachineRepresentation::kFloat32: | 
|   743       opcode = kCheckedLoadFloat32; |   747       opcode = kCheckedLoadFloat32; | 
|   744       break; |   748       break; | 
|   745     case MachineRepresentation::kFloat64: |   749     case MachineRepresentation::kFloat64: | 
|   746       opcode = kCheckedLoadFloat64; |   750       opcode = kCheckedLoadFloat64; | 
|   747       break; |   751       break; | 
|   748     case MachineRepresentation::kBit:      // Fall through. |   752     case MachineRepresentation::kBit:      // Fall through. | 
 |   753     case MachineRepresentation::kTaggedSigned:   // Fall through. | 
 |   754     case MachineRepresentation::kTaggedPointer:  // Fall through. | 
|   749     case MachineRepresentation::kTagged:   // Fall through. |   755     case MachineRepresentation::kTagged:   // Fall through. | 
|   750     case MachineRepresentation::kSimd128:  // Fall through. |   756     case MachineRepresentation::kSimd128:  // Fall through. | 
|   751     case MachineRepresentation::kNone: |   757     case MachineRepresentation::kNone: | 
|   752       UNREACHABLE(); |   758       UNREACHABLE(); | 
|   753       return; |   759       return; | 
|   754   } |   760   } | 
|   755   // If the length is a constant power of two, allow the code generator to |   761   // If the length is a constant power of two, allow the code generator to | 
|   756   // pick a more efficient bounds check sequence by passing the length as an |   762   // pick a more efficient bounds check sequence by passing the length as an | 
|   757   // immediate. |   763   // immediate. | 
|   758   if (length->opcode() == IrOpcode::kInt32Constant) { |   764   if (length->opcode() == IrOpcode::kInt32Constant) { | 
| (...skipping 30 matching lines...) Expand all  Loading... | 
|   789     case MachineRepresentation::kWord64: |   795     case MachineRepresentation::kWord64: | 
|   790       opcode = kCheckedStoreWord64; |   796       opcode = kCheckedStoreWord64; | 
|   791       break; |   797       break; | 
|   792     case MachineRepresentation::kFloat32: |   798     case MachineRepresentation::kFloat32: | 
|   793       opcode = kCheckedStoreFloat32; |   799       opcode = kCheckedStoreFloat32; | 
|   794       break; |   800       break; | 
|   795     case MachineRepresentation::kFloat64: |   801     case MachineRepresentation::kFloat64: | 
|   796       opcode = kCheckedStoreFloat64; |   802       opcode = kCheckedStoreFloat64; | 
|   797       break; |   803       break; | 
|   798     case MachineRepresentation::kBit:      // Fall through. |   804     case MachineRepresentation::kBit:      // Fall through. | 
 |   805     case MachineRepresentation::kTaggedSigned:   // Fall through. | 
 |   806     case MachineRepresentation::kTaggedPointer:  // Fall through. | 
|   799     case MachineRepresentation::kTagged:   // Fall through. |   807     case MachineRepresentation::kTagged:   // Fall through. | 
|   800     case MachineRepresentation::kSimd128:  // Fall through. |   808     case MachineRepresentation::kSimd128:  // Fall through. | 
|   801     case MachineRepresentation::kNone: |   809     case MachineRepresentation::kNone: | 
|   802       UNREACHABLE(); |   810       UNREACHABLE(); | 
|   803       return; |   811       return; | 
|   804   } |   812   } | 
|   805   // If the length is a constant power of two, allow the code generator to |   813   // If the length is a constant power of two, allow the code generator to | 
|   806   // pick a more efficient bounds check sequence by passing the length as an |   814   // pick a more efficient bounds check sequence by passing the length as an | 
|   807   // immediate. |   815   // immediate. | 
|   808   if (length->opcode() == IrOpcode::kInt32Constant) { |   816   if (length->opcode() == IrOpcode::kInt32Constant) { | 
| (...skipping 1980 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2789 // static |  2797 // static | 
|  2790 MachineOperatorBuilder::AlignmentRequirements |  2798 MachineOperatorBuilder::AlignmentRequirements | 
|  2791 InstructionSelector::AlignmentRequirements() { |  2799 InstructionSelector::AlignmentRequirements() { | 
|  2792   return MachineOperatorBuilder::AlignmentRequirements:: |  2800   return MachineOperatorBuilder::AlignmentRequirements:: | 
|  2793       FullUnalignedAccessSupport(); |  2801       FullUnalignedAccessSupport(); | 
|  2794 } |  2802 } | 
|  2795  |  2803  | 
|  2796 }  // namespace compiler |  2804 }  // namespace compiler | 
|  2797 }  // namespace internal |  2805 }  // namespace internal | 
|  2798 }  // namespace v8 |  2806 }  // namespace v8 | 
| OLD | NEW |