mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-23 01:24:30 +00:00
Add support for vector data types in the LLVM interpreter.
Patch by: Veselov, Yuri <Yuri.Veselov@intel.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178469 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -35,14 +35,19 @@ struct GenericValue {
|
||||
struct IntPair UIntPairVal;
|
||||
unsigned char Untyped[8];
|
||||
};
|
||||
APInt IntVal; // also used for long doubles
|
||||
APInt IntVal; // also used for long doubles.
|
||||
// For aggregate data types.
|
||||
std::vector<GenericValue> AggregateVal;
|
||||
|
||||
GenericValue() : DoubleVal(0.0), IntVal(1,0) {}
|
||||
// to make code faster, set GenericValue to zero could be omitted, but it is
|
||||
// potentially can cause problems, since GenericValue to store garbage
|
||||
// instead of zero.
|
||||
GenericValue() : IntVal(1,0) {UIntPairVal.first = 0; UIntPairVal.second = 0;}
|
||||
explicit GenericValue(void *V) : PointerVal(V), IntVal(1,0) { }
|
||||
};
|
||||
|
||||
inline GenericValue PTOGV(void *P) { return GenericValue(P); }
|
||||
inline void* GVTOP(const GenericValue &GV) { return GV.PointerVal; }
|
||||
|
||||
} // End llvm namespace
|
||||
} // End llvm namespace.
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user