Changes in directory llvm/lib/Target:
TargetData.cpp updated: 1.84 -> 1.85 --- Log message: Although targets are not required to support integers > 64bits, TargetData must in order for backends that do want to support large integer types to be able to function. Consequently, don't assert if the bitwidth > 64 bits when computing the size and alignment. Instead, compute the size by rounding up to the next even number of bytes for the size. Compute the alignment as the same as the LongABIAlignment. These provide reasonable defaults that the target can override. --- Diffs of the changes: (+4 -2) TargetData.cpp | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) Index: llvm/lib/Target/TargetData.cpp diff -u llvm/lib/Target/TargetData.cpp:1.84 llvm/lib/Target/TargetData.cpp:1.85 --- llvm/lib/Target/TargetData.cpp:1.84 Wed Jan 31 15:31:25 2007 +++ llvm/lib/Target/TargetData.cpp Mon Feb 5 17:51:43 2007 @@ -295,8 +295,10 @@ Size = 4; Alignment = TD->getIntABIAlignment(); } else if (BitWidth <= 64) { Size = 8; Alignment = TD->getLongABIAlignment(); - } else - assert(0 && "Integer types > 64 bits not supported."); + } else { + Size = ((BitWidth + 7) / 8) & ~1; + Alignment = TD->getLongABIAlignment(); + } return; } case Type::VoidTyID: Size = 1; Alignment = TD->getByteABIAlignment(); return; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits