v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
builtins-number-gen.cc File Reference
Include dependency graph for builtins-number-gen.cc:

Go to the source code of this file.

Namespaces

namespace  v8
 
namespace  v8::internal
 

Macros

#define V8_CODEGEN_CODE_STUB_ASSEMBLER_MACROS_DEFINED   1
 
#define CSA_CHECK(csa, x)
 
#define CSA_HOLE_SECURITY_CHECK(csa, x)
 
#define CSA_DCHECK(csa, ...)
 
#define CSA_DCHECK_JS_ARGC_EQ(csa, expected)
 
#define BIND(label)
 
#define TYPED_VARIABLE_DEF(type, name, ...)
 
#define TYPED_VARIABLE_CONSTRUCTOR(name, ...)
 
#define TVARIABLE(...)
 
#define TVARIABLE_CONSTRUCTOR(...)
 
#define CSA_SLOW_DCHECK(csa, ...)
 
#define CSA_SBXCHECK(csa, ...)
 
#define DEF_BINOP(Name, Generator)
 
#define DEF_BINOP(Name, Generator)
 
#define DEF_BINOP_RHS_SMI(Name, Generator)
 
#define DEF_UNOP(Name, Generator)
 
#define DEF_UNOP(Name, Generator)
 
#define DEF_COMPARE(Name)
 
#define DEF_COMPARE(Name)
 

Functions

 v8::internal::DEF_BINOP (ShiftRightLogical_WithFeedback, Generate_ShiftRightLogicalWithFeedback) DEF_BINOP_RHS_SMI(ShiftRightLogicalSmi_Baseline
 
 v8::internal::TF_BUILTIN (Equal_WithFeedback, CodeStubAssembler)
 
 v8::internal::TF_BUILTIN (StrictEqual_WithFeedback, CodeStubAssembler)
 
 v8::internal::TF_BUILTIN (Equal_Baseline, CodeStubAssembler)
 
 v8::internal::TF_BUILTIN (StrictEqual_Baseline, CodeStubAssembler)
 

Macro Definition Documentation

◆ BIND

#define BIND ( label)
Value:
Bind(label)
Label label

◆ CSA_CHECK

#define CSA_CHECK ( csa,
x )
Value:
(csa)->FastCheck(x)
CodeStubAssembler & csa
int x

◆ CSA_DCHECK

#define CSA_DCHECK ( csa,
... )
Value:
((void)0)

◆ CSA_DCHECK_JS_ARGC_EQ

#define CSA_DCHECK_JS_ARGC_EQ ( csa,
expected )
Value:
((void)0)

◆ CSA_HOLE_SECURITY_CHECK

#define CSA_HOLE_SECURITY_CHECK ( csa,
x )
Value:
(csa)->Check([&]() -> TNode<BoolT> { return x; }, #x, __FILE__, __LINE__)

◆ CSA_SBXCHECK

#define CSA_SBXCHECK ( csa,
... )
Value:
CSA_DCHECK(csa, __VA_ARGS__)
#define CSA_DCHECK(csa,...)

◆ CSA_SLOW_DCHECK

#define CSA_SLOW_DCHECK ( csa,
... )
Value:
((void)0)

◆ DEF_BINOP [1/2]

#define DEF_BINOP ( Name,
Generator )
Value:
TF_BUILTIN(Name, CodeStubAssembler) { \
auto lhs = Parameter<Object>(Descriptor::kLeft); \
auto rhs = Parameter<Object>(Descriptor::kRight); \
auto context = Parameter<Context>(Descriptor::kContext); \
auto feedback_vector = \
Parameter<FeedbackVector>(Descriptor::kFeedbackVector); \
auto slot = UncheckedParameter<UintPtrT>(Descriptor::kSlot); \
\
BinaryOpAssembler binop_asm(state()); \
TNode<Object> result = \
binop_asm.Generator([&]() { return context; }, lhs, rhs, slot, \
[&]() { return feedback_vector; }, \
UpdateFeedbackMode::kGuaranteedFeedback, false); \
\
Return(result); \
}
#define TF_BUILTIN(Name, AssemblerBase)
TNode< Context > context
ZoneVector< RpoNumber > & result
LiftoffAssembler::CacheState state

Definition at line 19 of file builtins-number-gen.cc.

◆ DEF_BINOP [2/2]

#define DEF_BINOP ( Name,
Generator )
Value:
TF_BUILTIN(Name, CodeStubAssembler) { \
auto lhs = Parameter<Object>(Descriptor::kLeft); \
auto rhs = Parameter<Object>(Descriptor::kRight); \
auto slot = UncheckedParameter<UintPtrT>(Descriptor::kSlot); \
\
BinaryOpAssembler binop_asm(state()); \
TNode<Object> result = binop_asm.Generator( \
[&]() { return LoadContextFromBaseline(); }, lhs, rhs, slot, \
[&]() { return LoadFeedbackVectorFromBaseline(); }, \
UpdateFeedbackMode::kGuaranteedFeedback, false); \
\
Return(result); \
}

Definition at line 19 of file builtins-number-gen.cc.

◆ DEF_BINOP_RHS_SMI

#define DEF_BINOP_RHS_SMI ( Name,
Generator )
Value:
TF_BUILTIN(Name, CodeStubAssembler) { \
auto lhs = Parameter<Object>(Descriptor::kLeft); \
auto rhs = Parameter<Object>(Descriptor::kRight); \
auto slot = UncheckedParameter<UintPtrT>(Descriptor::kSlot); \
\
BinaryOpAssembler binop_asm(state()); \
TNode<Object> result = binop_asm.Generator( \
[&]() { return LoadContextFromBaseline(); }, lhs, rhs, slot, \
[&]() { return LoadFeedbackVectorFromBaseline(); }, \
UpdateFeedbackMode::kGuaranteedFeedback, true); \
\
Return(result); \
}

◆ DEF_COMPARE [1/2]

#define DEF_COMPARE ( Name)
Value:
TF_BUILTIN(Name##_WithFeedback, CodeStubAssembler) { \
auto lhs = Parameter<Object>(Descriptor::kLeft); \
auto rhs = Parameter<Object>(Descriptor::kRight); \
auto context = Parameter<Context>(Descriptor::kContext); \
auto feedback_vector = \
Parameter<FeedbackVector>(Descriptor::kFeedbackVector); \
auto slot = UncheckedParameter<UintPtrT>(Descriptor::kSlot); \
\
TVARIABLE(Smi, var_type_feedback); \
TVARIABLE(Object, var_exception); \
Label if_exception(this, Label::kDeferred); \
TNode<Boolean> result; \
{ \
ScopedExceptionHandler handler(this, &if_exception, &var_exception); \
result = RelationalComparison(Operation::k##Name, lhs, rhs, context, \
&var_type_feedback); \
} \
UpdateFeedback(var_type_feedback.value(), feedback_vector, slot); \
\
Return(result); \
BIND(&if_exception); \
{ \
UpdateFeedback(var_type_feedback.value(), feedback_vector, slot); \
CallRuntime(Runtime::kReThrow, context, var_exception.value()); \
Unreachable(); \
} \
}
MovableLabel handler

Definition at line 151 of file builtins-number-gen.cc.

◆ DEF_COMPARE [2/2]

#define DEF_COMPARE ( Name)
Value:
TF_BUILTIN(Name##_Baseline, CodeStubAssembler) { \
auto lhs = Parameter<Object>(Descriptor::kLeft); \
auto rhs = Parameter<Object>(Descriptor::kRight); \
auto slot = UncheckedParameter<UintPtrT>(Descriptor::kSlot); \
\
TVARIABLE(Smi, var_type_feedback); \
TVARIABLE(Object, var_exception); \
Label if_exception(this, Label::kDeferred); \
TNode<Boolean> result; \
{ \
ScopedExceptionHandler handler(this, &if_exception, &var_exception); \
result = RelationalComparison( \
Operation::k##Name, lhs, rhs, \
[&]() { return LoadContextFromBaseline(); }, &var_type_feedback); \
} \
auto feedback_vector = LoadFeedbackVectorFromBaseline(); \
UpdateFeedback(var_type_feedback.value(), feedback_vector, slot); \
\
Return(result); \
BIND(&if_exception); \
{ \
feedback_vector = LoadFeedbackVectorFromBaseline(); \
UpdateFeedback(var_type_feedback.value(), feedback_vector, slot); \
CallRuntime(Runtime::kReThrow, LoadContextFromBaseline(), \
var_exception.value()); \
Unreachable(); \
} \
}

Definition at line 151 of file builtins-number-gen.cc.

◆ DEF_UNOP [1/2]

#define DEF_UNOP ( Name,
Generator )
Value:
TF_BUILTIN(Name, CodeStubAssembler) { \
auto value = Parameter<Object>(Descriptor::kValue); \
auto context = Parameter<Context>(Descriptor::kContext); \
auto feedback_vector = \
Parameter<FeedbackVector>(Descriptor::kFeedbackVector); \
auto slot = UncheckedParameter<UintPtrT>(Descriptor::kSlot); \
\
UnaryOpAssembler a(state()); \
TNode<Object> result = \
a.Generator(context, value, slot, feedback_vector, \
UpdateFeedbackMode::kGuaranteedFeedback); \
\
Return(result); \
}
std::optional< TNode< JSArray > > a

Definition at line 108 of file builtins-number-gen.cc.

◆ DEF_UNOP [2/2]

#define DEF_UNOP ( Name,
Generator )
Value:
TF_BUILTIN(Name, CodeStubAssembler) { \
auto value = Parameter<Object>(Descriptor::kValue); \
auto context = LoadContextFromBaseline(); \
auto feedback_vector = LoadFeedbackVectorFromBaseline(); \
auto slot = UncheckedParameter<UintPtrT>(Descriptor::kSlot); \
\
UnaryOpAssembler a(state()); \
TNode<Object> result = \
a.Generator(context, value, slot, feedback_vector, \
UpdateFeedbackMode::kGuaranteedFeedback); \
\
Return(result); \
}

Definition at line 108 of file builtins-number-gen.cc.

◆ TVARIABLE

#define TVARIABLE ( ...)
Value:
EXPAND(TYPED_VARIABLE_DEF(__VA_ARGS__, this))
#define TYPED_VARIABLE_DEF(type, name,...)
#define EXPAND(X)
Definition macros.h:16

◆ TVARIABLE_CONSTRUCTOR

#define TVARIABLE_CONSTRUCTOR ( ...)
Value:
EXPAND(TYPED_VARIABLE_CONSTRUCTOR(__VA_ARGS__, this))
#define TYPED_VARIABLE_CONSTRUCTOR(name,...)

◆ TYPED_VARIABLE_CONSTRUCTOR

#define TYPED_VARIABLE_CONSTRUCTOR ( name,
... )
Value:
name(__VA_ARGS__)
const char * name
Definition builtins.cc:39

◆ TYPED_VARIABLE_DEF

#define TYPED_VARIABLE_DEF ( type,
name,
... )
Value:
TVariable<UNPAREN(type)> name(__VA_ARGS__)
#define UNPAREN(X)
Definition macros.h:53

◆ V8_CODEGEN_CODE_STUB_ASSEMBLER_MACROS_DEFINED

#define V8_CODEGEN_CODE_STUB_ASSEMBLER_MACROS_DEFINED   1