Flutter Engine
The Flutter Engine
Public Member Functions | List of all members
dart::compiler::ffi::MultipleNativeLocations Class Reference

#include <native_location.h>

Inheritance diagram for dart::compiler::ffi::MultipleNativeLocations:
dart::compiler::ffi::NativeLocation dart::ZoneAllocated

Public Member Functions

 MultipleNativeLocations (const NativeCompoundType &payload_type, const NativeLocations &locations)
 
virtual ~MultipleNativeLocations ()
 
virtual bool IsMultiple () const
 
virtual void PrintTo (BaseTextBuffer *f) const
 
virtual NativeLocationWithOtherNativeType (Zone *zone, const NativeType &new_payload_type, const NativeType &new_container_type) const
 
virtual intptr_t StackTopInBytes () const
 
const NativeLocationslocations () const
 
- Public Member Functions inherited from dart::compiler::ffi::NativeLocation
const NativeTypepayload_type () const
 
const NativeTypecontainer_type () const
 
virtual NativeLocationWithOtherNativeType (Zone *zone, const NativeType &new_payload_type, const NativeType &new_container_type) const =0
 
NativeLocationWidenTo4Bytes (Zone *zone) const
 
NativeLocationWidenTo8Bytes (Zone *zone) const
 
virtual bool IsRegisters () const
 
virtual bool IsFpuRegisters () const
 
virtual bool IsStack () const
 
virtual bool IsMultiple () const
 
virtual bool IsPointerToMemory () const
 
virtual bool IsBoth () const
 
virtual bool IsExpressibleAsLocation () const
 
virtual Location AsLocation () const
 
virtual void PrintTo (BaseTextBuffer *f) const
 
const char * ToCString (Zone *zone) const
 
const char * ToCString () const
 
const NativeRegistersLocationAsRegisters () const
 
const NativeFpuRegistersLocationAsFpuRegisters () const
 
const NativeStackLocationAsStack () const
 
const MultipleNativeLocationsAsMultiple () const
 
const PointerToMemoryLocationAsPointerToMemory () const
 
const BothNativeLocationsAsBoth () const
 
virtual NativeLocationSplit (Zone *zone, intptr_t num_parts, intptr_t index) const
 
virtual intptr_t StackTopInBytes () const
 
virtual bool Equals (const NativeLocation &other) const
 
virtual ~NativeLocation ()
 
- 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)
 

Additional Inherited Members

- Static Public Member Functions inherited from dart::compiler::ffi::NativeLocation
static bool LocationCanBeExpressed (Location loc, Representation rep)
 
static NativeLocationFromLocation (Zone *zone, Location loc, Representation rep)
 
static NativeLocationFromPairLocation (Zone *zone, Location loc, Representation rep, intptr_t index)
 
- Protected Member Functions inherited from dart::compiler::ffi::NativeLocation
 NativeLocation (const NativeType &payload_type, const NativeType &container_type)
 

Detailed Description

Definition at line 434 of file native_location.h.

Constructor & Destructor Documentation

◆ MultipleNativeLocations()

dart::compiler::ffi::MultipleNativeLocations::MultipleNativeLocations ( const NativeCompoundType payload_type,
const NativeLocations locations 
)
inline

Definition at line 436 of file native_location.h.

const NativeLocations & locations() const
NativeLocation(const NativeType &payload_type, const NativeType &container_type)
const NativeType & payload_type() const

◆ ~MultipleNativeLocations()

virtual dart::compiler::ffi::MultipleNativeLocations::~MultipleNativeLocations ( )
inlinevirtual

Definition at line 439 of file native_location.h.

439{}

Member Function Documentation

◆ IsMultiple()

virtual bool dart::compiler::ffi::MultipleNativeLocations::IsMultiple ( ) const
inlinevirtual

Reimplemented from dart::compiler::ffi::NativeLocation.

Definition at line 441 of file native_location.h.

441{ return true; }

◆ locations()

const NativeLocations & dart::compiler::ffi::MultipleNativeLocations::locations ( ) const
inline

Definition at line 454 of file native_location.h.

454{ return locations_; }

◆ PrintTo()

void dart::compiler::ffi::MultipleNativeLocations::PrintTo ( BaseTextBuffer f) const
virtual

Reimplemented from dart::compiler::ffi::NativeLocation.

Definition at line 355 of file native_location.cc.

355 {
356 f->Printf("M(");
357 for (intptr_t i = 0; i < locations_.length(); i++) {
358 if (i != 0) f->Printf(", ");
359 locations_[i]->PrintTo(f);
360 }
361 f->Printf(")");
362 PrintRepresentations(f, *this);
363}
intptr_t length() const
static void PrintRepresentations(BaseTextBuffer *f, const NativeLocation &loc)

◆ StackTopInBytes()

intptr_t dart::compiler::ffi::MultipleNativeLocations::StackTopInBytes ( ) const
virtual

Reimplemented from dart::compiler::ffi::NativeLocation.

Definition at line 179 of file native_location.cc.

179 {
180 intptr_t height = 0;
181 for (int i = 0; i < locations_.length(); i++) {
182 height = Utils::Maximum(height, locations_[i]->StackTopInBytes());
183 }
184 return height;
185}
static constexpr T Maximum(T x, T y)
Definition: utils.h:41
int32_t height

◆ WithOtherNativeType()

virtual NativeLocation & dart::compiler::ffi::MultipleNativeLocations::WithOtherNativeType ( Zone zone,
const NativeType new_payload_type,
const NativeType new_container_type 
) const
inlinevirtual

Implements dart::compiler::ffi::NativeLocation.

Definition at line 445 of file native_location.h.

448 {
450 }
#define UNREACHABLE_THIS()
Definition: native_type.h:25

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