| OLD | NEW |
| 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/hydrogen.h" | 5 #include "src/hydrogen.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "src/v8.h" | 9 #include "src/v8.h" |
| 10 | 10 |
| (...skipping 8054 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8065 | 8065 |
| 8066 | 8066 |
| 8067 bool HOptimizedGraphBuilder::TryInlineBuiltinFunctionCall(Call* expr) { | 8067 bool HOptimizedGraphBuilder::TryInlineBuiltinFunctionCall(Call* expr) { |
| 8068 if (!expr->target()->shared()->HasBuiltinFunctionId()) return false; | 8068 if (!expr->target()->shared()->HasBuiltinFunctionId()) return false; |
| 8069 BuiltinFunctionId id = expr->target()->shared()->builtin_function_id(); | 8069 BuiltinFunctionId id = expr->target()->shared()->builtin_function_id(); |
| 8070 switch (id) { | 8070 switch (id) { |
| 8071 case kMathExp: | 8071 case kMathExp: |
| 8072 if (!FLAG_fast_math) break; | 8072 if (!FLAG_fast_math) break; |
| 8073 // Fall through if FLAG_fast_math. | 8073 // Fall through if FLAG_fast_math. |
| 8074 case kMathRound: | 8074 case kMathRound: |
| 8075 case kMathFround: |
| 8075 case kMathFloor: | 8076 case kMathFloor: |
| 8076 case kMathAbs: | 8077 case kMathAbs: |
| 8077 case kMathSqrt: | 8078 case kMathSqrt: |
| 8078 case kMathLog: | 8079 case kMathLog: |
| 8079 case kMathClz32: | 8080 case kMathClz32: |
| 8080 if (expr->arguments()->length() == 1) { | 8081 if (expr->arguments()->length() == 1) { |
| 8081 HValue* argument = Pop(); | 8082 HValue* argument = Pop(); |
| 8082 Drop(2); // Receiver and function. | 8083 Drop(2); // Receiver and function. |
| 8083 HInstruction* op = NewUncasted<HUnaryMathOperation>(argument, id); | 8084 HInstruction* op = NewUncasted<HUnaryMathOperation>(argument, id); |
| 8084 ast_context()->ReturnInstruction(op, expr->id()); | 8085 ast_context()->ReturnInstruction(op, expr->id()); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8136 Drop(2); // Receiver and function. | 8137 Drop(2); // Receiver and function. |
| 8137 HInstruction* result = NewUncasted<HStringCharFromCode>(argument); | 8138 HInstruction* result = NewUncasted<HStringCharFromCode>(argument); |
| 8138 ast_context()->ReturnInstruction(result, expr->id()); | 8139 ast_context()->ReturnInstruction(result, expr->id()); |
| 8139 return true; | 8140 return true; |
| 8140 } | 8141 } |
| 8141 break; | 8142 break; |
| 8142 case kMathExp: | 8143 case kMathExp: |
| 8143 if (!FLAG_fast_math) break; | 8144 if (!FLAG_fast_math) break; |
| 8144 // Fall through if FLAG_fast_math. | 8145 // Fall through if FLAG_fast_math. |
| 8145 case kMathRound: | 8146 case kMathRound: |
| 8147 case kMathFround: |
| 8146 case kMathFloor: | 8148 case kMathFloor: |
| 8147 case kMathAbs: | 8149 case kMathAbs: |
| 8148 case kMathSqrt: | 8150 case kMathSqrt: |
| 8149 case kMathLog: | 8151 case kMathLog: |
| 8150 case kMathClz32: | 8152 case kMathClz32: |
| 8151 if (argument_count == 2) { | 8153 if (argument_count == 2) { |
| 8152 HValue* argument = Pop(); | 8154 HValue* argument = Pop(); |
| 8153 Drop(2); // Receiver and function. | 8155 Drop(2); // Receiver and function. |
| 8154 HInstruction* op = NewUncasted<HUnaryMathOperation>(argument, id); | 8156 HInstruction* op = NewUncasted<HUnaryMathOperation>(argument, id); |
| 8155 ast_context()->ReturnInstruction(op, expr->id()); | 8157 ast_context()->ReturnInstruction(op, expr->id()); |
| (...skipping 4319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12475 if (ShouldProduceTraceOutput()) { | 12477 if (ShouldProduceTraceOutput()) { |
| 12476 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 12478 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 12477 } | 12479 } |
| 12478 | 12480 |
| 12479 #ifdef DEBUG | 12481 #ifdef DEBUG |
| 12480 graph_->Verify(false); // No full verify. | 12482 graph_->Verify(false); // No full verify. |
| 12481 #endif | 12483 #endif |
| 12482 } | 12484 } |
| 12483 | 12485 |
| 12484 } } // namespace v8::internal | 12486 } } // namespace v8::internal |
| OLD | NEW |