#include <native_location.h>
|
| NativeRegistersLocation (const NativeType &payload_type, const NativeType &container_type, ZoneGrowableArray< Register > *registers) |
|
| NativeRegistersLocation (Zone *zone, const NativeType &payload_type, const NativeType &container_type, Register reg) |
|
| NativeRegistersLocation (Zone *zone, const NativeType &payload_type, const NativeType &container_type, Register register1, Register register2) |
|
virtual | ~NativeRegistersLocation () |
|
virtual NativeRegistersLocation & | WithOtherNativeType (Zone *zone, const NativeType &new_payload_type, const NativeType &new_container_type) const |
|
virtual bool | IsRegisters () const |
|
virtual bool | IsExpressibleAsLocation () const |
|
virtual Location | AsLocation () const |
|
intptr_t | num_regs () const |
|
Register | reg_at (intptr_t index) const |
|
virtual NativeRegistersLocation & | Split (Zone *zone, intptr_t num_parts, intptr_t index) const |
|
virtual void | PrintTo (BaseTextBuffer *f) const |
|
virtual bool | Equals (const NativeLocation &other) const |
|
const NativeType & | payload_type () const |
|
const NativeType & | container_type () const |
|
NativeLocation & | WidenTo4Bytes (Zone *zone) const |
|
NativeLocation & | WidenTo8Bytes (Zone *zone) const |
|
virtual bool | IsFpuRegisters () const |
|
virtual bool | IsStack () const |
|
virtual bool | IsMultiple () const |
|
virtual bool | IsPointerToMemory () const |
|
virtual bool | IsBoth () const |
|
const char * | ToCString (Zone *zone) const |
|
const char * | ToCString () const |
|
const NativeRegistersLocation & | AsRegisters () const |
|
const NativeFpuRegistersLocation & | AsFpuRegisters () const |
|
const NativeStackLocation & | AsStack () const |
|
const MultipleNativeLocations & | AsMultiple () const |
|
const PointerToMemoryLocation & | AsPointerToMemory () const |
|
const BothNativeLocations & | AsBoth () const |
|
virtual intptr_t | StackTopInBytes () const |
|
virtual | ~NativeLocation () |
|
| ZoneAllocated () |
|
void * | operator new (size_t size) |
|
void * | operator new (size_t size, Zone *zone) |
|
void | operator delete (void *pointer) |
|
Definition at line 159 of file native_location.h.
◆ NativeRegistersLocation() [1/3]
Definition at line 161 of file native_location.h.
const NativeType & container_type() const
NativeLocation(const NativeType &payload_type, const NativeType &container_type)
const NativeType & payload_type() const
◆ NativeRegistersLocation() [2/3]
dart::compiler::ffi::NativeRegistersLocation::NativeRegistersLocation |
( |
Zone * |
zone, |
|
|
const NativeType & |
payload_type, |
|
|
const NativeType & |
container_type, |
|
|
Register |
reg |
|
) |
| |
|
inline |
Definition at line 165 of file native_location.h.
170 regs_ = new (zone) ZoneGrowableArray<Register>(zone, 1);
172 }
◆ NativeRegistersLocation() [3/3]
Definition at line 173 of file native_location.h.
179 regs_ = new (zone) ZoneGrowableArray<Register>(zone, 2);
180 regs_->
Add(register1);
181 regs_->
Add(register2);
182 }
◆ ~NativeRegistersLocation()
virtual dart::compiler::ffi::NativeRegistersLocation::~NativeRegistersLocation |
( |
| ) |
|
|
inlinevirtual |
◆ AsLocation()
Location dart::compiler::ffi::NativeRegistersLocation::AsLocation |
( |
| ) |
const |
|
virtual |
Reimplemented from dart::compiler::ffi::NativeLocation.
Definition at line 106 of file native_location.cc.
106 {
109 case 1:
111 case 2:
114 }
116}
const T & At(intptr_t index) const
static Location Pair(Location first, Location second)
static Location RegisterLocation(Register reg)
intptr_t num_regs() const
virtual bool IsExpressibleAsLocation() const
#define UNREACHABLE_THIS()
◆ Equals()
bool dart::compiler::ffi::NativeRegistersLocation::Equals |
( |
const NativeLocation & |
other | ) |
const |
|
virtual |
Reimplemented from dart::compiler::ffi::NativeLocation.
Definition at line 219 of file native_location.cc.
219 {
220 if (!other.IsRegisters()) {
221 return false;
222 }
223 const auto& other_regs = other.AsRegisters();
224 if (other_regs.num_regs() !=
num_regs()) {
225 return false;
226 }
227 for (intptr_t i = 0; i <
num_regs(); i++) {
228 if (other_regs.reg_at(i) !=
reg_at(i)) {
229 return false;
230 }
231 }
232 return true;
233}
Register reg_at(intptr_t index) const
◆ IsExpressibleAsLocation()
virtual bool dart::compiler::ffi::NativeRegistersLocation::IsExpressibleAsLocation |
( |
| ) |
const |
|
inlinevirtual |
◆ IsRegisters()
virtual bool dart::compiler::ffi::NativeRegistersLocation::IsRegisters |
( |
| ) |
const |
|
inlinevirtual |
◆ num_regs()
intptr_t dart::compiler::ffi::NativeRegistersLocation::num_regs |
( |
| ) |
const |
|
inline |
◆ PrintTo()
void dart::compiler::ffi::NativeRegistersLocation::PrintTo |
( |
BaseTextBuffer * |
f | ) |
const |
|
virtual |
Reimplemented from dart::compiler::ffi::NativeLocation.
Definition at line 292 of file native_location.cc.
292 {
295 } else {
297 for (intptr_t i = 0; i <
num_regs(); i++) {
298 if (i != 0) {
300 }
302 }
304 }
306}
static const char * RegisterAbiName(Register reg)
static void PrintRepresentations(BaseTextBuffer *f, const NativeLocation &loc)
◆ reg_at()
Register dart::compiler::ffi::NativeRegistersLocation::reg_at |
( |
intptr_t |
index | ) |
const |
|
inline |
◆ Split()
NativeRegistersLocation & dart::compiler::ffi::NativeRegistersLocation::Split |
( |
Zone * |
zone, |
|
|
intptr_t |
num_parts, |
|
|
intptr_t |
index |
|
) |
| const |
|
virtual |
Reimplemented from dart::compiler::ffi::NativeLocation.
Definition at line 144 of file native_location.cc.
146 {
152}
NativeRegistersLocation(const NativeType &payload_type, const NativeType &container_type, ZoneGrowableArray< Register > *registers)
virtual NativeType & Split(Zone *zone, intptr_t index) const
◆ WithOtherNativeType()
The documentation for this class was generated from the following files: