changeset 1009:b1b23a64ad8c

Use LLVM alignment data instead of hand-picked.
author Frits van Bommel <fvbommel wxs.nl>
date Sat, 28 Feb 2009 16:09:44 +0100
parents 4c20df3837f9
children bad2044a1597
files dmd/mtype.c
diffstat 1 files changed, 4 insertions(+), 37 deletions(-) [+]
line wrap: on
line diff
--- a/dmd/mtype.c	Sat Feb 28 16:09:35 2009 +0100
+++ b/dmd/mtype.c	Sat Feb 28 16:09:44 2009 +0100
@@ -65,6 +65,8 @@
 #include "aggregate.h"
 #include "hdrgen.h"
 
+#include "gen/tollvm.h"
+
 FuncDeclaration *hasThis(Scope *sc);
 
 
@@ -999,43 +1001,8 @@
 }
 
 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));
 }