mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-23 17:24:48 +00:00
Avoid memory leakage by having caller construct the APInt for the
destination value of LoadValueFromMemory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34883 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -578,9 +578,9 @@ Store4BytesLittleEndian:
|
|||||||
|
|
||||||
/// FIXME: document
|
/// FIXME: document
|
||||||
///
|
///
|
||||||
GenericValue ExecutionEngine::LoadValueFromMemory(GenericValue *Ptr,
|
void ExecutionEngine::LoadValueFromMemory(GenericValue &Result,
|
||||||
|
GenericValue *Ptr,
|
||||||
const Type *Ty) {
|
const Type *Ty) {
|
||||||
GenericValue Result;
|
|
||||||
if (getTargetData()->isLittleEndian()) {
|
if (getTargetData()->isLittleEndian()) {
|
||||||
switch (Ty->getTypeID()) {
|
switch (Ty->getTypeID()) {
|
||||||
case Type::IntegerTyID: {
|
case Type::IntegerTyID: {
|
||||||
@ -605,7 +605,7 @@ GenericValue ExecutionEngine::LoadValueFromMemory(GenericValue *Ptr,
|
|||||||
((uint64_t)Ptr->Untyped[6] << 48) |
|
((uint64_t)Ptr->Untyped[6] << 48) |
|
||||||
((uint64_t)Ptr->Untyped[7] << 56);
|
((uint64_t)Ptr->Untyped[7] << 56);
|
||||||
} else
|
} else
|
||||||
Result.APIntVal = new APInt(BitWidth, BitWidth/64, (uint64_t*)Ptr);
|
*(Result.APIntVal) = APInt(BitWidth, BitWidth/64, (uint64_t*)Ptr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Load4BytesLittleEndian:
|
Load4BytesLittleEndian:
|
||||||
@ -657,7 +657,7 @@ GenericValue ExecutionEngine::LoadValueFromMemory(GenericValue *Ptr,
|
|||||||
((uint64_t)Ptr->Untyped[1] << 48) |
|
((uint64_t)Ptr->Untyped[1] << 48) |
|
||||||
((uint64_t)Ptr->Untyped[0] << 56);
|
((uint64_t)Ptr->Untyped[0] << 56);
|
||||||
} else
|
} else
|
||||||
Result.APIntVal = new APInt(BitWidth, BitWidth/64, (uint64_t*)Ptr);
|
*(Result.APIntVal) = APInt(BitWidth, BitWidth/64, (uint64_t*)Ptr);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Load4BytesBigEndian:
|
Load4BytesBigEndian:
|
||||||
@ -686,7 +686,6 @@ GenericValue ExecutionEngine::LoadValueFromMemory(GenericValue *Ptr,
|
|||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// InitializeMemory - Recursive function to apply a Constant value into the
|
// InitializeMemory - Recursive function to apply a Constant value into the
|
||||||
|
Reference in New Issue
Block a user