mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-03 13:31:05 +00:00
1. Make StoreValueToMemory a little more efficient by not requiring caller
to make a copy of the GenericValue. 2. Fix a copy & paste bug in StoreValueToMemory where 64-bit values were truncated to 32 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34958 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2471ae46df
commit
415c1f7438
@ -410,7 +410,7 @@ GenericValue ExecutionEngine::getConstantValue(const Constant *C) {
|
||||
/// It is not a pointer to a GenericValue containing the address at which to
|
||||
/// store Val.
|
||||
///
|
||||
void ExecutionEngine::StoreValueToMemory(GenericValue Val, GenericValue *Ptr,
|
||||
void ExecutionEngine::StoreValueToMemory(const GenericValue &Val, GenericValue *Ptr,
|
||||
const Type *Ty) {
|
||||
switch (Ty->getTypeID()) {
|
||||
case Type::IntegerTyID: {
|
||||
@ -423,7 +423,7 @@ void ExecutionEngine::StoreValueToMemory(GenericValue Val, GenericValue *Ptr,
|
||||
} else if (BitWidth <= 32) {
|
||||
*((uint32_t*)Ptr) = uint32_t(Val.IntVal.getZExtValue());
|
||||
} else if (BitWidth <= 64) {
|
||||
*((uint64_t*)Ptr) = uint32_t(Val.IntVal.getZExtValue());
|
||||
*((uint64_t*)Ptr) = uint64_t(Val.IntVal.getZExtValue());
|
||||
} else {
|
||||
uint64_t *Dest = (uint64_t*)Ptr;
|
||||
const uint64_t *Src = Val.IntVal.getRawData();
|
||||
|
Loading…
Reference in New Issue
Block a user