top | up | prev | next

OffsetPlusPointer Class

Definition at line 574 of OperationRepository.cpp

Constructors

OffsetPlusPointer(TypeSymbol* longType_, TypeSymbol* pointerType_, const Span& span, const boost::uuids::uuid& moduleId)

Member Functions

const char* ClassName() const override
SymbolAccess DeclaredAccess() const override
void GenerateCall(Emitter& emitter, std::vector<GenObject*>& genObjects, OperationFlags flags, const Span& span, const boost::uuids::uuid& moduleId) override
bool IsBasicTypeOperation() const override

Constructor Details

OffsetPlusPointer Constructor

cmajor::binder::OffsetPlusPointer::OffsetPlusPointer(TypeSymbol* longType_, TypeSymbol* pointerType_, const Span& span, const boost::uuids::uuid& moduleId)

Definition at line 584 of OperationRepository.cpp
Declaration at line 577 of OperationRepository.cpp


Member Function Details

ClassName Member Function

const char * cmajor::binder::OffsetPlusPointer::ClassName() const override

Definition at line 581 of OperationRepository.cpp :
 581 { return "OffsetPlusPointer"; }


DeclaredAccess Member Function

SymbolAccess cmajor::binder::OffsetPlusPointer::DeclaredAccess() const override

Definition at line 578 of OperationRepository.cpp :
 578 { return SymbolAccess::public_; }


GenerateCall Member Function

void cmajor::binder::OffsetPlusPointer::GenerateCall(Emitter& emitter, std::vector<GenObject*>& genObjects, OperationFlags flags, const Span& span, const boost::uuids::uuid& moduleId) override

Definition at line 598 of OperationRepository.cpp :
 599 {
 600     Assert(genObjects.size() == 2"operator+ needs two objects");
 601     genObjects[0]->Load(emitterOperationFlags::none);
 602     void* left = emitter.Stack().Pop();
 603     genObjects[1]->Load(emitterOperationFlags::none);
 604     void* right = emitter.Stack().Pop();
 605     emitter.Stack().Push(emitter.ComputeAddress(rightleft));
 606 }


Declaration at line 579 of OperationRepository.cpp


IsBasicTypeOperation Member Function

bool cmajor::binder::OffsetPlusPointer::IsBasicTypeOperation() const override

Definition at line 580 of OperationRepository.cpp :
 580 { return true; }


top | up | prev | next