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 1449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1460 break; | 1460 break; |
1461 case kMips64Lb: | 1461 case kMips64Lb: |
1462 __ lb(i.OutputRegister(), i.MemoryOperand()); | 1462 __ lb(i.OutputRegister(), i.MemoryOperand()); |
1463 break; | 1463 break; |
1464 case kMips64Sb: | 1464 case kMips64Sb: |
1465 __ sb(i.InputRegister(2), i.MemoryOperand()); | 1465 __ sb(i.InputRegister(2), i.MemoryOperand()); |
1466 break; | 1466 break; |
1467 case kMips64Lhu: | 1467 case kMips64Lhu: |
1468 __ lhu(i.OutputRegister(), i.MemoryOperand()); | 1468 __ lhu(i.OutputRegister(), i.MemoryOperand()); |
1469 break; | 1469 break; |
| 1470 case kMips64Ulhu: |
| 1471 __ Ulhu(i.OutputRegister(), i.MemoryOperand()); |
| 1472 break; |
1470 case kMips64Lh: | 1473 case kMips64Lh: |
1471 __ lh(i.OutputRegister(), i.MemoryOperand()); | 1474 __ lh(i.OutputRegister(), i.MemoryOperand()); |
1472 break; | 1475 break; |
| 1476 case kMips64Ulh: |
| 1477 __ Ulh(i.OutputRegister(), i.MemoryOperand()); |
| 1478 break; |
1473 case kMips64Sh: | 1479 case kMips64Sh: |
1474 __ sh(i.InputRegister(2), i.MemoryOperand()); | 1480 __ sh(i.InputRegister(2), i.MemoryOperand()); |
1475 break; | 1481 break; |
| 1482 case kMips64Ush: |
| 1483 __ Ush(i.InputRegister(2), i.MemoryOperand(), kScratchReg); |
| 1484 break; |
1476 case kMips64Lw: | 1485 case kMips64Lw: |
1477 __ lw(i.OutputRegister(), i.MemoryOperand()); | 1486 __ lw(i.OutputRegister(), i.MemoryOperand()); |
1478 break; | 1487 break; |
| 1488 case kMips64Ulw: |
| 1489 __ Ulw(i.OutputRegister(), i.MemoryOperand()); |
| 1490 break; |
| 1491 case kMips64Lwu: |
| 1492 __ lwu(i.OutputRegister(), i.MemoryOperand()); |
| 1493 break; |
| 1494 case kMips64Ulwu: |
| 1495 __ Ulwu(i.OutputRegister(), i.MemoryOperand()); |
| 1496 break; |
1479 case kMips64Ld: | 1497 case kMips64Ld: |
1480 __ ld(i.OutputRegister(), i.MemoryOperand()); | 1498 __ ld(i.OutputRegister(), i.MemoryOperand()); |
1481 break; | 1499 break; |
| 1500 case kMips64Uld: |
| 1501 __ Uld(i.OutputRegister(), i.MemoryOperand()); |
| 1502 break; |
1482 case kMips64Sw: | 1503 case kMips64Sw: |
1483 __ sw(i.InputRegister(2), i.MemoryOperand()); | 1504 __ sw(i.InputRegister(2), i.MemoryOperand()); |
1484 break; | 1505 break; |
| 1506 case kMips64Usw: |
| 1507 __ Usw(i.InputRegister(2), i.MemoryOperand()); |
| 1508 break; |
1485 case kMips64Sd: | 1509 case kMips64Sd: |
1486 __ sd(i.InputRegister(2), i.MemoryOperand()); | 1510 __ sd(i.InputRegister(2), i.MemoryOperand()); |
1487 break; | 1511 break; |
| 1512 case kMips64Usd: |
| 1513 __ Usd(i.InputRegister(2), i.MemoryOperand()); |
| 1514 break; |
1488 case kMips64Lwc1: { | 1515 case kMips64Lwc1: { |
1489 __ lwc1(i.OutputSingleRegister(), i.MemoryOperand()); | 1516 __ lwc1(i.OutputSingleRegister(), i.MemoryOperand()); |
1490 break; | 1517 break; |
1491 } | 1518 } |
| 1519 case kMips64Ulwc1: { |
| 1520 __ Ulwc1(i.OutputSingleRegister(), i.MemoryOperand(), kScratchReg); |
| 1521 break; |
| 1522 } |
1492 case kMips64Swc1: { | 1523 case kMips64Swc1: { |
1493 size_t index = 0; | 1524 size_t index = 0; |
1494 MemOperand operand = i.MemoryOperand(&index); | 1525 MemOperand operand = i.MemoryOperand(&index); |
1495 __ swc1(i.InputSingleRegister(index), operand); | 1526 __ swc1(i.InputSingleRegister(index), operand); |
1496 break; | 1527 break; |
1497 } | 1528 } |
1498 case kMips64Ldc1: | 1529 case kMips64Uswc1: { |
| 1530 size_t index = 0; |
| 1531 MemOperand operand = i.MemoryOperand(&index); |
| 1532 __ Uswc1(i.InputSingleRegister(index), operand, kScratchReg); |
| 1533 break; |
| 1534 } |
| 1535 case kMips64Ldc1: { |
1499 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand()); | 1536 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand()); |
1500 break; | 1537 break; |
| 1538 } |
| 1539 case kMips64Uldc1: |
| 1540 __ Uldc1(i.OutputDoubleRegister(), i.MemoryOperand(), kScratchReg); |
| 1541 break; |
1501 case kMips64Sdc1: | 1542 case kMips64Sdc1: |
1502 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand()); | 1543 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand()); |
1503 break; | 1544 break; |
| 1545 case kMips64Usdc1: |
| 1546 __ Usdc1(i.InputDoubleRegister(2), i.MemoryOperand(), kScratchReg); |
| 1547 break; |
1504 case kMips64Push: | 1548 case kMips64Push: |
1505 if (instr->InputAt(0)->IsDoubleRegister()) { | 1549 if (instr->InputAt(0)->IsDoubleRegister()) { |
1506 __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize)); | 1550 __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize)); |
1507 __ Subu(sp, sp, Operand(kDoubleSize)); | 1551 __ Subu(sp, sp, Operand(kDoubleSize)); |
1508 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); | 1552 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); |
1509 } else { | 1553 } else { |
1510 __ Push(i.InputRegister(0)); | 1554 __ Push(i.InputRegister(0)); |
1511 frame_access_state()->IncreaseSPDelta(1); | 1555 frame_access_state()->IncreaseSPDelta(1); |
1512 } | 1556 } |
1513 break; | 1557 break; |
(...skipping 669 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2183 padding_size -= v8::internal::Assembler::kInstrSize; | 2227 padding_size -= v8::internal::Assembler::kInstrSize; |
2184 } | 2228 } |
2185 } | 2229 } |
2186 } | 2230 } |
2187 | 2231 |
2188 #undef __ | 2232 #undef __ |
2189 | 2233 |
2190 } // namespace compiler | 2234 } // namespace compiler |
2191 } // namespace internal | 2235 } // namespace internal |
2192 } // namespace v8 | 2236 } // namespace v8 |
OLD | NEW |