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/compiler/instruction-scheduler.h" | 5 #include "src/compiler/instruction-scheduler.h" |
6 | 6 |
7 namespace v8 { | 7 namespace v8 { |
8 namespace internal { | 8 namespace internal { |
9 namespace compiler { | 9 namespace compiler { |
10 | 10 |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 case kX64Lea32: | 122 case kX64Lea32: |
123 case kX64Lea: | 123 case kX64Lea: |
124 case kX64Dec32: | 124 case kX64Dec32: |
125 case kX64Inc32: | 125 case kX64Inc32: |
126 case kX64I32x4Splat: | 126 case kX64I32x4Splat: |
127 case kX64I32x4ExtractLane: | 127 case kX64I32x4ExtractLane: |
128 case kX64I32x4ReplaceLane: | 128 case kX64I32x4ReplaceLane: |
129 case kX64I32x4Shl: | 129 case kX64I32x4Shl: |
130 case kX64I32x4ShrS: | 130 case kX64I32x4ShrS: |
131 case kX64I32x4Add: | 131 case kX64I32x4Add: |
| 132 case kX64I32x4AddHoriz: |
132 case kX64I32x4Sub: | 133 case kX64I32x4Sub: |
133 case kX64I32x4Mul: | 134 case kX64I32x4Mul: |
134 case kX64I32x4MinS: | 135 case kX64I32x4MinS: |
135 case kX64I32x4MaxS: | 136 case kX64I32x4MaxS: |
136 case kX64I32x4Eq: | 137 case kX64I32x4Eq: |
137 case kX64I32x4Ne: | 138 case kX64I32x4Ne: |
138 case kX64I32x4ShrU: | 139 case kX64I32x4ShrU: |
139 case kX64I32x4MinU: | 140 case kX64I32x4MinU: |
140 case kX64I32x4MaxU: | 141 case kX64I32x4MaxU: |
141 case kX64I16x8Splat: | 142 case kX64I16x8Splat: |
142 case kX64I16x8ExtractLane: | 143 case kX64I16x8ExtractLane: |
143 case kX64I16x8ReplaceLane: | 144 case kX64I16x8ReplaceLane: |
144 case kX64I16x8Shl: | 145 case kX64I16x8Shl: |
145 case kX64I16x8ShrS: | 146 case kX64I16x8ShrS: |
146 case kX64I16x8Add: | 147 case kX64I16x8Add: |
147 case kX64I16x8AddSaturateS: | 148 case kX64I16x8AddSaturateS: |
| 149 case kX64I16x8AddHoriz: |
148 case kX64I16x8Sub: | 150 case kX64I16x8Sub: |
149 case kX64I16x8SubSaturateS: | 151 case kX64I16x8SubSaturateS: |
150 case kX64I16x8Mul: | 152 case kX64I16x8Mul: |
151 case kX64I16x8MinS: | 153 case kX64I16x8MinS: |
152 case kX64I16x8MaxS: | 154 case kX64I16x8MaxS: |
153 case kX64I16x8Eq: | 155 case kX64I16x8Eq: |
154 case kX64I16x8Ne: | 156 case kX64I16x8Ne: |
155 case kX64I16x8ShrU: | 157 case kX64I16x8ShrU: |
156 case kX64I16x8AddSaturateU: | 158 case kX64I16x8AddSaturateU: |
157 case kX64I16x8SubSaturateU: | 159 case kX64I16x8SubSaturateU: |
158 case kX64I16x8MinU: | 160 case kX64I16x8MinU: |
159 case kX64I16x8MaxU: | 161 case kX64I16x8MaxU: |
160 case kX64I8x16Splat: | 162 case kX64I8x16Splat: |
161 case kX64I8x16ExtractLane: | 163 case kX64I8x16ExtractLane: |
162 case kX64I8x16ReplaceLane: | 164 case kX64I8x16ReplaceLane: |
163 case kX64I8x16Add: | 165 case kX64I8x16Add: |
164 case kX64I8x16AddSaturateS: | 166 case kX64I8x16AddSaturateS: |
165 case kX64I8x16Sub: | 167 case kX64I8x16Sub: |
166 case kX64I8x16SubSaturateS: | 168 case kX64I8x16SubSaturateS: |
167 case kX64I8x16MinS: | 169 case kX64I8x16MinS: |
168 case kX64I8x16MaxS: | 170 case kX64I8x16MaxS: |
169 case kX64I8x16Eq: | 171 case kX64I8x16Eq: |
170 case kX64I8x16Ne: | 172 case kX64I8x16Ne: |
171 case kX64I8x16AddSaturateU: | 173 case kX64I8x16AddSaturateU: |
172 case kX64I8x16SubSaturateU: | 174 case kX64I8x16SubSaturateU: |
173 case kX64I8x16MinU: | 175 case kX64I8x16MinU: |
174 case kX64I8x16MaxU: | 176 case kX64I8x16MaxU: |
| 177 case kX64S128And: |
| 178 case kX64S128Or: |
| 179 case kX64S128Xor: |
| 180 case kX64S128Not: |
175 case kX64S128Select: | 181 case kX64S128Select: |
176 case kX64S128Zero: | 182 case kX64S128Zero: |
177 return (instr->addressing_mode() == kMode_None) | 183 return (instr->addressing_mode() == kMode_None) |
178 ? kNoOpcodeFlags | 184 ? kNoOpcodeFlags |
179 : kIsLoadOperation | kHasSideEffect; | 185 : kIsLoadOperation | kHasSideEffect; |
180 | 186 |
181 case kX64Idiv: | 187 case kX64Idiv: |
182 case kX64Idiv32: | 188 case kX64Idiv32: |
183 case kX64Udiv: | 189 case kX64Udiv: |
184 case kX64Udiv32: | 190 case kX64Udiv32: |
(...skipping 23 matching lines...) Expand all Loading... |
208 DCHECK(instr->InputCount() >= 1); | 214 DCHECK(instr->InputCount() >= 1); |
209 return instr->InputAt(0)->IsRegister() ? kNoOpcodeFlags | 215 return instr->InputAt(0)->IsRegister() ? kNoOpcodeFlags |
210 : kIsLoadOperation; | 216 : kIsLoadOperation; |
211 } else { | 217 } else { |
212 return kHasSideEffect; | 218 return kHasSideEffect; |
213 } | 219 } |
214 | 220 |
215 case kX64Movq: | 221 case kX64Movq: |
216 case kX64Movsd: | 222 case kX64Movsd: |
217 case kX64Movss: | 223 case kX64Movss: |
| 224 case kX64Movdqu: |
218 return instr->HasOutput() ? kIsLoadOperation : kHasSideEffect; | 225 return instr->HasOutput() ? kIsLoadOperation : kHasSideEffect; |
219 | 226 |
220 case kX64StackCheck: | 227 case kX64StackCheck: |
221 return kIsLoadOperation; | 228 return kIsLoadOperation; |
222 | 229 |
223 case kX64Push: | 230 case kX64Push: |
224 case kX64Poke: | 231 case kX64Poke: |
225 return kHasSideEffect; | 232 return kHasSideEffect; |
226 | 233 |
227 #define CASE(Name) case k##Name: | 234 #define CASE(Name) case k##Name: |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 case kArchTruncateDoubleToI: | 313 case kArchTruncateDoubleToI: |
307 return 6; | 314 return 6; |
308 default: | 315 default: |
309 return 1; | 316 return 1; |
310 } | 317 } |
311 } | 318 } |
312 | 319 |
313 } // namespace compiler | 320 } // namespace compiler |
314 } // namespace internal | 321 } // namespace internal |
315 } // namespace v8 | 322 } // namespace v8 |
OLD | NEW |