V8 Project
v8::internal::StringCharCodeAtGenerator Class Reference

#include <code-stubs.h>

+ Collaboration diagram for v8::internal::StringCharCodeAtGenerator:

Public Member Functions

 StringCharCodeAtGenerator (Register object, Register index, Register result, Label *receiver_not_string, Label *index_not_number, Label *index_out_of_range, StringIndexFlags index_flags)
 
void GenerateFast (MacroAssembler *masm)
 
void GenerateSlow (MacroAssembler *masm, const RuntimeCallHelper &call_helper)
 
void SkipSlow (MacroAssembler *masm, Label *bailout)
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (StringCharCodeAtGenerator)
 

Private Attributes

Register object_
 
Register index_
 
Register result_
 
Label * receiver_not_string_
 
Label * index_not_number_
 
Label * index_out_of_range_
 
StringIndexFlags index_flags_
 
Label call_runtime_
 
Label index_not_smi_
 
Label got_smi_index_
 
Label exit_
 

Detailed Description

Definition at line 1609 of file code-stubs.h.

Constructor & Destructor Documentation

◆ StringCharCodeAtGenerator()

v8::internal::StringCharCodeAtGenerator::StringCharCodeAtGenerator ( Register  object,
Register  index,
Register  result,
Label *  receiver_not_string,
Label *  index_not_number,
Label *  index_out_of_range,
StringIndexFlags  index_flags 
)
inline

Definition at line 1611 of file code-stubs.h.

1618  : object_(object),
1619  index_(index),
1620  result_(result),
1621  receiver_not_string_(receiver_not_string),
1622  index_not_number_(index_not_number),
1623  index_out_of_range_(index_out_of_range),
1624  index_flags_(index_flags) {
1625  DCHECK(!result_.is(object_));
1626  DCHECK(!result_.is(index_));
1627  }
#define DCHECK(condition)
Definition: logging.h:205
bool is(Register reg) const

References DCHECK, index_, v8::internal::Register::is(), object_, and result_.

+ Here is the call graph for this function:

Member Function Documentation

◆ DISALLOW_COPY_AND_ASSIGN()

v8::internal::StringCharCodeAtGenerator::DISALLOW_COPY_AND_ASSIGN ( StringCharCodeAtGenerator  )
private

◆ GenerateFast()

void v8::internal::StringCharCodeAtGenerator::GenerateFast ( MacroAssembler masm)

Referenced by v8::internal::StringCharAtGenerator::GenerateFast().

+ Here is the caller graph for this function:

◆ GenerateSlow()

void v8::internal::StringCharCodeAtGenerator::GenerateSlow ( MacroAssembler masm,
const RuntimeCallHelper call_helper 
)

Referenced by v8::internal::StringCharAtGenerator::GenerateSlow().

+ Here is the caller graph for this function:

◆ SkipSlow()

void v8::internal::StringCharCodeAtGenerator::SkipSlow ( MacroAssembler masm,
Label *  bailout 
)
inline

Definition at line 1640 of file code-stubs.h.

1640  {
1641  masm->bind(&index_not_smi_);
1642  masm->bind(&call_runtime_);
1643  masm->jmp(bailout);
1644  }

References v8::internal::Assembler::bind(), call_runtime_, index_not_smi_, and v8::internal::MacroAssembler::jmp().

Referenced by v8::internal::StringCharAtGenerator::SkipSlow().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ call_runtime_

Label v8::internal::StringCharCodeAtGenerator::call_runtime_
private

Definition at line 1657 of file code-stubs.h.

Referenced by SkipSlow().

◆ exit_

Label v8::internal::StringCharCodeAtGenerator::exit_
private

Definition at line 1660 of file code-stubs.h.

◆ got_smi_index_

Label v8::internal::StringCharCodeAtGenerator::got_smi_index_
private

Definition at line 1659 of file code-stubs.h.

◆ index_

Register v8::internal::StringCharCodeAtGenerator::index_
private

Definition at line 1648 of file code-stubs.h.

Referenced by StringCharCodeAtGenerator().

◆ index_flags_

StringIndexFlags v8::internal::StringCharCodeAtGenerator::index_flags_
private

Definition at line 1655 of file code-stubs.h.

◆ index_not_number_

Label* v8::internal::StringCharCodeAtGenerator::index_not_number_
private

Definition at line 1652 of file code-stubs.h.

◆ index_not_smi_

Label v8::internal::StringCharCodeAtGenerator::index_not_smi_
private

Definition at line 1658 of file code-stubs.h.

Referenced by SkipSlow().

◆ index_out_of_range_

Label* v8::internal::StringCharCodeAtGenerator::index_out_of_range_
private

Definition at line 1653 of file code-stubs.h.

◆ object_

Register v8::internal::StringCharCodeAtGenerator::object_
private

Definition at line 1647 of file code-stubs.h.

Referenced by StringCharCodeAtGenerator().

◆ receiver_not_string_

Label* v8::internal::StringCharCodeAtGenerator::receiver_not_string_
private

Definition at line 1651 of file code-stubs.h.

◆ result_

Register v8::internal::StringCharCodeAtGenerator::result_
private

Definition at line 1649 of file code-stubs.h.

Referenced by StringCharCodeAtGenerator().


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