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 1277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1288 // TODO(balazs.kilvady): implement mod_two_floats_operation(isolate()) | 1288 // TODO(balazs.kilvady): implement mod_two_floats_operation(isolate()) |
1289 __ CallCFunction(ExternalReference::mod_two_doubles_operation(isolate()), | 1289 __ CallCFunction(ExternalReference::mod_two_doubles_operation(isolate()), |
1290 0, 2); | 1290 0, 2); |
1291 // Move the result in the double result register. | 1291 // Move the result in the double result register. |
1292 __ MovFromFloatResult(i.OutputSingleRegister()); | 1292 __ MovFromFloatResult(i.OutputSingleRegister()); |
1293 break; | 1293 break; |
1294 } | 1294 } |
1295 case kMips64AbsS: | 1295 case kMips64AbsS: |
1296 __ abs_s(i.OutputSingleRegister(), i.InputSingleRegister(0)); | 1296 __ abs_s(i.OutputSingleRegister(), i.InputSingleRegister(0)); |
1297 break; | 1297 break; |
| 1298 case kMips64NegS: |
| 1299 __ neg_s(i.OutputSingleRegister(), i.InputSingleRegister(0)); |
| 1300 break; |
1298 case kMips64SqrtS: { | 1301 case kMips64SqrtS: { |
1299 __ sqrt_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0)); | 1302 __ sqrt_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0)); |
1300 break; | 1303 break; |
1301 } | 1304 } |
1302 case kMips64MaxS: | 1305 case kMips64MaxS: |
1303 __ max_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 1306 __ max_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
1304 i.InputDoubleRegister(1)); | 1307 i.InputDoubleRegister(1)); |
1305 break; | 1308 break; |
1306 case kMips64MinS: | 1309 case kMips64MinS: |
1307 __ min_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 1310 __ min_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1342 i.InputDoubleRegister(1)); | 1345 i.InputDoubleRegister(1)); |
1343 __ CallCFunction(ExternalReference::mod_two_doubles_operation(isolate()), | 1346 __ CallCFunction(ExternalReference::mod_two_doubles_operation(isolate()), |
1344 0, 2); | 1347 0, 2); |
1345 // Move the result in the double result register. | 1348 // Move the result in the double result register. |
1346 __ MovFromFloatResult(i.OutputDoubleRegister()); | 1349 __ MovFromFloatResult(i.OutputDoubleRegister()); |
1347 break; | 1350 break; |
1348 } | 1351 } |
1349 case kMips64AbsD: | 1352 case kMips64AbsD: |
1350 __ abs_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0)); | 1353 __ abs_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0)); |
1351 break; | 1354 break; |
| 1355 case kMips64NegD: |
| 1356 __ neg_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0)); |
| 1357 break; |
1352 case kMips64SqrtD: { | 1358 case kMips64SqrtD: { |
1353 __ sqrt_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0)); | 1359 __ sqrt_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0)); |
1354 break; | 1360 break; |
1355 } | 1361 } |
1356 case kMips64MaxD: | 1362 case kMips64MaxD: |
1357 __ max_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 1363 __ max_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
1358 i.InputDoubleRegister(1)); | 1364 i.InputDoubleRegister(1)); |
1359 break; | 1365 break; |
1360 case kMips64MinD: | 1366 case kMips64MinD: |
1361 __ min_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 1367 __ min_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
(...skipping 1098 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2460 padding_size -= v8::internal::Assembler::kInstrSize; | 2466 padding_size -= v8::internal::Assembler::kInstrSize; |
2461 } | 2467 } |
2462 } | 2468 } |
2463 } | 2469 } |
2464 | 2470 |
2465 #undef __ | 2471 #undef __ |
2466 | 2472 |
2467 } // namespace compiler | 2473 } // namespace compiler |
2468 } // namespace internal | 2474 } // namespace internal |
2469 } // namespace v8 | 2475 } // namespace v8 |
OLD | NEW |