Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Side by Side Diff: src/compiler/mips64/code-generator-mips64.cc

Issue 2215403002: [turbofan] Make Float32Neg and Float64Neg mandatory operators. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « src/compiler/mips/instruction-selector-mips.cc ('k') | src/compiler/mips64/instruction-codes-mips64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698