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 2077 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2088 } | 2088 } |
2089 | 2089 |
2090 void InstructionSelector::VisitI32x4SConvertF32x4(Node* node) { | 2090 void InstructionSelector::VisitI32x4SConvertF32x4(Node* node) { |
2091 VisitRR(this, kMipsI32x4SConvertF32x4, node); | 2091 VisitRR(this, kMipsI32x4SConvertF32x4, node); |
2092 } | 2092 } |
2093 | 2093 |
2094 void InstructionSelector::VisitI32x4UConvertF32x4(Node* node) { | 2094 void InstructionSelector::VisitI32x4UConvertF32x4(Node* node) { |
2095 VisitRR(this, kMipsI32x4UConvertF32x4, node); | 2095 VisitRR(this, kMipsI32x4UConvertF32x4, node); |
2096 } | 2096 } |
2097 | 2097 |
| 2098 void InstructionSelector::VisitI32x4Neg(Node* node) { |
| 2099 VisitRR(this, kMipsI32x4Neg, node); |
| 2100 } |
| 2101 |
| 2102 void InstructionSelector::VisitI32x4LtS(Node* node) { |
| 2103 VisitRRR(this, kMipsI32x4LtS, node); |
| 2104 } |
| 2105 |
| 2106 void InstructionSelector::VisitI32x4LeS(Node* node) { |
| 2107 VisitRRR(this, kMipsI32x4LeS, node); |
| 2108 } |
| 2109 |
| 2110 void InstructionSelector::VisitI32x4LtU(Node* node) { |
| 2111 VisitRRR(this, kMipsI32x4LtU, node); |
| 2112 } |
| 2113 |
| 2114 void InstructionSelector::VisitI32x4LeU(Node* node) { |
| 2115 VisitRRR(this, kMipsI32x4LeU, node); |
| 2116 } |
| 2117 |
| 2118 void InstructionSelector::VisitI16x8Splat(Node* node) { |
| 2119 VisitRR(this, kMipsI16x8Splat, node); |
| 2120 } |
| 2121 |
| 2122 void InstructionSelector::VisitI16x8ExtractLane(Node* node) { |
| 2123 VisitRRI(this, kMipsI16x8ExtractLane, node); |
| 2124 } |
| 2125 |
| 2126 void InstructionSelector::VisitI16x8ReplaceLane(Node* node) { |
| 2127 VisitRRIR(this, kMipsI16x8ReplaceLane, node); |
| 2128 } |
| 2129 |
| 2130 void InstructionSelector::VisitI16x8Neg(Node* node) { |
| 2131 VisitRR(this, kMipsI16x8Neg, node); |
| 2132 } |
| 2133 |
| 2134 void InstructionSelector::VisitI16x8Shl(Node* node) { |
| 2135 VisitRRI(this, kMipsI16x8Shl, node); |
| 2136 } |
| 2137 |
| 2138 void InstructionSelector::VisitI16x8ShrS(Node* node) { |
| 2139 VisitRRI(this, kMipsI16x8ShrS, node); |
| 2140 } |
| 2141 |
| 2142 void InstructionSelector::VisitI16x8ShrU(Node* node) { |
| 2143 VisitRRI(this, kMipsI16x8ShrU, node); |
| 2144 } |
| 2145 |
| 2146 void InstructionSelector::VisitI16x8Add(Node* node) { |
| 2147 VisitRRR(this, kMipsI16x8Add, node); |
| 2148 } |
| 2149 |
| 2150 void InstructionSelector::VisitI16x8AddSaturateS(Node* node) { |
| 2151 VisitRRR(this, kMipsI16x8AddSaturateS, node); |
| 2152 } |
| 2153 |
| 2154 void InstructionSelector::VisitI16x8Sub(Node* node) { |
| 2155 VisitRRR(this, kMipsI16x8Sub, node); |
| 2156 } |
| 2157 |
| 2158 void InstructionSelector::VisitI16x8SubSaturateS(Node* node) { |
| 2159 VisitRRR(this, kMipsI16x8SubSaturateS, node); |
| 2160 } |
| 2161 |
2098 // static | 2162 // static |
2099 MachineOperatorBuilder::Flags | 2163 MachineOperatorBuilder::Flags |
2100 InstructionSelector::SupportedMachineOperatorFlags() { | 2164 InstructionSelector::SupportedMachineOperatorFlags() { |
2101 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; | 2165 MachineOperatorBuilder::Flags flags = MachineOperatorBuilder::kNoFlags; |
2102 if ((IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) && | 2166 if ((IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) && |
2103 IsFp64Mode()) { | 2167 IsFp64Mode()) { |
2104 flags |= MachineOperatorBuilder::kFloat64RoundDown | | 2168 flags |= MachineOperatorBuilder::kFloat64RoundDown | |
2105 MachineOperatorBuilder::kFloat64RoundUp | | 2169 MachineOperatorBuilder::kFloat64RoundUp | |
2106 MachineOperatorBuilder::kFloat64RoundTruncate | | 2170 MachineOperatorBuilder::kFloat64RoundTruncate | |
2107 MachineOperatorBuilder::kFloat64RoundTiesEven; | 2171 MachineOperatorBuilder::kFloat64RoundTiesEven; |
(...skipping 22 matching lines...) Expand all Loading... |
2130 DCHECK(IsMipsArchVariant(kLoongson) || IsMipsArchVariant(kMips32r1) || | 2194 DCHECK(IsMipsArchVariant(kLoongson) || IsMipsArchVariant(kMips32r1) || |
2131 IsMipsArchVariant(kMips32r2)); | 2195 IsMipsArchVariant(kMips32r2)); |
2132 return MachineOperatorBuilder::AlignmentRequirements:: | 2196 return MachineOperatorBuilder::AlignmentRequirements:: |
2133 NoUnalignedAccessSupport(); | 2197 NoUnalignedAccessSupport(); |
2134 } | 2198 } |
2135 } | 2199 } |
2136 | 2200 |
2137 } // namespace compiler | 2201 } // namespace compiler |
2138 } // namespace internal | 2202 } // namespace internal |
2139 } // namespace v8 | 2203 } // namespace v8 |
OLD | NEW |