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

Side by Side Diff: src/compiler/mips64/code-generator-mips64.cc

Issue 1578723002: [turbofan] Build s/NULL/nullptr/g and CHECK(x != nullptr) to CHECK_NOT_NULL(x). (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 11 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
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/ast/scopes.h" 5 #include "src/ast/scopes.h"
6 #include "src/compiler/code-generator.h" 6 #include "src/compiler/code-generator.h"
7 #include "src/compiler/code-generator-impl.h" 7 #include "src/compiler/code-generator-impl.h"
8 #include "src/compiler/gap-resolver.h" 8 #include "src/compiler/gap-resolver.h"
9 #include "src/compiler/node-matchers.h" 9 #include "src/compiler/node-matchers.h"
10 #include "src/compiler/osr.h" 10 #include "src/compiler/osr.h"
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 // TODO(plind): r6 address mode, to be implemented ... 111 // TODO(plind): r6 address mode, to be implemented ...
112 UNREACHABLE(); 112 UNREACHABLE();
113 } 113 }
114 UNREACHABLE(); 114 UNREACHABLE();
115 return MemOperand(no_reg); 115 return MemOperand(no_reg);
116 } 116 }
117 117
118 MemOperand MemoryOperand(size_t index = 0) { return MemoryOperand(&index); } 118 MemOperand MemoryOperand(size_t index = 0) { return MemoryOperand(&index); }
119 119
120 MemOperand ToMemOperand(InstructionOperand* op) const { 120 MemOperand ToMemOperand(InstructionOperand* op) const {
121 DCHECK(op != NULL); 121 DCHECK_NOT_NULL(op);
122 DCHECK(op->IsStackSlot() || op->IsDoubleStackSlot()); 122 DCHECK(op->IsStackSlot() || op->IsDoubleStackSlot());
123 FrameOffset offset = frame_access_state()->GetFrameOffset( 123 FrameOffset offset = frame_access_state()->GetFrameOffset(
124 AllocatedOperand::cast(op)->index()); 124 AllocatedOperand::cast(op)->index());
125 return MemOperand(offset.from_stack_pointer() ? sp : fp, offset.offset()); 125 return MemOperand(offset.from_stack_pointer() ? sp : fp, offset.offset());
126 } 126 }
127 }; 127 };
128 128
129 129
130 static inline bool HasRegisterInput(Instruction* instr, size_t index) { 130 static inline bool HasRegisterInput(Instruction* instr, size_t index) {
131 return instr->InputAt(index)->IsRegister(); 131 return instr->InputAt(index)->IsRegister();
(...skipping 1308 matching lines...) Expand 10 before | Expand all | Expand 10 after
1440 } else if (instr->arch_opcode() == kMips64CmpS) { 1440 } else if (instr->arch_opcode() == kMips64CmpS) {
1441 if (!convertCondition(branch->condition, cc)) { 1441 if (!convertCondition(branch->condition, cc)) {
1442 UNSUPPORTED_COND(kMips64CmpS, branch->condition); 1442 UNSUPPORTED_COND(kMips64CmpS, branch->condition);
1443 } 1443 }
1444 FPURegister left = i.InputOrZeroSingleRegister(0); 1444 FPURegister left = i.InputOrZeroSingleRegister(0);
1445 FPURegister right = i.InputOrZeroSingleRegister(1); 1445 FPURegister right = i.InputOrZeroSingleRegister(1);
1446 if ((left.is(kDoubleRegZero) || right.is(kDoubleRegZero)) && 1446 if ((left.is(kDoubleRegZero) || right.is(kDoubleRegZero)) &&
1447 !__ IsDoubleZeroRegSet()) { 1447 !__ IsDoubleZeroRegSet()) {
1448 __ Move(kDoubleRegZero, 0.0); 1448 __ Move(kDoubleRegZero, 0.0);
1449 } 1449 }
1450 __ BranchF32(tlabel, NULL, cc, left, right); 1450 __ BranchF32(tlabel, nullptr, cc, left, right);
1451 } else if (instr->arch_opcode() == kMips64CmpD) { 1451 } else if (instr->arch_opcode() == kMips64CmpD) {
1452 if (!convertCondition(branch->condition, cc)) { 1452 if (!convertCondition(branch->condition, cc)) {
1453 UNSUPPORTED_COND(kMips64CmpD, branch->condition); 1453 UNSUPPORTED_COND(kMips64CmpD, branch->condition);
1454 } 1454 }
1455 FPURegister left = i.InputOrZeroDoubleRegister(0); 1455 FPURegister left = i.InputOrZeroDoubleRegister(0);
1456 FPURegister right = i.InputOrZeroDoubleRegister(1); 1456 FPURegister right = i.InputOrZeroDoubleRegister(1);
1457 if ((left.is(kDoubleRegZero) || right.is(kDoubleRegZero)) && 1457 if ((left.is(kDoubleRegZero) || right.is(kDoubleRegZero)) &&
1458 !__ IsDoubleZeroRegSet()) { 1458 !__ IsDoubleZeroRegSet()) {
1459 __ Move(kDoubleRegZero, 0.0); 1459 __ Move(kDoubleRegZero, 0.0);
1460 } 1460 }
1461 __ BranchF64(tlabel, NULL, cc, left, right); 1461 __ BranchF64(tlabel, nullptr, cc, left, right);
1462 } else { 1462 } else {
1463 PrintF("AssembleArchBranch Unimplemented arch_opcode: %d\n", 1463 PrintF("AssembleArchBranch Unimplemented arch_opcode: %d\n",
1464 instr->arch_opcode()); 1464 instr->arch_opcode());
1465 UNIMPLEMENTED(); 1465 UNIMPLEMENTED();
1466 } 1466 }
1467 if (!branch->fallthru) __ Branch(flabel); // no fallthru to flabel. 1467 if (!branch->fallthru) __ Branch(flabel); // no fallthru to flabel.
1468 } 1468 }
1469 1469
1470 1470
1471 void CodeGenerator::AssembleArchJump(RpoNumber target) { 1471 void CodeGenerator::AssembleArchJump(RpoNumber target) {
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
1771 if (pop_count != 0) { 1771 if (pop_count != 0) {
1772 __ DropAndRet(pop_count); 1772 __ DropAndRet(pop_count);
1773 } else { 1773 } else {
1774 __ Ret(); 1774 __ Ret();
1775 } 1775 }
1776 } 1776 }
1777 1777
1778 1778
1779 void CodeGenerator::AssembleMove(InstructionOperand* source, 1779 void CodeGenerator::AssembleMove(InstructionOperand* source,
1780 InstructionOperand* destination) { 1780 InstructionOperand* destination) {
1781 MipsOperandConverter g(this, NULL); 1781 MipsOperandConverter g(this, nullptr);
1782 // Dispatch on the source and destination operand kinds. Not all 1782 // Dispatch on the source and destination operand kinds. Not all
1783 // combinations are possible. 1783 // combinations are possible.
1784 if (source->IsRegister()) { 1784 if (source->IsRegister()) {
1785 DCHECK(destination->IsRegister() || destination->IsStackSlot()); 1785 DCHECK(destination->IsRegister() || destination->IsStackSlot());
1786 Register src = g.ToRegister(source); 1786 Register src = g.ToRegister(source);
1787 if (destination->IsRegister()) { 1787 if (destination->IsRegister()) {
1788 __ mov(g.ToRegister(destination), src); 1788 __ mov(g.ToRegister(destination), src);
1789 } else { 1789 } else {
1790 __ sd(src, g.ToMemOperand(destination)); 1790 __ sd(src, g.ToMemOperand(destination));
1791 } 1791 }
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1877 __ sdc1(temp, g.ToMemOperand(destination)); 1877 __ sdc1(temp, g.ToMemOperand(destination));
1878 } 1878 }
1879 } else { 1879 } else {
1880 UNREACHABLE(); 1880 UNREACHABLE();
1881 } 1881 }
1882 } 1882 }
1883 1883
1884 1884
1885 void CodeGenerator::AssembleSwap(InstructionOperand* source, 1885 void CodeGenerator::AssembleSwap(InstructionOperand* source,
1886 InstructionOperand* destination) { 1886 InstructionOperand* destination) {
1887 MipsOperandConverter g(this, NULL); 1887 MipsOperandConverter g(this, nullptr);
1888 // Dispatch on the source and destination operand kinds. Not all 1888 // Dispatch on the source and destination operand kinds. Not all
1889 // combinations are possible. 1889 // combinations are possible.
1890 if (source->IsRegister()) { 1890 if (source->IsRegister()) {
1891 // Register-register. 1891 // Register-register.
1892 Register temp = kScratchReg; 1892 Register temp = kScratchReg;
1893 Register src = g.ToRegister(source); 1893 Register src = g.ToRegister(source);
1894 if (destination->IsRegister()) { 1894 if (destination->IsRegister()) {
1895 Register dst = g.ToRegister(destination); 1895 Register dst = g.ToRegister(destination);
1896 __ Move(temp, src); 1896 __ Move(temp, src);
1897 __ Move(src, dst); 1897 __ Move(src, dst);
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
1982 padding_size -= v8::internal::Assembler::kInstrSize; 1982 padding_size -= v8::internal::Assembler::kInstrSize;
1983 } 1983 }
1984 } 1984 }
1985 } 1985 }
1986 1986
1987 #undef __ 1987 #undef __
1988 1988
1989 } // namespace compiler 1989 } // namespace compiler
1990 } // namespace internal 1990 } // namespace internal
1991 } // namespace v8 1991 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/mips/instruction-selector-mips.cc ('k') | src/compiler/mips64/instruction-selector-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698