| 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/base/adapters.h" | 5 #include "src/base/adapters.h" |
| 6 #include "src/base/bits.h" | 6 #include "src/base/bits.h" |
| 7 #include "src/compiler/instruction-selector-impl.h" | 7 #include "src/compiler/instruction-selector-impl.h" |
| 8 #include "src/compiler/node-matchers.h" | 8 #include "src/compiler/node-matchers.h" |
| 9 #include "src/compiler/node-properties.h" | 9 #include "src/compiler/node-properties.h" |
| 10 | 10 |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 case MachineRepresentation::kBit: // Fall through. | 160 case MachineRepresentation::kBit: // Fall through. |
| 161 case MachineRepresentation::kWord8: | 161 case MachineRepresentation::kWord8: |
| 162 opcode = load_rep.IsUnsigned() ? kMips64Lbu : kMips64Lb; | 162 opcode = load_rep.IsUnsigned() ? kMips64Lbu : kMips64Lb; |
| 163 break; | 163 break; |
| 164 case MachineRepresentation::kWord16: | 164 case MachineRepresentation::kWord16: |
| 165 opcode = load_rep.IsUnsigned() ? kMips64Lhu : kMips64Lh; | 165 opcode = load_rep.IsUnsigned() ? kMips64Lhu : kMips64Lh; |
| 166 break; | 166 break; |
| 167 case MachineRepresentation::kWord32: | 167 case MachineRepresentation::kWord32: |
| 168 opcode = load_rep.IsUnsigned() ? kMips64Lwu : kMips64Lw; | 168 opcode = load_rep.IsUnsigned() ? kMips64Lwu : kMips64Lw; |
| 169 break; | 169 break; |
| 170 case MachineRepresentation::kTaggedSigned: // Fall through. |
| 171 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 170 case MachineRepresentation::kTagged: // Fall through. | 172 case MachineRepresentation::kTagged: // Fall through. |
| 171 case MachineRepresentation::kWord64: | 173 case MachineRepresentation::kWord64: |
| 172 opcode = kMips64Ld; | 174 opcode = kMips64Ld; |
| 173 break; | 175 break; |
| 174 case MachineRepresentation::kSimd128: // Fall through. | 176 case MachineRepresentation::kSimd128: // Fall through. |
| 175 case MachineRepresentation::kNone: | 177 case MachineRepresentation::kNone: |
| 176 UNREACHABLE(); | 178 UNREACHABLE(); |
| 177 return; | 179 return; |
| 178 } | 180 } |
| 179 | 181 |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 case MachineRepresentation::kBit: // Fall through. | 243 case MachineRepresentation::kBit: // Fall through. |
| 242 case MachineRepresentation::kWord8: | 244 case MachineRepresentation::kWord8: |
| 243 opcode = kMips64Sb; | 245 opcode = kMips64Sb; |
| 244 break; | 246 break; |
| 245 case MachineRepresentation::kWord16: | 247 case MachineRepresentation::kWord16: |
| 246 opcode = kMips64Sh; | 248 opcode = kMips64Sh; |
| 247 break; | 249 break; |
| 248 case MachineRepresentation::kWord32: | 250 case MachineRepresentation::kWord32: |
| 249 opcode = kMips64Sw; | 251 opcode = kMips64Sw; |
| 250 break; | 252 break; |
| 253 case MachineRepresentation::kTaggedSigned: // Fall through. |
| 254 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 251 case MachineRepresentation::kTagged: // Fall through. | 255 case MachineRepresentation::kTagged: // Fall through. |
| 252 case MachineRepresentation::kWord64: | 256 case MachineRepresentation::kWord64: |
| 253 opcode = kMips64Sd; | 257 opcode = kMips64Sd; |
| 254 break; | 258 break; |
| 255 case MachineRepresentation::kSimd128: // Fall through. | 259 case MachineRepresentation::kSimd128: // Fall through. |
| 256 case MachineRepresentation::kNone: | 260 case MachineRepresentation::kNone: |
| 257 UNREACHABLE(); | 261 UNREACHABLE(); |
| 258 return; | 262 return; |
| 259 } | 263 } |
| 260 | 264 |
| (...skipping 1097 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1358 case MachineRepresentation::kBit: // Fall through. | 1362 case MachineRepresentation::kBit: // Fall through. |
| 1359 case MachineRepresentation::kWord8: | 1363 case MachineRepresentation::kWord8: |
| 1360 UNREACHABLE(); | 1364 UNREACHABLE(); |
| 1361 break; | 1365 break; |
| 1362 case MachineRepresentation::kWord16: | 1366 case MachineRepresentation::kWord16: |
| 1363 opcode = load_rep.IsUnsigned() ? kMips64Ulhu : kMips64Ulh; | 1367 opcode = load_rep.IsUnsigned() ? kMips64Ulhu : kMips64Ulh; |
| 1364 break; | 1368 break; |
| 1365 case MachineRepresentation::kWord32: | 1369 case MachineRepresentation::kWord32: |
| 1366 opcode = load_rep.IsUnsigned() ? kMips64Ulwu : kMips64Ulw; | 1370 opcode = load_rep.IsUnsigned() ? kMips64Ulwu : kMips64Ulw; |
| 1367 break; | 1371 break; |
| 1372 case MachineRepresentation::kTaggedSigned: // Fall through. |
| 1373 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 1368 case MachineRepresentation::kTagged: // Fall through. | 1374 case MachineRepresentation::kTagged: // Fall through. |
| 1369 case MachineRepresentation::kWord64: | 1375 case MachineRepresentation::kWord64: |
| 1370 opcode = kMips64Uld; | 1376 opcode = kMips64Uld; |
| 1371 break; | 1377 break; |
| 1372 case MachineRepresentation::kSimd128: // Fall through. | 1378 case MachineRepresentation::kSimd128: // Fall through. |
| 1373 case MachineRepresentation::kNone: | 1379 case MachineRepresentation::kNone: |
| 1374 UNREACHABLE(); | 1380 UNREACHABLE(); |
| 1375 return; | 1381 return; |
| 1376 } | 1382 } |
| 1377 | 1383 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 1406 case MachineRepresentation::kBit: // Fall through. | 1412 case MachineRepresentation::kBit: // Fall through. |
| 1407 case MachineRepresentation::kWord8: | 1413 case MachineRepresentation::kWord8: |
| 1408 UNREACHABLE(); | 1414 UNREACHABLE(); |
| 1409 break; | 1415 break; |
| 1410 case MachineRepresentation::kWord16: | 1416 case MachineRepresentation::kWord16: |
| 1411 opcode = kMips64Ush; | 1417 opcode = kMips64Ush; |
| 1412 break; | 1418 break; |
| 1413 case MachineRepresentation::kWord32: | 1419 case MachineRepresentation::kWord32: |
| 1414 opcode = kMips64Usw; | 1420 opcode = kMips64Usw; |
| 1415 break; | 1421 break; |
| 1422 case MachineRepresentation::kTaggedSigned: // Fall through. |
| 1423 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 1416 case MachineRepresentation::kTagged: // Fall through. | 1424 case MachineRepresentation::kTagged: // Fall through. |
| 1417 case MachineRepresentation::kWord64: | 1425 case MachineRepresentation::kWord64: |
| 1418 opcode = kMips64Usd; | 1426 opcode = kMips64Usd; |
| 1419 break; | 1427 break; |
| 1420 case MachineRepresentation::kSimd128: // Fall through. | 1428 case MachineRepresentation::kSimd128: // Fall through. |
| 1421 case MachineRepresentation::kNone: | 1429 case MachineRepresentation::kNone: |
| 1422 UNREACHABLE(); | 1430 UNREACHABLE(); |
| 1423 return; | 1431 return; |
| 1424 } | 1432 } |
| 1425 | 1433 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 1456 case MachineRepresentation::kWord64: | 1464 case MachineRepresentation::kWord64: |
| 1457 opcode = kCheckedLoadWord64; | 1465 opcode = kCheckedLoadWord64; |
| 1458 break; | 1466 break; |
| 1459 case MachineRepresentation::kFloat32: | 1467 case MachineRepresentation::kFloat32: |
| 1460 opcode = kCheckedLoadFloat32; | 1468 opcode = kCheckedLoadFloat32; |
| 1461 break; | 1469 break; |
| 1462 case MachineRepresentation::kFloat64: | 1470 case MachineRepresentation::kFloat64: |
| 1463 opcode = kCheckedLoadFloat64; | 1471 opcode = kCheckedLoadFloat64; |
| 1464 break; | 1472 break; |
| 1465 case MachineRepresentation::kBit: | 1473 case MachineRepresentation::kBit: |
| 1474 case MachineRepresentation::kTaggedSigned: // Fall through. |
| 1475 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 1466 case MachineRepresentation::kTagged: | 1476 case MachineRepresentation::kTagged: |
| 1467 case MachineRepresentation::kSimd128: | 1477 case MachineRepresentation::kSimd128: |
| 1468 case MachineRepresentation::kNone: | 1478 case MachineRepresentation::kNone: |
| 1469 UNREACHABLE(); | 1479 UNREACHABLE(); |
| 1470 return; | 1480 return; |
| 1471 } | 1481 } |
| 1472 InstructionOperand offset_operand = g.CanBeImmediate(offset, opcode) | 1482 InstructionOperand offset_operand = g.CanBeImmediate(offset, opcode) |
| 1473 ? g.UseImmediate(offset) | 1483 ? g.UseImmediate(offset) |
| 1474 : g.UseRegister(offset); | 1484 : g.UseRegister(offset); |
| 1475 | 1485 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 1506 case MachineRepresentation::kWord64: | 1516 case MachineRepresentation::kWord64: |
| 1507 opcode = kCheckedStoreWord64; | 1517 opcode = kCheckedStoreWord64; |
| 1508 break; | 1518 break; |
| 1509 case MachineRepresentation::kFloat32: | 1519 case MachineRepresentation::kFloat32: |
| 1510 opcode = kCheckedStoreFloat32; | 1520 opcode = kCheckedStoreFloat32; |
| 1511 break; | 1521 break; |
| 1512 case MachineRepresentation::kFloat64: | 1522 case MachineRepresentation::kFloat64: |
| 1513 opcode = kCheckedStoreFloat64; | 1523 opcode = kCheckedStoreFloat64; |
| 1514 break; | 1524 break; |
| 1515 case MachineRepresentation::kBit: | 1525 case MachineRepresentation::kBit: |
| 1526 case MachineRepresentation::kTaggedSigned: // Fall through. |
| 1527 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 1516 case MachineRepresentation::kTagged: | 1528 case MachineRepresentation::kTagged: |
| 1517 case MachineRepresentation::kSimd128: | 1529 case MachineRepresentation::kSimd128: |
| 1518 case MachineRepresentation::kNone: | 1530 case MachineRepresentation::kNone: |
| 1519 UNREACHABLE(); | 1531 UNREACHABLE(); |
| 1520 return; | 1532 return; |
| 1521 } | 1533 } |
| 1522 InstructionOperand offset_operand = g.CanBeImmediate(offset, opcode) | 1534 InstructionOperand offset_operand = g.CanBeImmediate(offset, opcode) |
| 1523 ? g.UseImmediate(offset) | 1535 ? g.UseImmediate(offset) |
| 1524 : g.UseRegister(offset); | 1536 : g.UseRegister(offset); |
| 1525 | 1537 |
| (...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2137 } else { | 2149 } else { |
| 2138 DCHECK(kArchVariant == kMips64r2); | 2150 DCHECK(kArchVariant == kMips64r2); |
| 2139 return MachineOperatorBuilder::AlignmentRequirements:: | 2151 return MachineOperatorBuilder::AlignmentRequirements:: |
| 2140 NoUnalignedAccessSupport(); | 2152 NoUnalignedAccessSupport(); |
| 2141 } | 2153 } |
| 2142 } | 2154 } |
| 2143 | 2155 |
| 2144 } // namespace compiler | 2156 } // namespace compiler |
| 2145 } // namespace internal | 2157 } // namespace internal |
| 2146 } // namespace v8 | 2158 } // namespace v8 |
| OLD | NEW |