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

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

Issue 2919203002: [WASM] Eliminate SIMD boolean vector types. (Closed)
Patch Set: Restore DCHECKs in AssembleMove/Swap now that we're back to 1 SIMD representation. Created 3 years, 6 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/opcodes.h ('k') | src/compiler/register-allocator.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 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/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/ppc/frames-ppc.h" 9 #include "src/ppc/frames-ppc.h"
10 10
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 case MachineRepresentation::kTaggedPointer: // Fall through. 217 case MachineRepresentation::kTaggedPointer: // Fall through.
218 case MachineRepresentation::kTagged: // Fall through. 218 case MachineRepresentation::kTagged: // Fall through.
219 case MachineRepresentation::kWord64: 219 case MachineRepresentation::kWord64:
220 opcode = kPPC_LoadWord64; 220 opcode = kPPC_LoadWord64;
221 mode = kInt16Imm_4ByteAligned; 221 mode = kInt16Imm_4ByteAligned;
222 break; 222 break;
223 #else 223 #else
224 case MachineRepresentation::kWord64: // Fall through. 224 case MachineRepresentation::kWord64: // Fall through.
225 #endif 225 #endif
226 case MachineRepresentation::kSimd128: // Fall through. 226 case MachineRepresentation::kSimd128: // Fall through.
227 case MachineRepresentation::kSimd1x4: // Fall through.
228 case MachineRepresentation::kSimd1x8: // Fall through.
229 case MachineRepresentation::kSimd1x16: // Fall through.
230 case MachineRepresentation::kNone: 227 case MachineRepresentation::kNone:
231 UNREACHABLE(); 228 UNREACHABLE();
232 return; 229 return;
233 } 230 }
234 if (g.CanBeImmediate(offset, mode)) { 231 if (g.CanBeImmediate(offset, mode)) {
235 Emit(opcode | AddressingModeField::encode(kMode_MRI), 232 Emit(opcode | AddressingModeField::encode(kMode_MRI),
236 g.DefineAsRegister(node), g.UseRegister(base), g.UseImmediate(offset)); 233 g.DefineAsRegister(node), g.UseRegister(base), g.UseImmediate(offset));
237 } else if (g.CanBeImmediate(base, mode)) { 234 } else if (g.CanBeImmediate(base, mode)) {
238 Emit(opcode | AddressingModeField::encode(kMode_MRI), 235 Emit(opcode | AddressingModeField::encode(kMode_MRI),
239 g.DefineAsRegister(node), g.UseRegister(offset), g.UseImmediate(base)); 236 g.DefineAsRegister(node), g.UseRegister(offset), g.UseImmediate(base));
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 case MachineRepresentation::kTaggedPointer: // Fall through. 326 case MachineRepresentation::kTaggedPointer: // Fall through.
330 case MachineRepresentation::kTagged: // Fall through. 327 case MachineRepresentation::kTagged: // Fall through.
331 case MachineRepresentation::kWord64: 328 case MachineRepresentation::kWord64:
332 opcode = kPPC_StoreWord64; 329 opcode = kPPC_StoreWord64;
333 mode = kInt16Imm_4ByteAligned; 330 mode = kInt16Imm_4ByteAligned;
334 break; 331 break;
335 #else 332 #else
336 case MachineRepresentation::kWord64: // Fall through. 333 case MachineRepresentation::kWord64: // Fall through.
337 #endif 334 #endif
338 case MachineRepresentation::kSimd128: // Fall through. 335 case MachineRepresentation::kSimd128: // Fall through.
339 case MachineRepresentation::kSimd1x4: // Fall through.
340 case MachineRepresentation::kSimd1x8: // Fall through.
341 case MachineRepresentation::kSimd1x16: // Fall through.
342 case MachineRepresentation::kNone: 336 case MachineRepresentation::kNone:
343 UNREACHABLE(); 337 UNREACHABLE();
344 return; 338 return;
345 } 339 }
346 if (g.CanBeImmediate(offset, mode)) { 340 if (g.CanBeImmediate(offset, mode)) {
347 Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(), 341 Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(),
348 g.UseRegister(base), g.UseImmediate(offset), g.UseRegister(value)); 342 g.UseRegister(base), g.UseImmediate(offset), g.UseRegister(value));
349 } else if (g.CanBeImmediate(base, mode)) { 343 } else if (g.CanBeImmediate(base, mode)) {
350 Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(), 344 Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(),
351 g.UseRegister(offset), g.UseImmediate(base), g.UseRegister(value)); 345 g.UseRegister(offset), g.UseImmediate(base), g.UseRegister(value));
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 opcode = kCheckedLoadFloat64; 390 opcode = kCheckedLoadFloat64;
397 break; 391 break;
398 case MachineRepresentation::kBit: // Fall through. 392 case MachineRepresentation::kBit: // Fall through.
399 case MachineRepresentation::kTaggedSigned: // Fall through. 393 case MachineRepresentation::kTaggedSigned: // Fall through.
400 case MachineRepresentation::kTaggedPointer: // Fall through. 394 case MachineRepresentation::kTaggedPointer: // Fall through.
401 case MachineRepresentation::kTagged: // Fall through. 395 case MachineRepresentation::kTagged: // Fall through.
402 #if !V8_TARGET_ARCH_PPC64 396 #if !V8_TARGET_ARCH_PPC64
403 case MachineRepresentation::kWord64: // Fall through. 397 case MachineRepresentation::kWord64: // Fall through.
404 #endif 398 #endif
405 case MachineRepresentation::kSimd128: // Fall through. 399 case MachineRepresentation::kSimd128: // Fall through.
406 case MachineRepresentation::kSimd1x4: // Fall through.
407 case MachineRepresentation::kSimd1x8: // Fall through.
408 case MachineRepresentation::kSimd1x16: // Fall through.
409 case MachineRepresentation::kNone: 400 case MachineRepresentation::kNone:
410 UNREACHABLE(); 401 UNREACHABLE();
411 return; 402 return;
412 } 403 }
413 AddressingMode addressingMode = kMode_MRR; 404 AddressingMode addressingMode = kMode_MRR;
414 Emit(opcode | AddressingModeField::encode(addressingMode), 405 Emit(opcode | AddressingModeField::encode(addressingMode),
415 g.DefineAsRegister(node), g.UseRegister(base), g.UseRegister(offset), 406 g.DefineAsRegister(node), g.UseRegister(base), g.UseRegister(offset),
416 g.UseOperand(length, kInt16Imm_Unsigned)); 407 g.UseOperand(length, kInt16Imm_Unsigned));
417 } 408 }
418 409
(...skipping 28 matching lines...) Expand all
447 opcode = kCheckedStoreFloat64; 438 opcode = kCheckedStoreFloat64;
448 break; 439 break;
449 case MachineRepresentation::kBit: // Fall through. 440 case MachineRepresentation::kBit: // Fall through.
450 case MachineRepresentation::kTaggedSigned: // Fall through. 441 case MachineRepresentation::kTaggedSigned: // Fall through.
451 case MachineRepresentation::kTaggedPointer: // Fall through. 442 case MachineRepresentation::kTaggedPointer: // Fall through.
452 case MachineRepresentation::kTagged: // Fall through. 443 case MachineRepresentation::kTagged: // Fall through.
453 #if !V8_TARGET_ARCH_PPC64 444 #if !V8_TARGET_ARCH_PPC64
454 case MachineRepresentation::kWord64: // Fall through. 445 case MachineRepresentation::kWord64: // Fall through.
455 #endif 446 #endif
456 case MachineRepresentation::kSimd128: // Fall through. 447 case MachineRepresentation::kSimd128: // Fall through.
457 case MachineRepresentation::kSimd1x4: // Fall through.
458 case MachineRepresentation::kSimd1x8: // Fall through.
459 case MachineRepresentation::kSimd1x16: // Fall through.
460 case MachineRepresentation::kNone: 448 case MachineRepresentation::kNone:
461 UNREACHABLE(); 449 UNREACHABLE();
462 return; 450 return;
463 } 451 }
464 AddressingMode addressingMode = kMode_MRR; 452 AddressingMode addressingMode = kMode_MRR;
465 Emit(opcode | AddressingModeField::encode(addressingMode), g.NoOutput(), 453 Emit(opcode | AddressingModeField::encode(addressingMode), g.NoOutput(),
466 g.UseRegister(base), g.UseRegister(offset), 454 g.UseRegister(base), g.UseRegister(offset),
467 g.UseOperand(length, kInt16Imm_Unsigned), g.UseRegister(value)); 455 g.UseOperand(length, kInt16Imm_Unsigned), g.UseRegister(value));
468 } 456 }
469 457
(...skipping 1728 matching lines...) Expand 10 before | Expand all | Expand 10 after
2198 // static 2186 // static
2199 MachineOperatorBuilder::AlignmentRequirements 2187 MachineOperatorBuilder::AlignmentRequirements
2200 InstructionSelector::AlignmentRequirements() { 2188 InstructionSelector::AlignmentRequirements() {
2201 return MachineOperatorBuilder::AlignmentRequirements:: 2189 return MachineOperatorBuilder::AlignmentRequirements::
2202 FullUnalignedAccessSupport(); 2190 FullUnalignedAccessSupport();
2203 } 2191 }
2204 2192
2205 } // namespace compiler 2193 } // namespace compiler
2206 } // namespace internal 2194 } // namespace internal
2207 } // namespace v8 2195 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/opcodes.h ('k') | src/compiler/register-allocator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698