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

Side by Side Diff: src/compiler/mips/code-generator-mips.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 1082 matching lines...) Expand 10 before | Expand all | Expand 10 after
1214 } else if (instr->arch_opcode() == kMipsCmpS) { 1214 } else if (instr->arch_opcode() == kMipsCmpS) {
1215 if (!convertCondition(branch->condition, cc)) { 1215 if (!convertCondition(branch->condition, cc)) {
1216 UNSUPPORTED_COND(kMips64CmpS, branch->condition); 1216 UNSUPPORTED_COND(kMips64CmpS, branch->condition);
1217 } 1217 }
1218 FPURegister left = i.InputOrZeroSingleRegister(0); 1218 FPURegister left = i.InputOrZeroSingleRegister(0);
1219 FPURegister right = i.InputOrZeroSingleRegister(1); 1219 FPURegister right = i.InputOrZeroSingleRegister(1);
1220 if ((left.is(kDoubleRegZero) || right.is(kDoubleRegZero)) && 1220 if ((left.is(kDoubleRegZero) || right.is(kDoubleRegZero)) &&
1221 !__ IsDoubleZeroRegSet()) { 1221 !__ IsDoubleZeroRegSet()) {
1222 __ Move(kDoubleRegZero, 0.0); 1222 __ Move(kDoubleRegZero, 0.0);
1223 } 1223 }
1224 __ BranchF32(tlabel, NULL, cc, left, right); 1224 __ BranchF32(tlabel, nullptr, cc, left, right);
1225 } else if (instr->arch_opcode() == kMipsCmpD) { 1225 } else if (instr->arch_opcode() == kMipsCmpD) {
1226 if (!convertCondition(branch->condition, cc)) { 1226 if (!convertCondition(branch->condition, cc)) {
1227 UNSUPPORTED_COND(kMips64CmpD, branch->condition); 1227 UNSUPPORTED_COND(kMips64CmpD, branch->condition);
1228 } 1228 }
1229 FPURegister left = i.InputOrZeroDoubleRegister(0); 1229 FPURegister left = i.InputOrZeroDoubleRegister(0);
1230 FPURegister right = i.InputOrZeroDoubleRegister(1); 1230 FPURegister right = i.InputOrZeroDoubleRegister(1);
1231 if ((left.is(kDoubleRegZero) || right.is(kDoubleRegZero)) && 1231 if ((left.is(kDoubleRegZero) || right.is(kDoubleRegZero)) &&
1232 !__ IsDoubleZeroRegSet()) { 1232 !__ IsDoubleZeroRegSet()) {
1233 __ Move(kDoubleRegZero, 0.0); 1233 __ Move(kDoubleRegZero, 0.0);
1234 } 1234 }
1235 __ BranchF64(tlabel, NULL, cc, left, right); 1235 __ BranchF64(tlabel, nullptr, cc, left, right);
1236 } else { 1236 } else {
1237 PrintF("AssembleArchBranch Unimplemented arch_opcode: %d\n", 1237 PrintF("AssembleArchBranch Unimplemented arch_opcode: %d\n",
1238 instr->arch_opcode()); 1238 instr->arch_opcode());
1239 UNIMPLEMENTED(); 1239 UNIMPLEMENTED();
1240 } 1240 }
1241 if (!branch->fallthru) __ Branch(flabel); // no fallthru to flabel. 1241 if (!branch->fallthru) __ Branch(flabel); // no fallthru to flabel.
1242 } 1242 }
1243 1243
1244 1244
1245 void CodeGenerator::AssembleArchJump(RpoNumber target) { 1245 void CodeGenerator::AssembleArchJump(RpoNumber target) {
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
1534 if (pop_count != 0) { 1534 if (pop_count != 0) {
1535 __ DropAndRet(pop_count); 1535 __ DropAndRet(pop_count);
1536 } else { 1536 } else {
1537 __ Ret(); 1537 __ Ret();
1538 } 1538 }
1539 } 1539 }
1540 1540
1541 1541
1542 void CodeGenerator::AssembleMove(InstructionOperand* source, 1542 void CodeGenerator::AssembleMove(InstructionOperand* source,
1543 InstructionOperand* destination) { 1543 InstructionOperand* destination) {
1544 MipsOperandConverter g(this, NULL); 1544 MipsOperandConverter g(this, nullptr);
1545 // Dispatch on the source and destination operand kinds. Not all 1545 // Dispatch on the source and destination operand kinds. Not all
1546 // combinations are possible. 1546 // combinations are possible.
1547 if (source->IsRegister()) { 1547 if (source->IsRegister()) {
1548 DCHECK(destination->IsRegister() || destination->IsStackSlot()); 1548 DCHECK(destination->IsRegister() || destination->IsStackSlot());
1549 Register src = g.ToRegister(source); 1549 Register src = g.ToRegister(source);
1550 if (destination->IsRegister()) { 1550 if (destination->IsRegister()) {
1551 __ mov(g.ToRegister(destination), src); 1551 __ mov(g.ToRegister(destination), src);
1552 } else { 1552 } else {
1553 __ sw(src, g.ToMemOperand(destination)); 1553 __ sw(src, g.ToMemOperand(destination));
1554 } 1554 }
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1640 __ sdc1(temp, g.ToMemOperand(destination)); 1640 __ sdc1(temp, g.ToMemOperand(destination));
1641 } 1641 }
1642 } else { 1642 } else {
1643 UNREACHABLE(); 1643 UNREACHABLE();
1644 } 1644 }
1645 } 1645 }
1646 1646
1647 1647
1648 void CodeGenerator::AssembleSwap(InstructionOperand* source, 1648 void CodeGenerator::AssembleSwap(InstructionOperand* source,
1649 InstructionOperand* destination) { 1649 InstructionOperand* destination) {
1650 MipsOperandConverter g(this, NULL); 1650 MipsOperandConverter g(this, nullptr);
1651 // Dispatch on the source and destination operand kinds. Not all 1651 // Dispatch on the source and destination operand kinds. Not all
1652 // combinations are possible. 1652 // combinations are possible.
1653 if (source->IsRegister()) { 1653 if (source->IsRegister()) {
1654 // Register-register. 1654 // Register-register.
1655 Register temp = kScratchReg; 1655 Register temp = kScratchReg;
1656 Register src = g.ToRegister(source); 1656 Register src = g.ToRegister(source);
1657 if (destination->IsRegister()) { 1657 if (destination->IsRegister()) {
1658 Register dst = g.ToRegister(destination); 1658 Register dst = g.ToRegister(destination);
1659 __ Move(temp, src); 1659 __ Move(temp, src);
1660 __ Move(src, dst); 1660 __ Move(src, dst);
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
1745 padding_size -= v8::internal::Assembler::kInstrSize; 1745 padding_size -= v8::internal::Assembler::kInstrSize;
1746 } 1746 }
1747 } 1747 }
1748 } 1748 }
1749 1749
1750 #undef __ 1750 #undef __
1751 1751
1752 } // namespace compiler 1752 } // namespace compiler
1753 } // namespace internal 1753 } // namespace internal
1754 } // namespace v8 1754 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/machine-operator-reducer.cc ('k') | src/compiler/mips/instruction-selector-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698