diff options
Diffstat (limited to 'lib/ExecutionEngine')
-rw-r--r-- | lib/ExecutionEngine/ExecutionEngine.cpp | 26 | ||||
-rw-r--r-- | lib/ExecutionEngine/Interpreter/Execution.cpp | 4 | ||||
-rw-r--r-- | lib/ExecutionEngine/JIT/JIT.cpp | 24 |
3 files changed, 27 insertions, 27 deletions
diff --git a/lib/ExecutionEngine/ExecutionEngine.cpp b/lib/ExecutionEngine/ExecutionEngine.cpp index 067f24de8b..f61369cd50 100644 --- a/lib/ExecutionEngine/ExecutionEngine.cpp +++ b/lib/ExecutionEngine/ExecutionEngine.cpp @@ -390,19 +390,19 @@ GenericValue ExecutionEngine::getConstantValue(const Constant *C) { } switch (C->getType()->getTypeID()) { -#define GET_CONST_VAL(TY, CTY, CLASS) \ - case Type::TY##TyID: Result.TY##Val = (CTY)cast<CLASS>(C)->getValue(); break - GET_CONST_VAL(Bool , bool , ConstantBool); - GET_CONST_VAL(UByte , unsigned char , ConstantUInt); - GET_CONST_VAL(SByte , signed char , ConstantSInt); - GET_CONST_VAL(UShort , unsigned short, ConstantUInt); - GET_CONST_VAL(Short , signed short , ConstantSInt); - GET_CONST_VAL(UInt , unsigned int , ConstantUInt); - GET_CONST_VAL(Int , signed int , ConstantSInt); - GET_CONST_VAL(ULong , uint64_t , ConstantUInt); - GET_CONST_VAL(Long , int64_t , ConstantSInt); - GET_CONST_VAL(Float , float , ConstantFP); - GET_CONST_VAL(Double , double , ConstantFP); +#define GET_CONST_VAL(TY, CTY, CLASS, GETMETH) \ + case Type::TY##TyID: Result.TY##Val = (CTY)cast<CLASS>(C)->GETMETH(); break + GET_CONST_VAL(Bool , bool , ConstantBool, getValue); + GET_CONST_VAL(UByte , unsigned char , ConstantInt, getZExtValue); + GET_CONST_VAL(SByte , signed char , ConstantInt, getSExtValue); + GET_CONST_VAL(UShort , unsigned short, ConstantInt, getZExtValue); + GET_CONST_VAL(Short , signed short , ConstantInt, getSExtValue); + GET_CONST_VAL(UInt , unsigned int , ConstantInt, getZExtValue); + GET_CONST_VAL(Int , signed int , ConstantInt, getSExtValue); + GET_CONST_VAL(ULong , uint64_t , ConstantInt, getZExtValue); + GET_CONST_VAL(Long , int64_t , ConstantInt, getSExtValue); + GET_CONST_VAL(Float , float , ConstantFP, getValue); + GET_CONST_VAL(Double , double , ConstantFP, getValue); #undef GET_CONST_VAL case Type::PointerTyID: if (isa<ConstantPointerNull>(C)) diff --git a/lib/ExecutionEngine/Interpreter/Execution.cpp b/lib/ExecutionEngine/Interpreter/Execution.cpp index 4104ff3636..8c812f82d4 100644 --- a/lib/ExecutionEngine/Interpreter/Execution.cpp +++ b/lib/ExecutionEngine/Interpreter/Execution.cpp @@ -735,8 +735,8 @@ GenericValue Interpreter::executeGEPOperation(Value *Ptr, gep_type_iterator I, if (const StructType *STy = dyn_cast<StructType>(*I)) { const StructLayout *SLO = TD.getStructLayout(STy); - const ConstantUInt *CPU = cast<ConstantUInt>(I.getOperand()); - unsigned Index = unsigned(CPU->getValue()); + const ConstantInt *CPU = cast<ConstantInt>(I.getOperand()); + unsigned Index = unsigned(CPU->getZExtValue()); Total += (PointerTy)SLO->MemberOffsets[Index]; } else { diff --git a/lib/ExecutionEngine/JIT/JIT.cpp b/lib/ExecutionEngine/JIT/JIT.cpp index 0a5423ef9d..9795eb7935 100644 --- a/lib/ExecutionEngine/JIT/JIT.cpp +++ b/lib/ExecutionEngine/JIT/JIT.cpp @@ -196,22 +196,22 @@ GenericValue JIT::runFunction(Function *F, switch (ArgTy->getTypeID()) { default: assert(0 && "Unknown argument type for function call!"); case Type::BoolTyID: C = ConstantBool::get(AV.BoolVal); break; - case Type::SByteTyID: C = ConstantSInt::get(ArgTy, AV.SByteVal); break; - case Type::UByteTyID: C = ConstantUInt::get(ArgTy, AV.UByteVal); break; - case Type::ShortTyID: C = ConstantSInt::get(ArgTy, AV.ShortVal); break; - case Type::UShortTyID: C = ConstantUInt::get(ArgTy, AV.UShortVal); break; - case Type::IntTyID: C = ConstantSInt::get(ArgTy, AV.IntVal); break; - case Type::UIntTyID: C = ConstantUInt::get(ArgTy, AV.UIntVal); break; - case Type::LongTyID: C = ConstantSInt::get(ArgTy, AV.LongVal); break; - case Type::ULongTyID: C = ConstantUInt::get(ArgTy, AV.ULongVal); break; - case Type::FloatTyID: C = ConstantFP ::get(ArgTy, AV.FloatVal); break; - case Type::DoubleTyID: C = ConstantFP ::get(ArgTy, AV.DoubleVal); break; + case Type::SByteTyID: C = ConstantInt::get(ArgTy, AV.SByteVal); break; + case Type::UByteTyID: C = ConstantInt::get(ArgTy, AV.UByteVal); break; + case Type::ShortTyID: C = ConstantInt::get(ArgTy, AV.ShortVal); break; + case Type::UShortTyID: C = ConstantInt::get(ArgTy, AV.UShortVal); break; + case Type::IntTyID: C = ConstantInt::get(ArgTy, AV.IntVal); break; + case Type::UIntTyID: C = ConstantInt::get(ArgTy, AV.UIntVal); break; + case Type::LongTyID: C = ConstantInt::get(ArgTy, AV.LongVal); break; + case Type::ULongTyID: C = ConstantInt::get(ArgTy, AV.ULongVal); break; + case Type::FloatTyID: C = ConstantFP ::get(ArgTy, AV.FloatVal); break; + case Type::DoubleTyID: C = ConstantFP ::get(ArgTy, AV.DoubleVal); break; case Type::PointerTyID: void *ArgPtr = GVTOP(AV); if (sizeof(void*) == 4) { - C = ConstantSInt::get(Type::IntTy, (int)(intptr_t)ArgPtr); + C = ConstantInt::get(Type::IntTy, (int)(intptr_t)ArgPtr); } else { - C = ConstantSInt::get(Type::LongTy, (intptr_t)ArgPtr); + C = ConstantInt::get(Type::LongTy, (intptr_t)ArgPtr); } C = ConstantExpr::getCast(C, ArgTy); // Cast the integer to pointer break; |