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 |