From d4fdbf59a13f24005e604e127a485764e89348f1 Mon Sep 17 00:00:00 2001 From: Frits van Bommel Date: Sat, 28 Feb 2009 16:09:44 +0100 Subject: [PATCH] Use LLVM alignment data instead of hand-picked. --- dmd/mtype.c | 41 ++++------------------------------------- 1 file changed, 4 insertions(+), 37 deletions(-) diff --git a/dmd/mtype.c b/dmd/mtype.c index c9f3e005..d3ac1bc2 100644 --- a/dmd/mtype.c +++ b/dmd/mtype.c @@ -65,6 +65,8 @@ static double zero = 0; #include "aggregate.h" #include "hdrgen.h" +#include "gen/tollvm.h" + FuncDeclaration *hasThis(Scope *sc); @@ -999,43 +1001,8 @@ d_uns64 TypeBasic::size(Loc loc) } unsigned TypeBasic::alignsize() -{ unsigned sz; - - //LDC: it's bad that we always have to check LLVM's align and - // dmd's align info match. Can't we somehow get at LLVM's align - // here? - - switch (ty) - { - case Tfloat80: - case Timaginary80: - case Tcomplex80: - if (global.params.cpu == ARCHx86_64) - sz = 16; - else - sz = 4; - break; - - case Tint64: - case Tuns64: - case Tfloat64: - case Timaginary64: - case Tcomplex64: - if (global.params.cpu == ARCHx86_64) - sz = 8; - else - sz = 4; - break; - - case Tcomplex32: - sz = 4; - break; - - default: - sz = size(0); - break; - } - return sz; +{ + return getABITypeAlign(DtoType(this)); }