diff --git a/src/cc65/global.c b/src/cc65/global.c index 2ab601385..f644e51d4 100644 --- a/src/cc65/global.c +++ b/src/cc65/global.c @@ -6,7 +6,7 @@ /* */ /* */ /* */ -/* (C) 1998-2010, Ullrich von Bassewitz */ +/* (C) 1998-2011, Ullrich von Bassewitz */ /* Roemerstrasse 52 */ /* D-70794 Filderstadt */ /* EMail: uz@cc65.org */ @@ -60,7 +60,8 @@ IntStack SignedChars = INTSTACK(0); /* Make characters signed by default IntStack CheckStack = INTSTACK(0); /* Generate stack overflow checks */ IntStack Optimize = INTSTACK(0); /* Optimize flag */ IntStack CodeSizeFactor = INTSTACK(100);/* Size factor for generated code */ - +IntStack DataAlignment = INTSTACK(1); /* Alignment for data */ + /* File names */ StrBuf DepName = STATIC_STRBUF_INITIALIZER; /* Name of dependencies file */ StrBuf FullDepName = STATIC_STRBUF_INITIALIZER; /* Name of full dependencies file */ diff --git a/src/cc65/global.h b/src/cc65/global.h index 0406678ac..0fda8eb05 100644 --- a/src/cc65/global.h +++ b/src/cc65/global.h @@ -6,7 +6,7 @@ /* */ /* */ /* */ -/* (C) 1998-2010, Ullrich von Bassewitz */ +/* (C) 1998-2011, Ullrich von Bassewitz */ /* Roemerstrasse 52 */ /* D-70794 Filderstadt */ /* EMail: uz@cc65.org */ @@ -68,6 +68,7 @@ extern IntStack SignedChars; /* Make characters signed by default */ extern IntStack CheckStack; /* Generate stack overflow checks */ extern IntStack Optimize; /* Optimize flag */ extern IntStack CodeSizeFactor; /* Size factor for generated code */ +extern IntStack DataAlignment; /* Alignment for data */ /* File names */ extern StrBuf DepName; /* Name of dependencies file */ diff --git a/src/cc65/pragma.c b/src/cc65/pragma.c index 4b690d7a9..08d62ae20 100644 --- a/src/cc65/pragma.c +++ b/src/cc65/pragma.c @@ -6,7 +6,7 @@ /* */ /* */ /* */ -/* (C) 1998-2010, Ullrich von Bassewitz */ +/* (C) 1998-2011, Ullrich von Bassewitz */ /* Roemerstrasse 52 */ /* D-70794 Filderstadt */ /* EMail: uz@cc65.org */ @@ -63,6 +63,7 @@ /* Tokens for the #pragmas */ typedef enum { PRAGMA_ILLEGAL = -1, + PRAGMA_ALIGN, PRAGMA_BSS_NAME, PRAGMA_BSSSEG, /* obsolete */ PRAGMA_CHARMAP, @@ -95,6 +96,7 @@ static const struct Pragma { const char* Key; /* Keyword */ pragma_t Tok; /* Token */ } Pragmas[PRAGMA_COUNT] = { + { "align", PRAGMA_ALIGN }, { "bss-name", PRAGMA_BSS_NAME }, { "bssseg", PRAGMA_BSSSEG }, /* obsolete */ { "charmap", PRAGMA_CHARMAP }, @@ -695,6 +697,10 @@ static void ParsePragma (void) /* Switch for the different pragmas */ switch (Pragma) { + case PRAGMA_ALIGN: + IntPragma (&B, &DataAlignment, 1, 4096); + break; + case PRAGMA_BSSSEG: Warning ("#pragma bssseg is obsolete, please use #pragma bss-name instead"); /* FALLTHROUGH */