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

Side by Side Diff: src/compiler/wasm-compiler.cc

Issue 2062773002: [wasm] Use the new Float64Atan(2) TF operators in wasm. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 6 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
« no previous file with comments | « src/compiler/wasm-compiler.h ('k') | src/external-reference-table.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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/compiler/wasm-compiler.h" 5 #include "src/compiler/wasm-compiler.h"
6 6
7 #include "src/isolate-inl.h" 7 #include "src/isolate-inl.h"
8 8
9 #include "src/base/platform/elapsed-timer.h" 9 #include "src/base/platform/elapsed-timer.h"
10 #include "src/base/platform/platform.h" 10 #include "src/base/platform/platform.h"
(...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 return BuildF32Min(left, right); 600 return BuildF32Min(left, right);
601 case wasm::kExprF64Min: 601 case wasm::kExprF64Min:
602 return BuildF64Min(left, right); 602 return BuildF64Min(left, right);
603 case wasm::kExprF32Max: 603 case wasm::kExprF32Max:
604 return BuildF32Max(left, right); 604 return BuildF32Max(left, right);
605 case wasm::kExprF64Max: 605 case wasm::kExprF64Max:
606 return BuildF64Max(left, right); 606 return BuildF64Max(left, right);
607 case wasm::kExprF64Pow: 607 case wasm::kExprF64Pow:
608 return BuildF64Pow(left, right); 608 return BuildF64Pow(left, right);
609 case wasm::kExprF64Atan2: 609 case wasm::kExprF64Atan2:
610 return BuildF64Atan2(left, right); 610 op = m->Float64Atan2();
611 break;
611 case wasm::kExprF64Mod: 612 case wasm::kExprF64Mod:
612 return BuildF64Mod(left, right); 613 return BuildF64Mod(left, right);
613 case wasm::kExprI32AsmjsDivS: 614 case wasm::kExprI32AsmjsDivS:
614 return BuildI32AsmjsDivS(left, right); 615 return BuildI32AsmjsDivS(left, right);
615 case wasm::kExprI32AsmjsDivU: 616 case wasm::kExprI32AsmjsDivU:
616 return BuildI32AsmjsDivU(left, right); 617 return BuildI32AsmjsDivU(left, right);
617 case wasm::kExprI32AsmjsRemS: 618 case wasm::kExprI32AsmjsRemS:
618 return BuildI32AsmjsRemS(left, right); 619 return BuildI32AsmjsRemS(left, right);
619 case wasm::kExprI32AsmjsRemU: 620 case wasm::kExprI32AsmjsRemU:
620 return BuildI32AsmjsRemU(left, right); 621 return BuildI32AsmjsRemU(left, right);
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 return BuildF64NearestInt(input); 775 return BuildF64NearestInt(input);
775 op = m->Float64RoundTiesEven().op(); 776 op = m->Float64RoundTiesEven().op();
776 break; 777 break;
777 } 778 }
778 case wasm::kExprF64Acos: { 779 case wasm::kExprF64Acos: {
779 return BuildF64Acos(input); 780 return BuildF64Acos(input);
780 } 781 }
781 case wasm::kExprF64Asin: { 782 case wasm::kExprF64Asin: {
782 return BuildF64Asin(input); 783 return BuildF64Asin(input);
783 } 784 }
784 case wasm::kExprF64Atan: { 785 case wasm::kExprF64Atan:
785 return BuildF64Atan(input); 786 op = m->Float64Atan();
786 } 787 break;
787 case wasm::kExprF64Cos: { 788 case wasm::kExprF64Cos: {
788 return BuildF64Cos(input); 789 return BuildF64Cos(input);
789 } 790 }
790 case wasm::kExprF64Sin: { 791 case wasm::kExprF64Sin: {
791 return BuildF64Sin(input); 792 return BuildF64Sin(input);
792 } 793 }
793 case wasm::kExprF64Tan: { 794 case wasm::kExprF64Tan: {
794 return BuildF64Tan(input); 795 return BuildF64Tan(input);
795 } 796 }
796 case wasm::kExprF64Exp: { 797 case wasm::kExprF64Exp: {
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after
1341 return BuildCFuncInstruction(ref, type, input); 1342 return BuildCFuncInstruction(ref, type, input);
1342 } 1343 }
1343 1344
1344 Node* WasmGraphBuilder::BuildF64Asin(Node* input) { 1345 Node* WasmGraphBuilder::BuildF64Asin(Node* input) {
1345 MachineType type = MachineType::Float64(); 1346 MachineType type = MachineType::Float64();
1346 ExternalReference ref = 1347 ExternalReference ref =
1347 ExternalReference::f64_asin_wrapper_function(jsgraph()->isolate()); 1348 ExternalReference::f64_asin_wrapper_function(jsgraph()->isolate());
1348 return BuildCFuncInstruction(ref, type, input); 1349 return BuildCFuncInstruction(ref, type, input);
1349 } 1350 }
1350 1351
1351 Node* WasmGraphBuilder::BuildF64Atan(Node* input) {
1352 MachineType type = MachineType::Float64();
1353 ExternalReference ref =
1354 ExternalReference::f64_atan_wrapper_function(jsgraph()->isolate());
1355 return BuildCFuncInstruction(ref, type, input);
1356 }
1357
1358 Node* WasmGraphBuilder::BuildF64Cos(Node* input) { 1352 Node* WasmGraphBuilder::BuildF64Cos(Node* input) {
1359 MachineType type = MachineType::Float64(); 1353 MachineType type = MachineType::Float64();
1360 ExternalReference ref = 1354 ExternalReference ref =
1361 ExternalReference::f64_cos_wrapper_function(jsgraph()->isolate()); 1355 ExternalReference::f64_cos_wrapper_function(jsgraph()->isolate());
1362 return BuildCFuncInstruction(ref, type, input); 1356 return BuildCFuncInstruction(ref, type, input);
1363 } 1357 }
1364 1358
1365 Node* WasmGraphBuilder::BuildF64Sin(Node* input) { 1359 Node* WasmGraphBuilder::BuildF64Sin(Node* input) {
1366 MachineType type = MachineType::Float64(); 1360 MachineType type = MachineType::Float64();
1367 ExternalReference ref = 1361 ExternalReference ref =
1368 ExternalReference::f64_sin_wrapper_function(jsgraph()->isolate()); 1362 ExternalReference::f64_sin_wrapper_function(jsgraph()->isolate());
1369 return BuildCFuncInstruction(ref, type, input); 1363 return BuildCFuncInstruction(ref, type, input);
1370 } 1364 }
1371 1365
1372 Node* WasmGraphBuilder::BuildF64Tan(Node* input) { 1366 Node* WasmGraphBuilder::BuildF64Tan(Node* input) {
1373 MachineType type = MachineType::Float64(); 1367 MachineType type = MachineType::Float64();
1374 ExternalReference ref = 1368 ExternalReference ref =
1375 ExternalReference::f64_tan_wrapper_function(jsgraph()->isolate()); 1369 ExternalReference::f64_tan_wrapper_function(jsgraph()->isolate());
1376 return BuildCFuncInstruction(ref, type, input); 1370 return BuildCFuncInstruction(ref, type, input);
1377 } 1371 }
1378 1372
1379 Node* WasmGraphBuilder::BuildF64Exp(Node* input) { 1373 Node* WasmGraphBuilder::BuildF64Exp(Node* input) {
1380 MachineType type = MachineType::Float64(); 1374 MachineType type = MachineType::Float64();
1381 ExternalReference ref = 1375 ExternalReference ref =
1382 ExternalReference::f64_exp_wrapper_function(jsgraph()->isolate()); 1376 ExternalReference::f64_exp_wrapper_function(jsgraph()->isolate());
1383 return BuildCFuncInstruction(ref, type, input); 1377 return BuildCFuncInstruction(ref, type, input);
1384 } 1378 }
1385 1379
1386 Node* WasmGraphBuilder::BuildF64Atan2(Node* left, Node* right) {
1387 MachineType type = MachineType::Float64();
1388 ExternalReference ref =
1389 ExternalReference::f64_atan2_wrapper_function(jsgraph()->isolate());
1390 return BuildCFuncInstruction(ref, type, left, right);
1391 }
1392
1393 Node* WasmGraphBuilder::BuildF64Pow(Node* left, Node* right) { 1380 Node* WasmGraphBuilder::BuildF64Pow(Node* left, Node* right) {
1394 MachineType type = MachineType::Float64(); 1381 MachineType type = MachineType::Float64();
1395 ExternalReference ref = 1382 ExternalReference ref =
1396 ExternalReference::f64_pow_wrapper_function(jsgraph()->isolate()); 1383 ExternalReference::f64_pow_wrapper_function(jsgraph()->isolate());
1397 return BuildCFuncInstruction(ref, type, left, right); 1384 return BuildCFuncInstruction(ref, type, left, right);
1398 } 1385 }
1399 1386
1400 Node* WasmGraphBuilder::BuildF64Mod(Node* left, Node* right) { 1387 Node* WasmGraphBuilder::BuildF64Mod(Node* left, Node* right) {
1401 MachineType type = MachineType::Float64(); 1388 MachineType type = MachineType::Float64();
1402 ExternalReference ref = 1389 ExternalReference ref =
(...skipping 1894 matching lines...) Expand 10 before | Expand all | Expand 10 after
3297 function_->code_start_offset), 3284 function_->code_start_offset),
3298 compile_ms); 3285 compile_ms);
3299 } 3286 }
3300 3287
3301 return code; 3288 return code;
3302 } 3289 }
3303 3290
3304 } // namespace compiler 3291 } // namespace compiler
3305 } // namespace internal 3292 } // namespace internal
3306 } // namespace v8 3293 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/wasm-compiler.h ('k') | src/external-reference-table.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698