Flutter Engine
The Flutter Engine
Public Member Functions | List of all members
dart::LateInitializationErrorSlowPath Class Reference

#include <flow_graph_compiler.h>

Inheritance diagram for dart::LateInitializationErrorSlowPath:
dart::ThrowErrorSlowPathCode dart::TemplateSlowPathCode< Instruction > dart::SlowPathCode dart::ZoneAllocated

Public Member Functions

 LateInitializationErrorSlowPath (Instruction *instruction)
 
virtual const char * name ()
 
virtual intptr_t GetNumberOfArgumentsForRuntimeCall ()
 
virtual void PushArgumentsForRuntimeCall (FlowGraphCompiler *compiler)
 
virtual void EmitSharedStubCall (FlowGraphCompiler *compiler, bool save_fpu_registers)
 
- Public Member Functions inherited from dart::ThrowErrorSlowPathCode
 ThrowErrorSlowPathCode (Instruction *instruction, const RuntimeEntry &runtime_entry)
 
virtual const char * name ()=0
 
virtual void EmitCodeAtSlowPathEntry (FlowGraphCompiler *compiler)
 
virtual void AddMetadataForRuntimeCall (FlowGraphCompiler *compiler)
 
virtual void PushArgumentsForRuntimeCall (FlowGraphCompiler *compiler)
 
virtual intptr_t GetNumberOfArgumentsForRuntimeCall ()
 
virtual void EmitSharedStubCall (FlowGraphCompiler *compiler, bool save_fpu_registers)
 
virtual void EmitNativeCode (FlowGraphCompiler *compiler)
 
- Public Member Functions inherited from dart::TemplateSlowPathCode< Instruction >
 TemplateSlowPathCode (Instruction *instruction)
 
Instructioninstruction () const
 
- Public Member Functions inherited from dart::SlowPathCode
 SlowPathCode (Instruction *instruction)
 
virtual ~SlowPathCode ()
 
Instructioninstruction () const
 
compiler::Labelentry_label ()
 
compiler::Labelexit_label ()
 
void GenerateCode (FlowGraphCompiler *compiler)
 
- Public Member Functions inherited from dart::ZoneAllocated
 ZoneAllocated ()
 
void * operator new (size_t size)
 
void * operator new (size_t size, Zone *zone)
 
void operator delete (void *pointer)
 

Detailed Description

Definition at line 312 of file flow_graph_compiler.h.

Constructor & Destructor Documentation

◆ LateInitializationErrorSlowPath()

dart::LateInitializationErrorSlowPath::LateInitializationErrorSlowPath ( Instruction instruction)
inlineexplicit

Definition at line 314 of file flow_graph_compiler.h.

316 kLateFieldNotInitializedErrorRuntimeEntry) {
317 ASSERT(instruction->IsLoadField() || instruction->IsLoadStaticField());
318 }
ThrowErrorSlowPathCode(Instruction *instruction, const RuntimeEntry &runtime_entry)
#define ASSERT(E)

Member Function Documentation

◆ EmitSharedStubCall()

void dart::LateInitializationErrorSlowPath::EmitSharedStubCall ( FlowGraphCompiler compiler,
bool  save_fpu_registers 
)
virtual

Reimplemented from dart::ThrowErrorSlowPathCode.

Definition at line 3277 of file flow_graph_compiler.cc.

3279 {
3280#if defined(TARGET_ARCH_IA32)
3281 UNREACHABLE();
3282#else
3283 ASSERT(instruction()->locs()->temp(0).reg() ==
3286 Field::ZoneHandle(OriginalField()));
3287 auto object_store = compiler->isolate_group()->object_store();
3288 const auto& stub = Code::ZoneHandle(
3289 compiler->zone(),
3290 save_fpu_registers
3291 ? object_store->late_initialization_error_stub_with_fpu_regs_stub()
3292 : object_store
3293 ->late_initialization_error_stub_without_fpu_regs_stub());
3294 compiler->EmitCallToStub(stub);
3295#endif
3296}
#define UNREACHABLE()
Definition: assert.h:248
static Object & ZoneHandle()
Definition: object.h:419
#define __
static constexpr Register kFieldReg

◆ GetNumberOfArgumentsForRuntimeCall()

virtual intptr_t dart::LateInitializationErrorSlowPath::GetNumberOfArgumentsForRuntimeCall ( )
inlinevirtual

Reimplemented from dart::ThrowErrorSlowPathCode.

Definition at line 321 of file flow_graph_compiler.h.

321 {
322 return 1; // field
323 }

◆ name()

virtual const char * dart::LateInitializationErrorSlowPath::name ( )
inlinevirtual

Implements dart::ThrowErrorSlowPathCode.

Definition at line 319 of file flow_graph_compiler.h.

319{ return "late initialization error"; }

◆ PushArgumentsForRuntimeCall()

void dart::LateInitializationErrorSlowPath::PushArgumentsForRuntimeCall ( FlowGraphCompiler compiler)
virtual

Reimplemented from dart::ThrowErrorSlowPathCode.

Definition at line 3272 of file flow_graph_compiler.cc.

3273 {
3274 __ PushObject(Field::ZoneHandle(OriginalField()));
3275}

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