V8 Project
v8::internal::RegExpMacroAssemblerTracer Class Reference

#include <regexp-macro-assembler-tracer.h>

+ Inheritance diagram for v8::internal::RegExpMacroAssemblerTracer:
+ Collaboration diagram for v8::internal::RegExpMacroAssemblerTracer:

Public Member Functions

 RegExpMacroAssemblerTracer (RegExpMacroAssembler *assembler)
 
virtual ~RegExpMacroAssemblerTracer ()
 
virtual int stack_limit_slack ()
 
virtual bool CanReadUnaligned ()
 
virtual void AdvanceCurrentPosition (int by)
 
virtual void AdvanceRegister (int reg, int by)
 
virtual void Backtrack ()
 
virtual void Bind (Label *label)
 
virtual void CheckAtStart (Label *on_at_start)
 
virtual void CheckCharacter (unsigned c, Label *on_equal)
 
virtual void CheckCharacterAfterAnd (unsigned c, unsigned and_with, Label *on_equal)
 
virtual void CheckCharacterGT (uc16 limit, Label *on_greater)
 
virtual void CheckCharacterLT (uc16 limit, Label *on_less)
 
virtual void CheckGreedyLoop (Label *on_tos_equals_current_position)
 
virtual void CheckNotAtStart (Label *on_not_at_start)
 
virtual void CheckNotBackReference (int start_reg, Label *on_no_match)
 
virtual void CheckNotBackReferenceIgnoreCase (int start_reg, Label *on_no_match)
 
virtual void CheckNotCharacter (unsigned c, Label *on_not_equal)
 
virtual void CheckNotCharacterAfterAnd (unsigned c, unsigned and_with, Label *on_not_equal)
 
virtual void CheckNotCharacterAfterMinusAnd (uc16 c, uc16 minus, uc16 and_with, Label *on_not_equal)
 
virtual void CheckCharacterInRange (uc16 from, uc16 to, Label *on_in_range)
 
virtual void CheckCharacterNotInRange (uc16 from, uc16 to, Label *on_not_in_range)
 
virtual void CheckBitInTable (Handle< ByteArray > table, Label *on_bit_set)
 
virtual bool CheckSpecialCharacterClass (uc16 type, Label *on_no_match)
 
virtual void Fail ()
 
virtual Handle< HeapObjectGetCode (Handle< String > source)
 
virtual void GoTo (Label *label)
 
virtual void IfRegisterGE (int reg, int comparand, Label *if_ge)
 
virtual void IfRegisterLT (int reg, int comparand, Label *if_lt)
 
virtual void IfRegisterEqPos (int reg, Label *if_eq)
 
virtual IrregexpImplementation Implementation ()
 
virtual void LoadCurrentCharacter (int cp_offset, Label *on_end_of_input, bool check_bounds=true, int characters=1)
 
virtual void PopCurrentPosition ()
 
virtual void PopRegister (int register_index)
 
virtual void PushBacktrack (Label *label)
 
virtual void PushCurrentPosition ()
 
virtual void PushRegister (int register_index, StackCheckFlag check_stack_limit)
 
virtual void ReadCurrentPositionFromRegister (int reg)
 
virtual void ReadStackPointerFromRegister (int reg)
 
virtual void SetCurrentPositionFromEnd (int by)
 
virtual void SetRegister (int register_index, int to)
 
virtual bool Succeed ()
 
virtual void WriteCurrentPositionToRegister (int reg, int cp_offset)
 
virtual void ClearRegisters (int reg_from, int reg_to)
 
virtual void WriteStackPointerToRegister (int reg)
 
- Public Member Functions inherited from v8::internal::RegExpMacroAssembler
 RegExpMacroAssembler (Zone *zone)
 
virtual ~RegExpMacroAssembler ()
 
virtual void CheckPosition (int cp_offset, Label *on_outside_input)
 
void set_slow_safe (bool ssc)
 
bool slow_safe ()
 
void set_global_mode (GlobalMode mode)
 
bool global ()
 
bool global_with_zero_length_check ()
 
Zonezone () const
 

Private Attributes

RegExpMacroAssemblerassembler_
 

Additional Inherited Members

- Public Types inherited from v8::internal::RegExpMacroAssembler
enum  IrregexpImplementation {
  kIA32Implementation , kARMImplementation , kARM64Implementation , kMIPSImplementation ,
  kX64Implementation , kX87Implementation , kBytecodeImplementation
}
 
enum  StackCheckFlag { kNoStackLimitCheck = false , kCheckStackLimit = true }
 
enum  GlobalMode { NOT_GLOBAL , GLOBAL , GLOBAL_NO_ZERO_LENGTH_CHECK }
 
- Static Public Attributes inherited from v8::internal::RegExpMacroAssembler
static const int kMaxRegister = (1 << 16) - 1
 
static const int kMaxCPOffset = (1 << 15) - 1
 
static const int kMinCPOffset = -(1 << 15)
 
static const int kTableSizeBits = 7
 
static const int kTableSize = 1 << kTableSizeBits
 
static const int kTableMask = kTableSize - 1
 

Detailed Description

Definition at line 12 of file regexp-macro-assembler-tracer.h.

Constructor & Destructor Documentation

◆ RegExpMacroAssemblerTracer()

v8::internal::RegExpMacroAssemblerTracer::RegExpMacroAssemblerTracer ( RegExpMacroAssembler assembler)
explicit

Definition at line 14 of file regexp-macro-assembler-tracer.cc.

15  :
16  RegExpMacroAssembler(assembler->zone()),
17  assembler_(assembler) {
18  unsigned int type = assembler->Implementation();
19  DCHECK(type < 6);
20  const char* impl_names[] = {"IA32", "ARM", "ARM64",
21  "MIPS", "X64", "X87", "Bytecode"};
22  PrintF("RegExpMacroAssembler%s();\n", impl_names[type]);
23 }
virtual IrregexpImplementation Implementation()=0
#define DCHECK(condition)
Definition: logging.h:205
void PrintF(const char *format,...)
Definition: utils.cc:80

References DCHECK, v8::internal::RegExpMacroAssembler::Implementation(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ ~RegExpMacroAssemblerTracer()

v8::internal::RegExpMacroAssemblerTracer::~RegExpMacroAssemblerTracer ( )
virtual

Definition at line 26 of file regexp-macro-assembler-tracer.cc.

26  {
27 }

Member Function Documentation

◆ AdvanceCurrentPosition()

void v8::internal::RegExpMacroAssemblerTracer::AdvanceCurrentPosition ( int  by)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 43 of file regexp-macro-assembler-tracer.cc.

43  {
44  PrintF(" AdvanceCurrentPosition(by=%d);\n", by);
46 }
virtual void AdvanceCurrentPosition(int by)=0

References v8::internal::RegExpMacroAssembler::AdvanceCurrentPosition(), assembler_, and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ AdvanceRegister()

void v8::internal::RegExpMacroAssemblerTracer::AdvanceRegister ( int  reg,
int  by 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 114 of file regexp-macro-assembler-tracer.cc.

114  {
115  PrintF(" AdvanceRegister(register=%d, by=%d);\n", reg, by);
116  assembler_->AdvanceRegister(reg, by);
117 }
virtual void AdvanceRegister(int reg, int by)=0

References v8::internal::RegExpMacroAssembler::AdvanceRegister(), assembler_, and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ Backtrack()

void v8::internal::RegExpMacroAssemblerTracer::Backtrack ( )
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 67 of file regexp-macro-assembler-tracer.cc.

67  {
68  PrintF(" Backtrack();\n");
70 }

References assembler_, v8::internal::RegExpMacroAssembler::Backtrack(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ Bind()

void v8::internal::RegExpMacroAssemblerTracer::Bind ( Label *  label)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 37 of file regexp-macro-assembler-tracer.cc.

37  {
38  PrintF("label[%08x]: (Bind)\n", LabelToInt(label));
39  assembler_->Bind(label);
40 }
virtual void Bind(Label *label)=0
static int LabelToInt(Label *label)

References assembler_, v8::internal::RegExpMacroAssembler::Bind(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ CanReadUnaligned()

virtual bool v8::internal::RegExpMacroAssemblerTracer::CanReadUnaligned ( )
inlinevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 17 of file regexp-macro-assembler-tracer.h.

17 { return assembler_->CanReadUnaligned(); }

References assembler_, and v8::internal::RegExpMacroAssembler::CanReadUnaligned().

+ Here is the call graph for this function:

◆ CheckAtStart()

void v8::internal::RegExpMacroAssemblerTracer::CheckAtStart ( Label *  on_at_start)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 235 of file regexp-macro-assembler-tracer.cc.

235  {
236  PrintF(" CheckAtStart(label[%08x]);\n", LabelToInt(on_at_start));
237  assembler_->CheckAtStart(on_at_start);
238 }
virtual void CheckAtStart(Label *on_at_start)=0

References assembler_, v8::internal::RegExpMacroAssembler::CheckAtStart(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ CheckBitInTable()

void v8::internal::RegExpMacroAssemblerTracer::CheckBitInTable ( Handle< ByteArray table,
Label *  on_bit_set 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 334 of file regexp-macro-assembler-tracer.cc.

335  {
336  PrintF(" CheckBitInTable(label[%08x] ", LabelToInt(on_bit_set));
337  for (int i = 0; i < kTableSize; i++) {
338  PrintF("%c", table->get(i) != 0 ? 'X' : '.');
339  if (i % 32 == 31 && i != kTableMask) {
340  PrintF("\n ");
341  }
342  }
343  PrintF(");\n");
344  assembler_->CheckBitInTable(table, on_bit_set);
345 }
virtual void CheckBitInTable(Handle< ByteArray > table, Label *on_bit_set)=0

References assembler_, v8::internal::RegExpMacroAssembler::CheckBitInTable(), v8::internal::RegExpMacroAssembler::kTableMask, v8::internal::RegExpMacroAssembler::kTableSize, v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ CheckCharacter()

void v8::internal::RegExpMacroAssemblerTracer::CheckCharacter ( unsigned  c,
Label *  on_equal 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 225 of file regexp-macro-assembler-tracer.cc.

225  {
226  PrintablePrinter printable(c);
227  PrintF(" CheckCharacter(c=0x%04x%s, label[%08x]);\n",
228  c,
229  *printable,
230  LabelToInt(on_equal));
231  assembler_->CheckCharacter(c, on_equal);
232 }
virtual void CheckCharacter(unsigned c, Label *on_equal)=0

References assembler_, v8::internal::RegExpMacroAssembler::CheckCharacter(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ CheckCharacterAfterAnd()

void v8::internal::RegExpMacroAssemblerTracer::CheckCharacterAfterAnd ( unsigned  c,
unsigned  and_with,
Label *  on_equal 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 258 of file regexp-macro-assembler-tracer.cc.

261  {
262  PrintablePrinter printable(c);
263  PrintF(" CheckCharacterAfterAnd(c=0x%04x%s, mask=0x%04x, label[%08x]);\n",
264  c,
265  *printable,
266  mask,
267  LabelToInt(on_equal));
268  assembler_->CheckCharacterAfterAnd(c, mask, on_equal);
269 }
virtual void CheckCharacterAfterAnd(unsigned c, unsigned and_with, Label *on_equal)=0

References assembler_, v8::internal::RegExpMacroAssembler::CheckCharacterAfterAnd(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ CheckCharacterGT()

void v8::internal::RegExpMacroAssemblerTracer::CheckCharacterGT ( uc16  limit,
Label *  on_greater 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 214 of file regexp-macro-assembler-tracer.cc.

215  {
216  PrintablePrinter printable(limit);
217  PrintF(" CheckCharacterGT(c=0x%04x%s, label[%08x]);\n",
218  limit,
219  *printable,
220  LabelToInt(on_greater));
221  assembler_->CheckCharacterGT(limit, on_greater);
222 }
virtual void CheckCharacterGT(uc16 limit, Label *on_greater)=0

References assembler_, v8::internal::RegExpMacroAssembler::CheckCharacterGT(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ CheckCharacterInRange()

void v8::internal::RegExpMacroAssemblerTracer::CheckCharacterInRange ( uc16  from,
uc16  to,
Label *  on_in_range 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 301 of file regexp-macro-assembler-tracer.cc.

304  {
305  PrintablePrinter printable_from(from);
306  PrintablePrinter printable_to(to);
307  PrintF(" CheckCharacterInRange(from=0x%04x%s, to=0x%04x%s, label[%08x]);\n",
308  from,
309  *printable_from,
310  to,
311  *printable_to,
312  LabelToInt(on_not_in_range));
313  assembler_->CheckCharacterInRange(from, to, on_not_in_range);
314 }
virtual void CheckCharacterInRange(uc16 from, uc16 to, Label *on_in_range)=0
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be expose gc extension under the specified name show built in functions in stack traces use random jit cookie to mask large constants minimum length for automatic enable preparsing CPU profiler sampling interval in microseconds trace out of bounds accesses to external arrays default size of stack region v8 is allowed to maximum length of function source code printed in a stack trace min size of a semi the new space consists of two semi spaces print one trace line following each garbage collection do not print trace line after scavenger collection print cumulative GC statistics in only print modified registers Trace simulator debug messages Implied by trace sim abort randomize hashes to avoid predictable hash Fixed seed to use to hash property Print the time it takes to deserialize the snapshot A filename with extra code to be included in the A file to write the raw snapshot bytes to(mksnapshot only)") DEFINE_STRING(raw_context_file

References assembler_, v8::internal::RegExpMacroAssembler::CheckCharacterInRange(), v8::internal::LabelToInt(), v8::internal::PrintF(), and to().

+ Here is the call graph for this function:

◆ CheckCharacterLT()

void v8::internal::RegExpMacroAssemblerTracer::CheckCharacterLT ( uc16  limit,
Label *  on_less 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 204 of file regexp-macro-assembler-tracer.cc.

204  {
205  PrintablePrinter printable(limit);
206  PrintF(" CheckCharacterLT(c=0x%04x%s, label[%08x]);\n",
207  limit,
208  *printable,
209  LabelToInt(on_less));
210  assembler_->CheckCharacterLT(limit, on_less);
211 }
virtual void CheckCharacterLT(uc16 limit, Label *on_less)=0

References assembler_, v8::internal::RegExpMacroAssembler::CheckCharacterLT(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ CheckCharacterNotInRange()

void v8::internal::RegExpMacroAssemblerTracer::CheckCharacterNotInRange ( uc16  from,
uc16  to,
Label *  on_not_in_range 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 317 of file regexp-macro-assembler-tracer.cc.

320  {
321  PrintablePrinter printable_from(from);
322  PrintablePrinter printable_to(to);
323  PrintF(
324  " CheckCharacterNotInRange(from=0x%04x%s," " to=%04x%s, label[%08x]);\n",
325  from,
326  *printable_from,
327  to,
328  *printable_to,
329  LabelToInt(on_in_range));
330  assembler_->CheckCharacterNotInRange(from, to, on_in_range);
331 }
virtual void CheckCharacterNotInRange(uc16 from, uc16 to, Label *on_not_in_range)=0

References assembler_, v8::internal::RegExpMacroAssembler::CheckCharacterNotInRange(), v8::internal::LabelToInt(), v8::internal::PrintF(), and to().

+ Here is the call graph for this function:

◆ CheckGreedyLoop()

void v8::internal::RegExpMacroAssemblerTracer::CheckGreedyLoop ( Label *  on_tos_equals_current_position)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 49 of file regexp-macro-assembler-tracer.cc.

49  {
50  PrintF(" CheckGreedyLoop(label[%08x]);\n\n", LabelToInt(label));
52 }
virtual void CheckGreedyLoop(Label *on_tos_equals_current_position)=0

References assembler_, v8::internal::RegExpMacroAssembler::CheckGreedyLoop(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ CheckNotAtStart()

void v8::internal::RegExpMacroAssemblerTracer::CheckNotAtStart ( Label *  on_not_at_start)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 241 of file regexp-macro-assembler-tracer.cc.

241  {
242  PrintF(" CheckNotAtStart(label[%08x]);\n", LabelToInt(on_not_at_start));
243  assembler_->CheckNotAtStart(on_not_at_start);
244 }
virtual void CheckNotAtStart(Label *on_not_at_start)=0

References assembler_, v8::internal::RegExpMacroAssembler::CheckNotAtStart(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ CheckNotBackReference()

void v8::internal::RegExpMacroAssemblerTracer::CheckNotBackReference ( int  start_reg,
Label *  on_no_match 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 348 of file regexp-macro-assembler-tracer.cc.

349  {
350  PrintF(" CheckNotBackReference(register=%d, label[%08x]);\n", start_reg,
351  LabelToInt(on_no_match));
352  assembler_->CheckNotBackReference(start_reg, on_no_match);
353 }
virtual void CheckNotBackReference(int start_reg, Label *on_no_match)=0

References assembler_, v8::internal::RegExpMacroAssembler::CheckNotBackReference(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ CheckNotBackReferenceIgnoreCase()

void v8::internal::RegExpMacroAssemblerTracer::CheckNotBackReferenceIgnoreCase ( int  start_reg,
Label *  on_no_match 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 356 of file regexp-macro-assembler-tracer.cc.

358  {
359  PrintF(" CheckNotBackReferenceIgnoreCase(register=%d, label[%08x]);\n",
360  start_reg, LabelToInt(on_no_match));
361  assembler_->CheckNotBackReferenceIgnoreCase(start_reg, on_no_match);
362 }
virtual void CheckNotBackReferenceIgnoreCase(int start_reg, Label *on_no_match)=0

References assembler_, v8::internal::RegExpMacroAssembler::CheckNotBackReferenceIgnoreCase(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ CheckNotCharacter()

void v8::internal::RegExpMacroAssemblerTracer::CheckNotCharacter ( unsigned  c,
Label *  on_not_equal 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 247 of file regexp-macro-assembler-tracer.cc.

248  {
249  PrintablePrinter printable(c);
250  PrintF(" CheckNotCharacter(c=0x%04x%s, label[%08x]);\n",
251  c,
252  *printable,
253  LabelToInt(on_not_equal));
254  assembler_->CheckNotCharacter(c, on_not_equal);
255 }
virtual void CheckNotCharacter(unsigned c, Label *on_not_equal)=0

References assembler_, v8::internal::RegExpMacroAssembler::CheckNotCharacter(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ CheckNotCharacterAfterAnd()

void v8::internal::RegExpMacroAssemblerTracer::CheckNotCharacterAfterAnd ( unsigned  c,
unsigned  and_with,
Label *  on_not_equal 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 272 of file regexp-macro-assembler-tracer.cc.

275  {
276  PrintablePrinter printable(c);
277  PrintF(" CheckNotCharacterAfterAnd(c=0x%04x%s, mask=0x%04x, label[%08x]);\n",
278  c,
279  *printable,
280  mask,
281  LabelToInt(on_not_equal));
282  assembler_->CheckNotCharacterAfterAnd(c, mask, on_not_equal);
283 }
virtual void CheckNotCharacterAfterAnd(unsigned c, unsigned and_with, Label *on_not_equal)=0

References assembler_, v8::internal::RegExpMacroAssembler::CheckNotCharacterAfterAnd(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ CheckNotCharacterAfterMinusAnd()

void v8::internal::RegExpMacroAssemblerTracer::CheckNotCharacterAfterMinusAnd ( uc16  c,
uc16  minus,
uc16  and_with,
Label *  on_not_equal 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 286 of file regexp-macro-assembler-tracer.cc.

290  {
291  PrintF(" CheckNotCharacterAfterMinusAnd(c=0x%04x, minus=%04x, mask=0x%04x, "
292  "label[%08x]);\n",
293  c,
294  minus,
295  mask,
296  LabelToInt(on_not_equal));
297  assembler_->CheckNotCharacterAfterMinusAnd(c, minus, mask, on_not_equal);
298 }
virtual void CheckNotCharacterAfterMinusAnd(uc16 c, uc16 minus, uc16 and_with, Label *on_not_equal)=0

References assembler_, v8::internal::RegExpMacroAssembler::CheckNotCharacterAfterMinusAnd(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ CheckSpecialCharacterClass()

bool v8::internal::RegExpMacroAssemblerTracer::CheckSpecialCharacterClass ( uc16  type,
Label *  on_no_match 
)
virtual

Reimplemented from v8::internal::RegExpMacroAssembler.

Definition at line 365 of file regexp-macro-assembler-tracer.cc.

367  {
368  bool supported = assembler_->CheckSpecialCharacterClass(type,
369  on_no_match);
370  PrintF(" CheckSpecialCharacterClass(type='%c', label[%08x]): %s;\n",
371  type,
372  LabelToInt(on_no_match),
373  supported ? "true" : "false");
374  return supported;
375 }
virtual bool CheckSpecialCharacterClass(uc16 type, Label *on_no_match)

References assembler_, v8::internal::RegExpMacroAssembler::CheckSpecialCharacterClass(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ ClearRegisters()

void v8::internal::RegExpMacroAssemblerTracer::ClearRegisters ( int  reg_from,
int  reg_to 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 141 of file regexp-macro-assembler-tracer.cc.

141  {
142  PrintF(" ClearRegister(from=%d, to=%d);\n", reg_from, reg_to);
143  assembler_->ClearRegisters(reg_from, reg_to);
144 }
virtual void ClearRegisters(int reg_from, int reg_to)=0

References assembler_, v8::internal::RegExpMacroAssembler::ClearRegisters(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ Fail()

void v8::internal::RegExpMacroAssemblerTracer::Fail ( )
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 92 of file regexp-macro-assembler-tracer.cc.

92  {
93  PrintF(" Fail();");
94  assembler_->Fail();
95 }

References assembler_, v8::internal::RegExpMacroAssembler::Fail(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ GetCode()

Handle< HeapObject > v8::internal::RegExpMacroAssemblerTracer::GetCode ( Handle< String source)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 408 of file regexp-macro-assembler-tracer.cc.

408  {
409  PrintF(" GetCode(%s);\n", source->ToCString().get());
410  return assembler_->GetCode(source);
411 }
virtual Handle< HeapObject > GetCode(Handle< String > source)=0

References assembler_, v8::internal::RegExpMacroAssembler::GetCode(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ GoTo()

void v8::internal::RegExpMacroAssemblerTracer::GoTo ( Label *  label)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 73 of file regexp-macro-assembler-tracer.cc.

73  {
74  PrintF(" GoTo(label[%08x]);\n\n", LabelToInt(label));
75  assembler_->GoTo(label);
76 }
virtual void GoTo(Label *label)=0

References assembler_, v8::internal::RegExpMacroAssembler::GoTo(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ IfRegisterEqPos()

void v8::internal::RegExpMacroAssemblerTracer::IfRegisterEqPos ( int  reg,
Label *  if_eq 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 386 of file regexp-macro-assembler-tracer.cc.

387  {
388  PrintF(" IfRegisterEqPos(register=%d, label[%08x]);\n",
389  register_index, LabelToInt(if_eq));
390  assembler_->IfRegisterEqPos(register_index, if_eq);
391 }
virtual void IfRegisterEqPos(int reg, Label *if_eq)=0

References assembler_, v8::internal::RegExpMacroAssembler::IfRegisterEqPos(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ IfRegisterGE()

void v8::internal::RegExpMacroAssemblerTracer::IfRegisterGE ( int  reg,
int  comparand,
Label *  if_ge 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 394 of file regexp-macro-assembler-tracer.cc.

395  {
396  PrintF(" IfRegisterGE(register=%d, number=%d, label[%08x]);\n",
397  register_index, comparand, LabelToInt(if_ge));
398  assembler_->IfRegisterGE(register_index, comparand, if_ge);
399 }
virtual void IfRegisterGE(int reg, int comparand, Label *if_ge)=0

References assembler_, v8::internal::RegExpMacroAssembler::IfRegisterGE(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ IfRegisterLT()

void v8::internal::RegExpMacroAssemblerTracer::IfRegisterLT ( int  reg,
int  comparand,
Label *  if_lt 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 378 of file regexp-macro-assembler-tracer.cc.

379  {
380  PrintF(" IfRegisterLT(register=%d, number=%d, label[%08x]);\n",
381  register_index, comparand, LabelToInt(if_lt));
382  assembler_->IfRegisterLT(register_index, comparand, if_lt);
383 }
virtual void IfRegisterLT(int reg, int comparand, Label *if_lt)=0

References assembler_, v8::internal::RegExpMacroAssembler::IfRegisterLT(), v8::internal::LabelToInt(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ Implementation()

RegExpMacroAssembler::IrregexpImplementation v8::internal::RegExpMacroAssemblerTracer::Implementation ( )
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 403 of file regexp-macro-assembler-tracer.cc.

403  {
404  return assembler_->Implementation();
405 }

References assembler_, and v8::internal::RegExpMacroAssembler::Implementation().

+ Here is the call graph for this function:

◆ LoadCurrentCharacter()

void v8::internal::RegExpMacroAssemblerTracer::LoadCurrentCharacter ( int  cp_offset,
Label *  on_end_of_input,
bool  check_bounds = true,
int  characters = 1 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 165 of file regexp-macro-assembler-tracer.cc.

168  {
169  const char* check_msg = check_bounds ? "" : " (unchecked)";
170  PrintF(" LoadCurrentCharacter(cp_offset=%d, label[%08x]%s (%d chars));\n",
171  cp_offset,
172  LabelToInt(on_end_of_input),
173  check_msg,
174  characters);
175  assembler_->LoadCurrentCharacter(cp_offset,
176  on_end_of_input,
177  check_bounds,
178  characters);
179 }
virtual void LoadCurrentCharacter(int cp_offset, Label *on_end_of_input, bool check_bounds=true, int characters=1)=0

References assembler_, v8::internal::LabelToInt(), v8::internal::RegExpMacroAssembler::LoadCurrentCharacter(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ PopCurrentPosition()

void v8::internal::RegExpMacroAssemblerTracer::PopCurrentPosition ( )
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 55 of file regexp-macro-assembler-tracer.cc.

55  {
56  PrintF(" PopCurrentPosition();\n");
58 }

References assembler_, v8::internal::RegExpMacroAssembler::PopCurrentPosition(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ PopRegister()

void v8::internal::RegExpMacroAssemblerTracer::PopRegister ( int  register_index)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 98 of file regexp-macro-assembler-tracer.cc.

98  {
99  PrintF(" PopRegister(register=%d);\n", register_index);
100  assembler_->PopRegister(register_index);
101 }
virtual void PopRegister(int register_index)=0

References assembler_, v8::internal::RegExpMacroAssembler::PopRegister(), and v8::internal::PrintF().

+ Here is the call graph for this function:

◆ PushBacktrack()

void v8::internal::RegExpMacroAssemblerTracer::PushBacktrack ( Label *  label)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 79 of file regexp-macro-assembler-tracer.cc.

79  {
80  PrintF(" PushBacktrack(label[%08x]);\n", LabelToInt(label));
81  assembler_->PushBacktrack(label);
82 }
virtual void PushBacktrack(Label *label)=0

References assembler_, v8::internal::LabelToInt(), v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::PushBacktrack().

+ Here is the call graph for this function:

◆ PushCurrentPosition()

void v8::internal::RegExpMacroAssemblerTracer::PushCurrentPosition ( )
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 61 of file regexp-macro-assembler-tracer.cc.

61  {
62  PrintF(" PushCurrentPosition();\n");
64 }

References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::PushCurrentPosition().

+ Here is the call graph for this function:

◆ PushRegister()

void v8::internal::RegExpMacroAssemblerTracer::PushRegister ( int  register_index,
StackCheckFlag  check_stack_limit 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 104 of file regexp-macro-assembler-tracer.cc.

106  {
107  PrintF(" PushRegister(register=%d, %s);\n",
108  register_index,
109  check_stack_limit ? "check stack limit" : "");
110  assembler_->PushRegister(register_index, check_stack_limit);
111 }
virtual void PushRegister(int register_index, StackCheckFlag check_stack_limit)=0

References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::PushRegister().

+ Here is the call graph for this function:

◆ ReadCurrentPositionFromRegister()

void v8::internal::RegExpMacroAssemblerTracer::ReadCurrentPositionFromRegister ( int  reg)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 147 of file regexp-macro-assembler-tracer.cc.

147  {
148  PrintF(" ReadCurrentPositionFromRegister(register=%d);\n", reg);
150 }
virtual void ReadCurrentPositionFromRegister(int reg)=0

References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::ReadCurrentPositionFromRegister().

+ Here is the call graph for this function:

◆ ReadStackPointerFromRegister()

void v8::internal::RegExpMacroAssemblerTracer::ReadStackPointerFromRegister ( int  reg)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 159 of file regexp-macro-assembler-tracer.cc.

159  {
160  PrintF(" ReadStackPointerFromRegister(register=%d);\n", reg);
162 }
virtual void ReadStackPointerFromRegister(int reg)=0

References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::ReadStackPointerFromRegister().

+ Here is the call graph for this function:

◆ SetCurrentPositionFromEnd()

void v8::internal::RegExpMacroAssemblerTracer::SetCurrentPositionFromEnd ( int  by)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 120 of file regexp-macro-assembler-tracer.cc.

120  {
121  PrintF(" SetCurrentPositionFromEnd(by=%d);\n", by);
123 }
virtual void SetCurrentPositionFromEnd(int by)=0

References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::SetCurrentPositionFromEnd().

+ Here is the call graph for this function:

◆ SetRegister()

void v8::internal::RegExpMacroAssemblerTracer::SetRegister ( int  register_index,
int  to 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 126 of file regexp-macro-assembler-tracer.cc.

126  {
127  PrintF(" SetRegister(register=%d, to=%d);\n", register_index, to);
128  assembler_->SetRegister(register_index, to);
129 }
virtual void SetRegister(int register_index, int to)=0

References assembler_, v8::internal::PrintF(), v8::internal::RegExpMacroAssembler::SetRegister(), and to().

+ Here is the call graph for this function:

◆ stack_limit_slack()

virtual int v8::internal::RegExpMacroAssemblerTracer::stack_limit_slack ( )
inlinevirtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 16 of file regexp-macro-assembler-tracer.h.

16 { return assembler_->stack_limit_slack(); }

References assembler_, and v8::internal::RegExpMacroAssembler::stack_limit_slack().

+ Here is the call graph for this function:

◆ Succeed()

bool v8::internal::RegExpMacroAssemblerTracer::Succeed ( )
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 85 of file regexp-macro-assembler-tracer.cc.

85  {
86  bool restart = assembler_->Succeed();
87  PrintF(" Succeed();%s\n", restart ? " [restart for global match]" : "");
88  return restart;
89 }

References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::Succeed().

+ Here is the call graph for this function:

◆ WriteCurrentPositionToRegister()

void v8::internal::RegExpMacroAssemblerTracer::WriteCurrentPositionToRegister ( int  reg,
int  cp_offset 
)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 132 of file regexp-macro-assembler-tracer.cc.

133  {
134  PrintF(" WriteCurrentPositionToRegister(register=%d,cp_offset=%d);\n",
135  reg,
136  cp_offset);
138 }
virtual void WriteCurrentPositionToRegister(int reg, int cp_offset)=0

References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::WriteCurrentPositionToRegister().

+ Here is the call graph for this function:

◆ WriteStackPointerToRegister()

void v8::internal::RegExpMacroAssemblerTracer::WriteStackPointerToRegister ( int  reg)
virtual

Implements v8::internal::RegExpMacroAssembler.

Definition at line 153 of file regexp-macro-assembler-tracer.cc.

153  {
154  PrintF(" WriteStackPointerToRegister(register=%d);\n", reg);
156 }
virtual void WriteStackPointerToRegister(int reg)=0

References assembler_, v8::internal::PrintF(), and v8::internal::RegExpMacroAssembler::WriteStackPointerToRegister().

+ Here is the call graph for this function:

Member Data Documentation

◆ assembler_


The documentation for this class was generated from the following files: