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

Side by Side Diff: src/crankshaft/hydrogen.cc

Issue 2073123002: [builtins] Introduce proper Float64Cos and Float64Sin. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix missing breaks 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/crankshaft/arm64/lithium-codegen-arm64.cc ('k') | src/crankshaft/hydrogen-instructions.h » ('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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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/crankshaft/hydrogen.h" 5 #include "src/crankshaft/hydrogen.h"
6 6
7 #include <sstream> 7 #include <sstream>
8 8
9 #include "src/allocation-site-scopes.h" 9 #include "src/allocation-site-scopes.h"
10 #include "src/ast/ast-numbering.h" 10 #include "src/ast/ast-numbering.h"
(...skipping 8837 matching lines...) Expand 10 before | Expand all | Expand 10 after
8848 expr->ReturnId(), NORMAL_RETURN, expr->tail_call_mode()); 8848 expr->ReturnId(), NORMAL_RETURN, expr->tail_call_mode());
8849 } 8849 }
8850 8850
8851 8851
8852 bool HOptimizedGraphBuilder::TryInlineBuiltinFunctionCall(Call* expr) { 8852 bool HOptimizedGraphBuilder::TryInlineBuiltinFunctionCall(Call* expr) {
8853 if (!expr->target()->shared()->HasBuiltinFunctionId()) return false; 8853 if (!expr->target()->shared()->HasBuiltinFunctionId()) return false;
8854 BuiltinFunctionId id = expr->target()->shared()->builtin_function_id(); 8854 BuiltinFunctionId id = expr->target()->shared()->builtin_function_id();
8855 // We intentionally ignore expr->tail_call_mode() here because builtins 8855 // We intentionally ignore expr->tail_call_mode() here because builtins
8856 // we inline here do not observe if they were tail called or not. 8856 // we inline here do not observe if they were tail called or not.
8857 switch (id) { 8857 switch (id) {
8858 case kMathCos:
8858 case kMathExp: 8859 case kMathExp:
8859 case kMathRound: 8860 case kMathRound:
8860 case kMathFround: 8861 case kMathFround:
8861 case kMathFloor: 8862 case kMathFloor:
8862 case kMathAbs: 8863 case kMathAbs:
8864 case kMathSin:
8863 case kMathSqrt: 8865 case kMathSqrt:
8864 case kMathLog: 8866 case kMathLog:
8865 case kMathClz32: 8867 case kMathClz32:
8866 if (expr->arguments()->length() == 1) { 8868 if (expr->arguments()->length() == 1) {
8867 HValue* argument = Pop(); 8869 HValue* argument = Pop();
8868 Drop(2); // Receiver and function. 8870 Drop(2); // Receiver and function.
8869 HInstruction* op = NewUncasted<HUnaryMathOperation>(argument, id); 8871 HInstruction* op = NewUncasted<HUnaryMathOperation>(argument, id);
8870 ast_context()->ReturnInstruction(op, expr->id()); 8872 ast_context()->ReturnInstruction(op, expr->id());
8871 return true; 8873 return true;
8872 } 8874 }
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
9029 HValue* argument = Pop(); 9031 HValue* argument = Pop();
9030 Drop(2); // Receiver and function. 9032 Drop(2); // Receiver and function.
9031 argument = AddUncasted<HForceRepresentation>( 9033 argument = AddUncasted<HForceRepresentation>(
9032 argument, Representation::Integer32()); 9034 argument, Representation::Integer32());
9033 argument->SetFlag(HValue::kTruncatingToInt32); 9035 argument->SetFlag(HValue::kTruncatingToInt32);
9034 HInstruction* result = NewUncasted<HStringCharFromCode>(argument); 9036 HInstruction* result = NewUncasted<HStringCharFromCode>(argument);
9035 ast_context()->ReturnInstruction(result, ast_id); 9037 ast_context()->ReturnInstruction(result, ast_id);
9036 return true; 9038 return true;
9037 } 9039 }
9038 break; 9040 break;
9041 case kMathCos:
9039 case kMathExp: 9042 case kMathExp:
9040 if (!FLAG_fast_math) break;
9041 // Fall through if FLAG_fast_math.
9042 case kMathRound: 9043 case kMathRound:
9043 case kMathFround: 9044 case kMathFround:
9044 case kMathFloor: 9045 case kMathFloor:
9045 case kMathAbs: 9046 case kMathAbs:
9047 case kMathSin:
9046 case kMathSqrt: 9048 case kMathSqrt:
9047 case kMathLog: 9049 case kMathLog:
9048 case kMathClz32: 9050 case kMathClz32:
9049 if (argument_count == 2) { 9051 if (argument_count == 2) {
9050 HValue* argument = Pop(); 9052 HValue* argument = Pop();
9051 Drop(2); // Receiver and function. 9053 Drop(2); // Receiver and function.
9052 HInstruction* op = NewUncasted<HUnaryMathOperation>(argument, id); 9054 HInstruction* op = NewUncasted<HUnaryMathOperation>(argument, id);
9053 ast_context()->ReturnInstruction(op, ast_id); 9055 ast_context()->ReturnInstruction(op, ast_id);
9054 return true; 9056 return true;
9055 } 9057 }
(...skipping 4644 matching lines...) Expand 10 before | Expand all | Expand 10 after
13700 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); 13702 isolate()->GetHTracer()->TraceHydrogen(name(), graph_);
13701 } 13703 }
13702 13704
13703 #ifdef DEBUG 13705 #ifdef DEBUG
13704 graph_->Verify(false); // No full verify. 13706 graph_->Verify(false); // No full verify.
13705 #endif 13707 #endif
13706 } 13708 }
13707 13709
13708 } // namespace internal 13710 } // namespace internal
13709 } // namespace v8 13711 } // namespace v8
OLDNEW
« no previous file with comments | « src/crankshaft/arm64/lithium-codegen-arm64.cc ('k') | src/crankshaft/hydrogen-instructions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698