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

#include <native_location.h>

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

Public Member Functions

 PointerToMemoryLocation (const NativeLocation &pointer_location, const NativeCompoundType &object_pointed_to)
 
 PointerToMemoryLocation (const NativeLocation &pointer_location, const NativeLocation &pointer_return_location, const NativeCompoundType &object_pointed_to)
 
virtual ~PointerToMemoryLocation ()
 
virtual bool IsPointerToMemory () const
 
virtual void PrintTo (BaseTextBuffer *f) const
 
virtual bool Equals (const NativeLocation &other) const
 
virtual NativeLocationWithOtherNativeType (Zone *zone, const NativeType &new_payload_type, const NativeType &new_container_type) const
 
virtual intptr_t StackTopInBytes () const
 
const NativeLocationpointer_location () const
 
const NativeLocationpointer_return_location () 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 378 of file native_location.h.

Constructor & Destructor Documentation

◆ PointerToMemoryLocation() [1/2]

dart::compiler::ffi::PointerToMemoryLocation::PointerToMemoryLocation ( const NativeLocation pointer_location,
const NativeCompoundType object_pointed_to 
)
inline

Definition at line 380 of file native_location.h.

382 : NativeLocation(object_pointed_to, object_pointed_to),
383 pointer_location_(pointer_location),
384 pointer_return_location_(pointer_location) {
386 }
NativeLocation(const NativeType &payload_type, const NativeType &container_type)
const NativeLocation & pointer_location() const
#define ASSERT(E)

◆ PointerToMemoryLocation() [2/2]

dart::compiler::ffi::PointerToMemoryLocation::PointerToMemoryLocation ( const NativeLocation pointer_location,
const NativeLocation pointer_return_location,
const NativeCompoundType object_pointed_to 
)
inline

Definition at line 387 of file native_location.h.

390 : NativeLocation(object_pointed_to, object_pointed_to),
391 pointer_location_(pointer_location),
392 pointer_return_location_(pointer_return_location) {
394 }
const NativeLocation & pointer_return_location() const

◆ ~PointerToMemoryLocation()

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

Definition at line 396 of file native_location.h.

396{}

Member Function Documentation

◆ Equals()

bool dart::compiler::ffi::PointerToMemoryLocation::Equals ( const NativeLocation other) const
virtual

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

Definition at line 259 of file native_location.cc.

259 {
260 if (!other.IsPointerToMemory()) {
261 return false;
262 }
263 const auto& other_pointer = other.AsPointerToMemory();
264 if (!other_pointer.pointer_location_.Equals(pointer_location_)) {
265 return false;
266 }
267 return other_pointer.payload_type().Equals(payload_type());
268}
const NativeType & payload_type() const

◆ IsPointerToMemory()

virtual bool dart::compiler::ffi::PointerToMemoryLocation::IsPointerToMemory ( ) const
inlinevirtual

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

Definition at line 398 of file native_location.h.

398{ return true; }

◆ pointer_location()

const NativeLocation & dart::compiler::ffi::PointerToMemoryLocation::pointer_location ( ) const
inline

Definition at line 416 of file native_location.h.

416{ return pointer_location_; }

◆ pointer_return_location()

const NativeLocation & dart::compiler::ffi::PointerToMemoryLocation::pointer_return_location ( ) const
inline

Definition at line 419 of file native_location.h.

419 {
420 return pointer_return_location_;
421 }

◆ PrintTo()

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

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

Definition at line 344 of file native_location.cc.

344 {
345 f->Printf("P(");
348 f->Printf(", ret:");
350 }
351 f->Printf(")");
352 PrintRepresentations(f, *this);
353}
virtual void PrintTo(BaseTextBuffer *f) const
virtual bool Equals(const NativeLocation &other) const
static void PrintRepresentations(BaseTextBuffer *f, const NativeLocation &loc)

◆ StackTopInBytes()

virtual intptr_t dart::compiler::ffi::PointerToMemoryLocation::StackTopInBytes ( ) const
inlinevirtual

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

Definition at line 411 of file native_location.h.

411 {
413 }
virtual intptr_t StackTopInBytes() const

◆ WithOtherNativeType()

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

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

Definition at line 404 of file native_location.h.

407 {
409 }
#define UNREACHABLE_THIS()
Definition: native_type.h:25

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