top | up | prev | next

ULongToVoidPtrConversion Class

Definition at line 204 of BoundCompileUnit.cpp

Constructors

ULongToVoidPtrConversion(TypeSymbol* ulongType_, TypeSymbol* voidPtrType_)

Member Functions

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

Member Variables

TypeSymbol* ulongType
TypeSymbol* voidPtrType

Constructor Details

ULongToVoidPtrConversion Constructor

cmajor::binder::ULongToVoidPtrConversion::ULongToVoidPtrConversion(TypeSymbol* ulongType_, TypeSymbol* voidPtrType_)

Definition at line 218 of BoundCompileUnit.cpp :
 218 :
 219 FunctionSymbol(Span()boost::uuids::nil_uuid()U"ulong2voidPtr")ulongType(ulongType_)voidPtrType(voidPtrType_)
 220 {
 221     SetConversion();
 222     SetGroupName(U"@conversion");
 223     SetAccess(SymbolAccess::public_);
 224     SetConversionSourceType(ulongType->PlainType(GetSpan()SourceModuleId()));
 225     SetConversionTargetType(voidPtrType->PlainType(GetSpan()SourceModuleId()));
 226 }


Declaration at line 207 of BoundCompileUnit.cpp


Member Function Details

ClassName Member Function

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

Definition at line 212 of BoundCompileUnit.cpp :
 212 { return "ULongToVoidPtrConversion"; }


ConversionDistance Member Function

uint8_t cmajor::binder::ULongToVoidPtrConversion::ConversionDistance() const override

Definition at line 209 of BoundCompileUnit.cpp :
 209 { return 255; }


GenerateCall Member Function

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

Definition at line 228 of BoundCompileUnit.cpp :
 229 {
 230     emitter.SetCurrentDebugLocation(span);
 231     void* value = emitter.Stack().Pop();
 232     emitter.Stack().Push(emitter.CreateIntToPtr(valuevoidPtrType->IrType(emitter)));
 233 }


Declaration at line 211 of BoundCompileUnit.cpp


GetConversionType Member Function

ConversionType cmajor::binder::ULongToVoidPtrConversion::GetConversionType() const override

Definition at line 208 of BoundCompileUnit.cpp :
 208 { return ConversionType::explicit_; }


IsBasicTypeOperation Member Function

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

Definition at line 210 of BoundCompileUnit.cpp :
 210 { return true; }


top | up | prev | next