v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
builtins-regexp-gen.cc File Reference
Include dependency graph for builtins-regexp-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 CASE_FOR_FLAG(Lower, Camel, ...)
 
#define CASE_FOR_FLAG(NAME, FLAG)
 
#define CASE_FOR_FLAG(NAME, V8_FLAG_EXTERN_REF, FLAG)
 
#define CASE_FOR_FLAG(Lower, Camel, LowerCamel, Char, ...)
 

Functions

 v8::internal::TF_BUILTIN (RegExpExecAtom, RegExpBuiltinsAssembler)
 
 v8::internal::TF_BUILTIN (RegExpConstructor, RegExpBuiltinsAssembler)
 
 v8::internal::TF_BUILTIN (RegExpPrototypeCompile, RegExpBuiltinsAssembler)
 

Macro Definition Documentation

◆ BIND

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

◆ CASE_FOR_FLAG [1/4]

#define CASE_FOR_FLAG ( Lower,
Camel,
LowerCamel,
Char,
... )
Value:
do { \
Label next(this); \
GotoIfNot(IsSetWord(var_flags.value(), JSRegExp::k##Camel), &next); \
const TNode<Int32T> value = Int32Constant(Char); \
StoreNoWriteBarrier(MachineRepresentation::kWord8, string, \
var_offset.value(), value); \
var_offset = IntPtrAdd(var_offset.value(), int_one); \
Goto(&next); \
BIND(&next); \
} while (false);

◆ CASE_FOR_FLAG [2/4]

#define CASE_FOR_FLAG ( Lower,
Camel,
... )
Value:
do { \
Label next(this); \
GotoIfNot(IsSetWord(var_flags.value(), JSRegExp::k##Camel), &next); \
var_length = Uint32Add(var_length.value(), Uint32Constant(1)); \
Goto(&next); \
BIND(&next); \
} while (false);

◆ CASE_FOR_FLAG [3/4]

#define CASE_FOR_FLAG ( NAME,
FLAG )
Value:
do { \
Label next(this); \
const TNode<Object> flag = GetProperty( \
context, regexp, isolate->factory()->InternalizeUtf8String(NAME)); \
Label if_isflagset(this); \
BranchIfToBooleanIsTrue(flag, &if_isflagset, &next); \
BIND(&if_isflagset); \
var_length = Uint32Add(var_length.value(), Uint32Constant(1)); \
var_flags = Signed(WordOr(var_flags.value(), IntPtrConstant(FLAG))); \
Goto(&next); \
BIND(&next); \
} while (false)
#define FLAG
#define NAME(feat,...)

◆ CASE_FOR_FLAG [4/4]

#define CASE_FOR_FLAG ( NAME,
V8_FLAG_EXTERN_REF,
FLAG )
Value:
do { \
Label next(this); \
TNode<Word32T> flag_value = UncheckedCast<Word32T>( \
Load(MachineType::Uint8(), ExternalConstant(V8_FLAG_EXTERN_REF))); \
GotoIf(Word32Equal(Word32And(flag_value, Int32Constant(0xFF)), \
Int32Constant(0)), \
&next); \
const TNode<Object> flag = GetProperty( \
context, regexp, isolate->factory()->InternalizeUtf8String(NAME)); \
Label if_isflagset(this); \
BranchIfToBooleanIsTrue(flag, &if_isflagset, &next); \
BIND(&if_isflagset); \
var_length = Uint32Add(var_length.value(), Uint32Constant(1)); \
var_flags = Signed(WordOr(var_flags.value(), IntPtrConstant(FLAG))); \
Goto(&next); \
BIND(&next); \
} while (false)

◆ 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)

◆ 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