From 0e60d2696ef8b4b3f4007ad204a6a9c55ecab5a7 Mon Sep 17 00:00:00 2001 From: Walter Bright Date: Sun, 6 Jan 2013 23:46:10 -0800 Subject: [PATCH] set STACKALIGN for all targets --- src/backend/cg.c | 8 ++------ src/backend/cod3.c | 8 ++++++++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/backend/cg.c b/src/backend/cg.c index 2ee35f618208..fcb4ccde4f5b 100644 --- a/src/backend/cg.c +++ b/src/backend/cg.c @@ -1,5 +1,5 @@ // Copyright (C) 1984-1995 by Symantec -// Copyright (C) 2000-2009 by Digital Mars +// Copyright (C) 2000-2012 by Digital Mars // All Rights Reserved // http://www.digitalmars.com // Written by Walter Bright @@ -53,8 +53,4 @@ regm_t DOUBLEREGS = DOUBLEREGS_16; symbol *localgot; // reference to GOT for this function symbol *tls_get_addr_sym; // function __tls_get_addr -#if TARGET_OSX -int STACKALIGN = 16; -#else -int STACKALIGN = 0; -#endif +int STACKALIGN = 2; // default for 16 bit code diff --git a/src/backend/cod3.c b/src/backend/cod3.c index 22b1806d7379..2c56fe24640b 100644 --- a/src/backend/cod3.c +++ b/src/backend/cod3.c @@ -349,6 +349,12 @@ void cod3_set32() for (unsigned i = 0x80; i < 0x90; i++) inssize2[i] = W|T|6; + +#if TARGET_OSX + STACKALIGN = 16; // 16 for OSX because OSX uses SIMD +#else + STACKALIGN = 4; +#endif } /******************************** @@ -378,6 +384,8 @@ void cod3_set64() for (unsigned i = 0x80; i < 0x90; i++) inssize2[i] = W|T|6; + + STACKALIGN = 16; // 16 rather than 8 because of SIMD alignment } /*********************************