Line data Source code
1 : // Copyright 2017 the V8 project authors. All rights reserved.
2 : // Use of this source code is governed by a BSD-style license that can be
3 : // found in the LICENSE file.
4 :
5 : #ifndef V8_BUILTINS_BUILTINS_MATH_GEN_H_
6 : #define V8_BUILTINS_BUILTINS_MATH_GEN_H_
7 :
8 : #include "src/code-stub-assembler.h"
9 :
10 : namespace v8 {
11 : namespace internal {
12 :
13 1568 : class MathBuiltinsAssembler : public CodeStubAssembler {
14 : public:
15 : explicit MathBuiltinsAssembler(compiler::CodeAssemblerState* state)
16 1568 : : CodeStubAssembler(state) {}
17 :
18 : Node* MathPow(Node* context, Node* base, Node* exponent);
19 :
20 : protected:
21 : void MathRoundingOperation(
22 : Node* context, Node* x,
23 : TNode<Float64T> (CodeStubAssembler::*float64op)(SloppyTNode<Float64T>));
24 : void MathUnaryOperation(
25 : Node* context, Node* x,
26 : TNode<Float64T> (CodeStubAssembler::*float64op)(SloppyTNode<Float64T>));
27 : void MathMaxMin(Node* context, Node* argc,
28 : TNode<Float64T> (CodeStubAssembler::*float64op)(
29 : SloppyTNode<Float64T>, SloppyTNode<Float64T>),
30 : double default_val);
31 : };
32 :
33 : } // namespace internal
34 : } // namespace v8
35 :
36 : #endif // V8_BUILTINS_BUILTINS_MATH_GEN_H_
|