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 1342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1353 break; | 1353 break; |
1354 case kMipsLb: | 1354 case kMipsLb: |
1355 __ lb(i.OutputRegister(), i.MemoryOperand()); | 1355 __ lb(i.OutputRegister(), i.MemoryOperand()); |
1356 break; | 1356 break; |
1357 case kMipsSb: | 1357 case kMipsSb: |
1358 __ sb(i.InputRegister(2), i.MemoryOperand()); | 1358 __ sb(i.InputRegister(2), i.MemoryOperand()); |
1359 break; | 1359 break; |
1360 case kMipsLhu: | 1360 case kMipsLhu: |
1361 __ lhu(i.OutputRegister(), i.MemoryOperand()); | 1361 __ lhu(i.OutputRegister(), i.MemoryOperand()); |
1362 break; | 1362 break; |
| 1363 case kMipsUlhu: |
| 1364 __ Ulhu(i.OutputRegister(), i.MemoryOperand()); |
| 1365 break; |
1363 case kMipsLh: | 1366 case kMipsLh: |
1364 __ lh(i.OutputRegister(), i.MemoryOperand()); | 1367 __ lh(i.OutputRegister(), i.MemoryOperand()); |
1365 break; | 1368 break; |
| 1369 case kMipsUlh: |
| 1370 __ Ulh(i.OutputRegister(), i.MemoryOperand()); |
| 1371 break; |
1366 case kMipsSh: | 1372 case kMipsSh: |
1367 __ sh(i.InputRegister(2), i.MemoryOperand()); | 1373 __ sh(i.InputRegister(2), i.MemoryOperand()); |
1368 break; | 1374 break; |
| 1375 case kMipsUsh: |
| 1376 __ Ush(i.InputRegister(2), i.MemoryOperand(), kScratchReg); |
| 1377 break; |
1369 case kMipsLw: | 1378 case kMipsLw: |
1370 __ lw(i.OutputRegister(), i.MemoryOperand()); | 1379 __ lw(i.OutputRegister(), i.MemoryOperand()); |
1371 break; | 1380 break; |
| 1381 case kMipsUlw: |
| 1382 __ Ulw(i.OutputRegister(), i.MemoryOperand()); |
| 1383 break; |
1372 case kMipsSw: | 1384 case kMipsSw: |
1373 __ sw(i.InputRegister(2), i.MemoryOperand()); | 1385 __ sw(i.InputRegister(2), i.MemoryOperand()); |
1374 break; | 1386 break; |
| 1387 case kMipsUsw: |
| 1388 __ Usw(i.InputRegister(2), i.MemoryOperand()); |
| 1389 break; |
1375 case kMipsLwc1: { | 1390 case kMipsLwc1: { |
1376 __ lwc1(i.OutputSingleRegister(), i.MemoryOperand()); | 1391 __ lwc1(i.OutputSingleRegister(), i.MemoryOperand()); |
1377 break; | 1392 break; |
1378 } | 1393 } |
| 1394 case kMipsUlwc1: { |
| 1395 __ Ulwc1(i.OutputSingleRegister(), i.MemoryOperand(), kScratchReg); |
| 1396 break; |
| 1397 } |
1379 case kMipsSwc1: { | 1398 case kMipsSwc1: { |
1380 size_t index = 0; | 1399 size_t index = 0; |
1381 MemOperand operand = i.MemoryOperand(&index); | 1400 MemOperand operand = i.MemoryOperand(&index); |
1382 __ swc1(i.InputSingleRegister(index), operand); | 1401 __ swc1(i.InputSingleRegister(index), operand); |
1383 break; | 1402 break; |
1384 } | 1403 } |
| 1404 case kMipsUswc1: { |
| 1405 size_t index = 0; |
| 1406 MemOperand operand = i.MemoryOperand(&index); |
| 1407 __ Uswc1(i.InputSingleRegister(index), operand, kScratchReg); |
| 1408 break; |
| 1409 } |
1385 case kMipsLdc1: | 1410 case kMipsLdc1: |
1386 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand()); | 1411 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand()); |
1387 break; | 1412 break; |
| 1413 case kMipsUldc1: |
| 1414 __ Uldc1(i.OutputDoubleRegister(), i.MemoryOperand(), kScratchReg); |
| 1415 break; |
1388 case kMipsSdc1: | 1416 case kMipsSdc1: |
1389 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand()); | 1417 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand()); |
1390 break; | 1418 break; |
| 1419 case kMipsUsdc1: |
| 1420 __ Usdc1(i.InputDoubleRegister(2), i.MemoryOperand(), kScratchReg); |
| 1421 break; |
1391 case kMipsPush: | 1422 case kMipsPush: |
1392 if (instr->InputAt(0)->IsFPRegister()) { | 1423 if (instr->InputAt(0)->IsFPRegister()) { |
1393 __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize)); | 1424 __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize)); |
1394 __ Subu(sp, sp, Operand(kDoubleSize)); | 1425 __ Subu(sp, sp, Operand(kDoubleSize)); |
1395 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); | 1426 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); |
1396 } else { | 1427 } else { |
1397 __ Push(i.InputRegister(0)); | 1428 __ Push(i.InputRegister(0)); |
1398 frame_access_state()->IncreaseSPDelta(1); | 1429 frame_access_state()->IncreaseSPDelta(1); |
1399 } | 1430 } |
1400 break; | 1431 break; |
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2166 padding_size -= v8::internal::Assembler::kInstrSize; | 2197 padding_size -= v8::internal::Assembler::kInstrSize; |
2167 } | 2198 } |
2168 } | 2199 } |
2169 } | 2200 } |
2170 | 2201 |
2171 #undef __ | 2202 #undef __ |
2172 | 2203 |
2173 } // namespace compiler | 2204 } // namespace compiler |
2174 } // namespace internal | 2205 } // namespace internal |
2175 } // namespace v8 | 2206 } // namespace v8 |
OLD | NEW |