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 1364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1375 break; | 1375 break; |
1376 case kMipsLb: | 1376 case kMipsLb: |
1377 __ lb(i.OutputRegister(), i.MemoryOperand()); | 1377 __ lb(i.OutputRegister(), i.MemoryOperand()); |
1378 break; | 1378 break; |
1379 case kMipsSb: | 1379 case kMipsSb: |
1380 __ sb(i.InputRegister(2), i.MemoryOperand()); | 1380 __ sb(i.InputRegister(2), i.MemoryOperand()); |
1381 break; | 1381 break; |
1382 case kMipsLhu: | 1382 case kMipsLhu: |
1383 __ lhu(i.OutputRegister(), i.MemoryOperand()); | 1383 __ lhu(i.OutputRegister(), i.MemoryOperand()); |
1384 break; | 1384 break; |
| 1385 case kMipsUlhu: |
| 1386 __ Ulhu(i.OutputRegister(), i.MemoryOperand()); |
| 1387 break; |
1385 case kMipsLh: | 1388 case kMipsLh: |
1386 __ lh(i.OutputRegister(), i.MemoryOperand()); | 1389 __ lh(i.OutputRegister(), i.MemoryOperand()); |
1387 break; | 1390 break; |
| 1391 case kMipsUlh: |
| 1392 __ Ulh(i.OutputRegister(), i.MemoryOperand()); |
| 1393 break; |
1388 case kMipsSh: | 1394 case kMipsSh: |
1389 __ sh(i.InputRegister(2), i.MemoryOperand()); | 1395 __ sh(i.InputRegister(2), i.MemoryOperand()); |
1390 break; | 1396 break; |
| 1397 case kMipsUsh: |
| 1398 __ Ush(i.InputRegister(2), i.MemoryOperand(), kScratchReg); |
| 1399 break; |
1391 case kMipsLw: | 1400 case kMipsLw: |
1392 __ lw(i.OutputRegister(), i.MemoryOperand()); | 1401 __ lw(i.OutputRegister(), i.MemoryOperand()); |
1393 break; | 1402 break; |
| 1403 case kMipsUlw: |
| 1404 __ Ulw(i.OutputRegister(), i.MemoryOperand()); |
| 1405 break; |
1394 case kMipsSw: | 1406 case kMipsSw: |
1395 __ sw(i.InputRegister(2), i.MemoryOperand()); | 1407 __ sw(i.InputRegister(2), i.MemoryOperand()); |
1396 break; | 1408 break; |
| 1409 case kMipsUsw: |
| 1410 __ Usw(i.InputRegister(2), i.MemoryOperand()); |
| 1411 break; |
1397 case kMipsLwc1: { | 1412 case kMipsLwc1: { |
1398 __ lwc1(i.OutputSingleRegister(), i.MemoryOperand()); | 1413 __ lwc1(i.OutputSingleRegister(), i.MemoryOperand()); |
1399 break; | 1414 break; |
1400 } | 1415 } |
| 1416 case kMipsUlwc1: { |
| 1417 __ Ulwc1(i.OutputSingleRegister(), i.MemoryOperand(), kScratchReg); |
| 1418 break; |
| 1419 } |
1401 case kMipsSwc1: { | 1420 case kMipsSwc1: { |
1402 size_t index = 0; | 1421 size_t index = 0; |
1403 MemOperand operand = i.MemoryOperand(&index); | 1422 MemOperand operand = i.MemoryOperand(&index); |
1404 __ swc1(i.InputSingleRegister(index), operand); | 1423 __ swc1(i.InputSingleRegister(index), operand); |
1405 break; | 1424 break; |
1406 } | 1425 } |
| 1426 case kMipsUswc1: { |
| 1427 size_t index = 0; |
| 1428 MemOperand operand = i.MemoryOperand(&index); |
| 1429 __ Uswc1(i.InputSingleRegister(index), operand, kScratchReg); |
| 1430 break; |
| 1431 } |
1407 case kMipsLdc1: | 1432 case kMipsLdc1: |
1408 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand()); | 1433 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand()); |
1409 break; | 1434 break; |
| 1435 case kMipsUldc1: |
| 1436 __ Uldc1(i.OutputDoubleRegister(), i.MemoryOperand(), kScratchReg); |
| 1437 break; |
1410 case kMipsSdc1: | 1438 case kMipsSdc1: |
1411 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand()); | 1439 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand()); |
1412 break; | 1440 break; |
| 1441 case kMipsUsdc1: |
| 1442 __ Usdc1(i.InputDoubleRegister(2), i.MemoryOperand(), kScratchReg); |
| 1443 break; |
1413 case kMipsPush: | 1444 case kMipsPush: |
1414 if (instr->InputAt(0)->IsFPRegister()) { | 1445 if (instr->InputAt(0)->IsFPRegister()) { |
1415 __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize)); | 1446 __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize)); |
1416 __ Subu(sp, sp, Operand(kDoubleSize)); | 1447 __ Subu(sp, sp, Operand(kDoubleSize)); |
1417 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); | 1448 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); |
1418 } else { | 1449 } else { |
1419 __ Push(i.InputRegister(0)); | 1450 __ Push(i.InputRegister(0)); |
1420 frame_access_state()->IncreaseSPDelta(1); | 1451 frame_access_state()->IncreaseSPDelta(1); |
1421 } | 1452 } |
1422 break; | 1453 break; |
(...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2125 padding_size -= v8::internal::Assembler::kInstrSize; | 2156 padding_size -= v8::internal::Assembler::kInstrSize; |
2126 } | 2157 } |
2127 } | 2158 } |
2128 } | 2159 } |
2129 | 2160 |
2130 #undef __ | 2161 #undef __ |
2131 | 2162 |
2132 } // namespace compiler | 2163 } // namespace compiler |
2133 } // namespace internal | 2164 } // namespace internal |
2134 } // namespace v8 | 2165 } // namespace v8 |
OLD | NEW |