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

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

Issue 1420273006: AIX: Fix 'may be used uninitialized' compiler errors (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 1 month 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 | « no previous file | src/layout-descriptor-inl.h » ('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 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 *me = mask_lsb; 410 *me = mask_lsb;
411 return true; 411 return true;
412 } 412 }
413 #endif 413 #endif
414 414
415 415
416 // TODO(mbrandy): Absorb rotate-right into rlwinm? 416 // TODO(mbrandy): Absorb rotate-right into rlwinm?
417 void InstructionSelector::VisitWord32And(Node* node) { 417 void InstructionSelector::VisitWord32And(Node* node) {
418 PPCOperandGenerator g(this); 418 PPCOperandGenerator g(this);
419 Int32BinopMatcher m(node); 419 Int32BinopMatcher m(node);
420 int mb; 420 int mb = 0;
421 int me; 421 int me = 0;
422 if (m.right().HasValue() && IsContiguousMask32(m.right().Value(), &mb, &me)) { 422 if (m.right().HasValue() && IsContiguousMask32(m.right().Value(), &mb, &me)) {
423 int sh = 0; 423 int sh = 0;
424 Node* left = m.left().node(); 424 Node* left = m.left().node();
425 if ((m.left().IsWord32Shr() || m.left().IsWord32Shl()) && 425 if ((m.left().IsWord32Shr() || m.left().IsWord32Shl()) &&
426 CanCover(node, left)) { 426 CanCover(node, left)) {
427 // Try to absorb left/right shift into rlwinm 427 // Try to absorb left/right shift into rlwinm
428 Int32BinopMatcher mleft(m.left().node()); 428 Int32BinopMatcher mleft(m.left().node());
429 if (mleft.right().IsInRange(0, 31)) { 429 if (mleft.right().IsInRange(0, 31)) {
430 left = mleft.left().node(); 430 left = mleft.left().node();
431 sh = mleft.right().Value(); 431 sh = mleft.right().Value();
(...skipping 17 matching lines...) Expand all
449 this, node, &m, kPPC_And, CanCover(node, m.left().node()), 449 this, node, &m, kPPC_And, CanCover(node, m.left().node()),
450 CanCover(node, m.right().node()), kInt16Imm_Unsigned); 450 CanCover(node, m.right().node()), kInt16Imm_Unsigned);
451 } 451 }
452 452
453 453
454 #if V8_TARGET_ARCH_PPC64 454 #if V8_TARGET_ARCH_PPC64
455 // TODO(mbrandy): Absorb rotate-right into rldic? 455 // TODO(mbrandy): Absorb rotate-right into rldic?
456 void InstructionSelector::VisitWord64And(Node* node) { 456 void InstructionSelector::VisitWord64And(Node* node) {
457 PPCOperandGenerator g(this); 457 PPCOperandGenerator g(this);
458 Int64BinopMatcher m(node); 458 Int64BinopMatcher m(node);
459 int mb; 459 int mb = 0;
460 int me; 460 int me = 0;
461 if (m.right().HasValue() && IsContiguousMask64(m.right().Value(), &mb, &me)) { 461 if (m.right().HasValue() && IsContiguousMask64(m.right().Value(), &mb, &me)) {
462 int sh = 0; 462 int sh = 0;
463 Node* left = m.left().node(); 463 Node* left = m.left().node();
464 if ((m.left().IsWord64Shr() || m.left().IsWord64Shl()) && 464 if ((m.left().IsWord64Shr() || m.left().IsWord64Shl()) &&
465 CanCover(node, left)) { 465 CanCover(node, left)) {
466 // Try to absorb left/right shift into rldic 466 // Try to absorb left/right shift into rldic
467 Int64BinopMatcher mleft(m.left().node()); 467 Int64BinopMatcher mleft(m.left().node());
468 if (mleft.right().IsInRange(0, 63)) { 468 if (mleft.right().IsInRange(0, 63)) {
469 left = mleft.left().node(); 469 left = mleft.left().node();
470 sh = mleft.right().Value(); 470 sh = mleft.right().Value();
(...skipping 1105 matching lines...) Expand 10 before | Expand all | Expand 10 after
1576 return MachineOperatorBuilder::kFloat64RoundDown | 1576 return MachineOperatorBuilder::kFloat64RoundDown |
1577 MachineOperatorBuilder::kFloat64RoundTruncate | 1577 MachineOperatorBuilder::kFloat64RoundTruncate |
1578 MachineOperatorBuilder::kFloat64RoundTiesAway | 1578 MachineOperatorBuilder::kFloat64RoundTiesAway |
1579 MachineOperatorBuilder::kWord32Popcnt; 1579 MachineOperatorBuilder::kWord32Popcnt;
1580 // We omit kWord32ShiftIsSafe as s[rl]w use 0x3f as a mask rather than 0x1f. 1580 // We omit kWord32ShiftIsSafe as s[rl]w use 0x3f as a mask rather than 0x1f.
1581 } 1581 }
1582 1582
1583 } // namespace compiler 1583 } // namespace compiler
1584 } // namespace internal 1584 } // namespace internal
1585 } // namespace v8 1585 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/layout-descriptor-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698