mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-07 12:28:24 +00:00
* Add BoolAlignment to TargetData, default is 1 byte, size 1 byte
* Convert tabs to spaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15120 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -79,7 +79,7 @@ TargetData::TargetData(const std::string &TargetName,
|
|||||||
unsigned char PtrAl, unsigned char DoubleAl,
|
unsigned char PtrAl, unsigned char DoubleAl,
|
||||||
unsigned char FloatAl, unsigned char LongAl,
|
unsigned char FloatAl, unsigned char LongAl,
|
||||||
unsigned char IntAl, unsigned char ShortAl,
|
unsigned char IntAl, unsigned char ShortAl,
|
||||||
unsigned char ByteAl) {
|
unsigned char ByteAl, unsigned char BoolAl) {
|
||||||
|
|
||||||
// If this assert triggers, a pass "required" TargetData information, but the
|
// If this assert triggers, a pass "required" TargetData information, but the
|
||||||
// top level tool did not provide one for it. We do not want to default
|
// top level tool did not provide one for it. We do not want to default
|
||||||
@@ -97,6 +97,7 @@ TargetData::TargetData(const std::string &TargetName,
|
|||||||
IntAlignment = IntAl;
|
IntAlignment = IntAl;
|
||||||
ShortAlignment = ShortAl;
|
ShortAlignment = ShortAl;
|
||||||
ByteAlignment = ByteAl;
|
ByteAlignment = ByteAl;
|
||||||
|
BoolAlignment = BoolAl;
|
||||||
}
|
}
|
||||||
|
|
||||||
TargetData::TargetData(const std::string &ToolName, const Module *M) {
|
TargetData::TargetData(const std::string &ToolName, const Module *M) {
|
||||||
@@ -109,6 +110,7 @@ TargetData::TargetData(const std::string &ToolName, const Module *M) {
|
|||||||
IntAlignment = 4;
|
IntAlignment = 4;
|
||||||
ShortAlignment = 2;
|
ShortAlignment = 2;
|
||||||
ByteAlignment = 1;
|
ByteAlignment = 1;
|
||||||
|
BoolAlignment = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::map<std::pair<const TargetData*,const StructType*>,
|
static std::map<std::pair<const TargetData*,const StructType*>,
|
||||||
@@ -149,8 +151,8 @@ static inline void getTypeInfo(const Type *Ty, const TargetData *TD,
|
|||||||
uint64_t &Size, unsigned char &Alignment) {
|
uint64_t &Size, unsigned char &Alignment) {
|
||||||
assert(Ty->isSized() && "Cannot getTypeInfo() on a type that is unsized!");
|
assert(Ty->isSized() && "Cannot getTypeInfo() on a type that is unsized!");
|
||||||
switch (Ty->getTypeID()) {
|
switch (Ty->getTypeID()) {
|
||||||
|
case Type::BoolTyID: Size = 1; Alignment = TD->getBoolAlignment(); return;
|
||||||
case Type::VoidTyID:
|
case Type::VoidTyID:
|
||||||
case Type::BoolTyID:
|
|
||||||
case Type::UByteTyID:
|
case Type::UByteTyID:
|
||||||
case Type::SByteTyID: Size = 1; Alignment = TD->getByteAlignment(); return;
|
case Type::SByteTyID: Size = 1; Alignment = TD->getByteAlignment(); return;
|
||||||
case Type::UShortTyID:
|
case Type::UShortTyID:
|
||||||
|
@@ -45,10 +45,11 @@ TargetMachine::TargetMachine(const std::string &name, IntrinsicLowering *il,
|
|||||||
unsigned char PtrSize, unsigned char PtrAl,
|
unsigned char PtrSize, unsigned char PtrAl,
|
||||||
unsigned char DoubleAl, unsigned char FloatAl,
|
unsigned char DoubleAl, unsigned char FloatAl,
|
||||||
unsigned char LongAl, unsigned char IntAl,
|
unsigned char LongAl, unsigned char IntAl,
|
||||||
unsigned char ShortAl, unsigned char ByteAl)
|
unsigned char ShortAl, unsigned char ByteAl,
|
||||||
|
unsigned char BoolAl)
|
||||||
: Name(name), DataLayout(name, LittleEndian,
|
: Name(name), DataLayout(name, LittleEndian,
|
||||||
PtrSize, PtrAl, DoubleAl, FloatAl, LongAl,
|
PtrSize, PtrAl, DoubleAl, FloatAl, LongAl,
|
||||||
IntAl, ShortAl, ByteAl) {
|
IntAl, ShortAl, ByteAl, BoolAl) {
|
||||||
IL = il ? il : new DefaultIntrinsicLowering();
|
IL = il ? il : new DefaultIntrinsicLowering();
|
||||||
}
|
}
|
||||||
TargetMachine::TargetMachine(const std::string &name, IntrinsicLowering *il,
|
TargetMachine::TargetMachine(const std::string &name, IntrinsicLowering *il,
|
||||||
|
Reference in New Issue
Block a user