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/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 1430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1441 break; | 1441 break; |
1442 case kMips64Lb: | 1442 case kMips64Lb: |
1443 __ lb(i.OutputRegister(), i.MemoryOperand()); | 1443 __ lb(i.OutputRegister(), i.MemoryOperand()); |
1444 break; | 1444 break; |
1445 case kMips64Sb: | 1445 case kMips64Sb: |
1446 __ sb(i.InputRegister(2), i.MemoryOperand()); | 1446 __ sb(i.InputRegister(2), i.MemoryOperand()); |
1447 break; | 1447 break; |
1448 case kMips64Lhu: | 1448 case kMips64Lhu: |
1449 __ lhu(i.OutputRegister(), i.MemoryOperand()); | 1449 __ lhu(i.OutputRegister(), i.MemoryOperand()); |
1450 break; | 1450 break; |
| 1451 case kMips64Ulhu: |
| 1452 __ Ulhu(i.OutputRegister(), i.MemoryOperand()); |
| 1453 break; |
1451 case kMips64Lh: | 1454 case kMips64Lh: |
1452 __ lh(i.OutputRegister(), i.MemoryOperand()); | 1455 __ lh(i.OutputRegister(), i.MemoryOperand()); |
1453 break; | 1456 break; |
| 1457 case kMips64Ulh: |
| 1458 __ Ulh(i.OutputRegister(), i.MemoryOperand()); |
| 1459 break; |
1454 case kMips64Sh: | 1460 case kMips64Sh: |
1455 __ sh(i.InputRegister(2), i.MemoryOperand()); | 1461 __ sh(i.InputRegister(2), i.MemoryOperand()); |
1456 break; | 1462 break; |
| 1463 case kMips64Ush: |
| 1464 __ Ush(i.InputRegister(2), i.MemoryOperand(), kScratchReg); |
| 1465 break; |
1457 case kMips64Lw: | 1466 case kMips64Lw: |
1458 __ lw(i.OutputRegister(), i.MemoryOperand()); | 1467 __ lw(i.OutputRegister(), i.MemoryOperand()); |
1459 break; | 1468 break; |
| 1469 case kMips64Ulw: |
| 1470 __ Ulw(i.OutputRegister(), i.MemoryOperand()); |
| 1471 break; |
| 1472 case kMips64Lwu: |
| 1473 __ lwu(i.OutputRegister(), i.MemoryOperand()); |
| 1474 break; |
| 1475 case kMips64Ulwu: |
| 1476 __ Ulwu(i.OutputRegister(), i.MemoryOperand()); |
| 1477 break; |
1460 case kMips64Ld: | 1478 case kMips64Ld: |
1461 __ ld(i.OutputRegister(), i.MemoryOperand()); | 1479 __ ld(i.OutputRegister(), i.MemoryOperand()); |
1462 break; | 1480 break; |
| 1481 case kMips64Uld: |
| 1482 __ Uld(i.OutputRegister(), i.MemoryOperand()); |
| 1483 break; |
1463 case kMips64Sw: | 1484 case kMips64Sw: |
1464 __ sw(i.InputRegister(2), i.MemoryOperand()); | 1485 __ sw(i.InputRegister(2), i.MemoryOperand()); |
1465 break; | 1486 break; |
| 1487 case kMips64Usw: |
| 1488 __ Usw(i.InputRegister(2), i.MemoryOperand()); |
| 1489 break; |
1466 case kMips64Sd: | 1490 case kMips64Sd: |
1467 __ sd(i.InputRegister(2), i.MemoryOperand()); | 1491 __ sd(i.InputRegister(2), i.MemoryOperand()); |
1468 break; | 1492 break; |
| 1493 case kMips64Usd: |
| 1494 __ Usd(i.InputRegister(2), i.MemoryOperand()); |
| 1495 break; |
1469 case kMips64Lwc1: { | 1496 case kMips64Lwc1: { |
1470 __ lwc1(i.OutputSingleRegister(), i.MemoryOperand()); | 1497 __ lwc1(i.OutputSingleRegister(), i.MemoryOperand()); |
1471 break; | 1498 break; |
1472 } | 1499 } |
| 1500 case kMips64Ulwc1: { |
| 1501 __ Ulwc1(i.OutputSingleRegister(), i.MemoryOperand(), kScratchReg); |
| 1502 break; |
| 1503 } |
1473 case kMips64Swc1: { | 1504 case kMips64Swc1: { |
1474 size_t index = 0; | 1505 size_t index = 0; |
1475 MemOperand operand = i.MemoryOperand(&index); | 1506 MemOperand operand = i.MemoryOperand(&index); |
1476 __ swc1(i.InputSingleRegister(index), operand); | 1507 __ swc1(i.InputSingleRegister(index), operand); |
1477 break; | 1508 break; |
1478 } | 1509 } |
1479 case kMips64Ldc1: | 1510 case kMips64Uswc1: { |
| 1511 size_t index = 0; |
| 1512 MemOperand operand = i.MemoryOperand(&index); |
| 1513 __ Uswc1(i.InputSingleRegister(index), operand, kScratchReg); |
| 1514 break; |
| 1515 } |
| 1516 case kMips64Ldc1: { |
1480 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand()); | 1517 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand()); |
1481 break; | 1518 break; |
| 1519 } |
| 1520 case kMips64Uldc1: |
| 1521 __ Uldc1(i.OutputDoubleRegister(), i.MemoryOperand(), kScratchReg); |
| 1522 break; |
1482 case kMips64Sdc1: | 1523 case kMips64Sdc1: |
1483 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand()); | 1524 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand()); |
1484 break; | 1525 break; |
| 1526 case kMips64Usdc1: |
| 1527 __ Usdc1(i.InputDoubleRegister(2), i.MemoryOperand(), kScratchReg); |
| 1528 break; |
1485 case kMips64Push: | 1529 case kMips64Push: |
1486 if (instr->InputAt(0)->IsDoubleRegister()) { | 1530 if (instr->InputAt(0)->IsDoubleRegister()) { |
1487 __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize)); | 1531 __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize)); |
1488 __ Subu(sp, sp, Operand(kDoubleSize)); | 1532 __ Subu(sp, sp, Operand(kDoubleSize)); |
1489 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); | 1533 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); |
1490 } else { | 1534 } else { |
1491 __ Push(i.InputRegister(0)); | 1535 __ Push(i.InputRegister(0)); |
1492 frame_access_state()->IncreaseSPDelta(1); | 1536 frame_access_state()->IncreaseSPDelta(1); |
1493 } | 1537 } |
1494 break; | 1538 break; |
(...skipping 674 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2169 padding_size -= v8::internal::Assembler::kInstrSize; | 2213 padding_size -= v8::internal::Assembler::kInstrSize; |
2170 } | 2214 } |
2171 } | 2215 } |
2172 } | 2216 } |
2173 | 2217 |
2174 #undef __ | 2218 #undef __ |
2175 | 2219 |
2176 } // namespace compiler | 2220 } // namespace compiler |
2177 } // namespace internal | 2221 } // namespace internal |
2178 } // namespace v8 | 2222 } // namespace v8 |
OLD | NEW |