| Index: src/compiler/arm/instruction-selector-arm.cc
|
| diff --git a/src/compiler/arm/instruction-selector-arm.cc b/src/compiler/arm/instruction-selector-arm.cc
|
| index 5cd464132eda84a5ef3f8eba683277d43384c410..e3c7bd0aa3d5e27012cda8601163d0434bb8848f 100644
|
| --- a/src/compiler/arm/instruction-selector-arm.cc
|
| +++ b/src/compiler/arm/instruction-selector-arm.cc
|
| @@ -2190,10 +2190,14 @@ void InstructionSelector::VisitAtomicStore(Node* node) {
|
| V(Int32x4NotEqual) \
|
| V(Int32x4GreaterThan) \
|
| V(Int32x4GreaterThanOrEqual) \
|
| + V(Uint32x4Min) \
|
| + V(Uint32x4Max) \
|
| V(Uint32x4GreaterThan) \
|
| V(Uint32x4GreaterThanOrEqual) \
|
| V(Int16x8Add) \
|
| + V(Int16x8AddSaturate) \
|
| V(Int16x8Sub) \
|
| + V(Int16x8SubSaturate) \
|
| V(Int16x8Mul) \
|
| V(Int16x8Min) \
|
| V(Int16x8Max) \
|
| @@ -2201,10 +2205,16 @@ void InstructionSelector::VisitAtomicStore(Node* node) {
|
| V(Int16x8NotEqual) \
|
| V(Int16x8GreaterThan) \
|
| V(Int16x8GreaterThanOrEqual) \
|
| + V(Uint16x8AddSaturate) \
|
| + V(Uint16x8SubSaturate) \
|
| + V(Uint16x8Min) \
|
| + V(Uint16x8Max) \
|
| V(Uint16x8GreaterThan) \
|
| V(Uint16x8GreaterThanOrEqual) \
|
| V(Int8x16Add) \
|
| + V(Int8x16AddSaturate) \
|
| V(Int8x16Sub) \
|
| + V(Int8x16SubSaturate) \
|
| V(Int8x16Mul) \
|
| V(Int8x16Min) \
|
| V(Int8x16Max) \
|
| @@ -2212,9 +2222,24 @@ void InstructionSelector::VisitAtomicStore(Node* node) {
|
| V(Int8x16NotEqual) \
|
| V(Int8x16GreaterThan) \
|
| V(Int8x16GreaterThanOrEqual) \
|
| + V(Uint8x16AddSaturate) \
|
| + V(Uint8x16SubSaturate) \
|
| + V(Uint8x16Min) \
|
| + V(Uint8x16Max) \
|
| V(Uint8x16GreaterThan) \
|
| V(Uint8x16GreaterThanOrEqual)
|
|
|
| +#define SIMD_SHIFT_OP_LIST(V) \
|
| + V(Int32x4ShiftLeftByScalar) \
|
| + V(Int32x4ShiftRightByScalar) \
|
| + V(Uint32x4ShiftRightByScalar) \
|
| + V(Int16x8ShiftLeftByScalar) \
|
| + V(Int16x8ShiftRightByScalar) \
|
| + V(Uint16x8ShiftRightByScalar) \
|
| + V(Int8x16ShiftLeftByScalar) \
|
| + V(Int8x16ShiftRightByScalar) \
|
| + V(Uint8x16ShiftRightByScalar)
|
| +
|
| #define SIMD_VISIT_SPLAT(Type) \
|
| void InstructionSelector::VisitCreate##Type(Node* node) { \
|
| VisitRR(this, kArm##Type##Splat, node); \
|
| @@ -2250,6 +2275,13 @@ SIMD_UNOP_LIST(SIMD_VISIT_UNOP)
|
| SIMD_BINOP_LIST(SIMD_VISIT_BINOP)
|
| #undef SIMD_VISIT_BINOP
|
|
|
| +#define SIMD_VISIT_SHIFT_OP(Name) \
|
| + void InstructionSelector::Visit##Name(Node* node) { \
|
| + VisitRRI(this, kArm##Name, node); \
|
| + }
|
| +SIMD_SHIFT_OP_LIST(SIMD_VISIT_SHIFT_OP)
|
| +#undef SIMD_VISIT_SHIFT_OP
|
| +
|
| void InstructionSelector::VisitSimd32x4Select(Node* node) {
|
| ArmOperandGenerator g(this);
|
| Emit(kArmSimd32x4Select, g.DefineAsRegister(node),
|
|
|