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

#include <parallel_move_resolver.h>

Inheritance diagram for dart::ParallelMoveEmitter:
dart::ValueObject

Public Member Functions

 ParallelMoveEmitter (FlowGraphCompiler *compiler, ParallelMoveInstr *parallel_move)
 
void EmitNativeCode ()
 
- Public Member Functions inherited from dart::ValueObject
 ValueObject ()
 
 ~ValueObject ()
 

Detailed Description

Definition at line 67 of file parallel_move_resolver.h.

Constructor & Destructor Documentation

◆ ParallelMoveEmitter()

dart::ParallelMoveEmitter::ParallelMoveEmitter ( FlowGraphCompiler compiler,
ParallelMoveInstr parallel_move 
)
inline

Definition at line 69 of file parallel_move_resolver.h.

71 : compiler_(compiler), parallel_move_(parallel_move) {}

Member Function Documentation

◆ EmitNativeCode()

void dart::ParallelMoveEmitter::EmitNativeCode ( )

Definition at line 223 of file parallel_move_resolver.cc.

223 {
224 const auto& move_schedule = parallel_move_->move_schedule();
225 for (intptr_t i = 0; i < move_schedule.length(); i++) {
226 current_move_ = i;
227 const auto& op = move_schedule[i];
228 switch (op.kind) {
229 case ParallelMoveResolver::OpKind::kNop:
230 // |MoveSchedule::From| is expected to filter nops.
231 UNREACHABLE();
232 break;
233 case ParallelMoveResolver::OpKind::kMove:
234 EmitMove(op.operands);
235 break;
236 case ParallelMoveResolver::OpKind::kSwap:
237 EmitSwap(op.operands);
238 break;
239 }
240 }
241}
#define UNREACHABLE()
Definition: assert.h:248
const MoveSchedule & move_schedule() const
Definition: il.h:1625

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