| OLD | NEW |
| 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/compiler/instruction-selector-unittest.h" | 5 #include "src/compiler/instruction-selector-unittest.h" |
| 6 #include "src/compiler/node-matchers.h" | 6 #include "src/compiler/node-matchers.h" |
| 7 | 7 |
| 8 namespace v8 { | 8 namespace v8 { |
| 9 namespace internal { | 9 namespace internal { |
| 10 namespace compiler { | 10 namespace compiler { |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 namespace { | 101 namespace { |
| 102 | 102 |
| 103 struct MemoryAccess { | 103 struct MemoryAccess { |
| 104 MachineType type; | 104 MachineType type; |
| 105 ArchOpcode load_opcode; | 105 ArchOpcode load_opcode; |
| 106 ArchOpcode store_opcode; | 106 ArchOpcode store_opcode; |
| 107 }; | 107 }; |
| 108 | 108 |
| 109 | 109 |
| 110 std::ostream& operator<<(std::ostream& os, const MemoryAccess& memacc) { | 110 std::ostream& operator<<(std::ostream& os, const MemoryAccess& memacc) { |
| 111 OStringStream ost; | 111 return os << memacc.type; |
| 112 ost << memacc.type; | |
| 113 return os << ost.c_str(); | |
| 114 } | 112 } |
| 115 | 113 |
| 116 | 114 |
| 117 static const MemoryAccess kMemoryAccesses[] = { | 115 static const MemoryAccess kMemoryAccesses[] = { |
| 118 {kMachInt8, kX64Movsxbl, kX64Movb}, | 116 {kMachInt8, kX64Movsxbl, kX64Movb}, |
| 119 {kMachUint8, kX64Movzxbl, kX64Movb}, | 117 {kMachUint8, kX64Movzxbl, kX64Movb}, |
| 120 {kMachInt16, kX64Movsxwl, kX64Movw}, | 118 {kMachInt16, kX64Movsxwl, kX64Movw}, |
| 121 {kMachUint16, kX64Movzxwl, kX64Movw}, | 119 {kMachUint16, kX64Movzxwl, kX64Movw}, |
| 122 {kMachInt32, kX64Movl, kX64Movl}, | 120 {kMachInt32, kX64Movl, kX64Movl}, |
| 123 {kMachUint32, kX64Movl, kX64Movl}, | 121 {kMachUint32, kX64Movl, kX64Movl}, |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 296 namespace { | 294 namespace { |
| 297 | 295 |
| 298 struct MultParam { | 296 struct MultParam { |
| 299 int value; | 297 int value; |
| 300 bool lea_expected; | 298 bool lea_expected; |
| 301 AddressingMode addressing_mode; | 299 AddressingMode addressing_mode; |
| 302 }; | 300 }; |
| 303 | 301 |
| 304 | 302 |
| 305 std::ostream& operator<<(std::ostream& os, const MultParam& m) { | 303 std::ostream& operator<<(std::ostream& os, const MultParam& m) { |
| 306 OStringStream ost; | 304 return os << m.value << "." << m.lea_expected << "." << m.addressing_mode; |
| 307 ost << m.value << "." << m.lea_expected << "." << m.addressing_mode; | |
| 308 return os << ost.c_str(); | |
| 309 } | 305 } |
| 310 | 306 |
| 311 | 307 |
| 312 const MultParam kMultParams[] = {{-1, false, kMode_None}, | 308 const MultParam kMultParams[] = {{-1, false, kMode_None}, |
| 313 {0, false, kMode_None}, | 309 {0, false, kMode_None}, |
| 314 {1, true, kMode_M1}, | 310 {1, true, kMode_M1}, |
| 315 {2, true, kMode_M2}, | 311 {2, true, kMode_M2}, |
| 316 {3, true, kMode_MR2}, | 312 {3, true, kMode_MR2}, |
| 317 {4, true, kMode_M4}, | 313 {4, true, kMode_M4}, |
| 318 {5, true, kMode_MR4}, | 314 {5, true, kMode_MR4}, |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 389 } | 385 } |
| 390 } | 386 } |
| 391 | 387 |
| 392 | 388 |
| 393 INSTANTIATE_TEST_CASE_P(InstructionSelectorTest, InstructionSelectorMultTest, | 389 INSTANTIATE_TEST_CASE_P(InstructionSelectorTest, InstructionSelectorMultTest, |
| 394 ::testing::ValuesIn(kMultParams)); | 390 ::testing::ValuesIn(kMultParams)); |
| 395 | 391 |
| 396 } // namespace compiler | 392 } // namespace compiler |
| 397 } // namespace internal | 393 } // namespace internal |
| 398 } // namespace v8 | 394 } // namespace v8 |
| OLD | NEW |