Add a workaround for a bug in some binutils version which strictly

interpret whitespace as macro argument delimiter. Since the code is
preprocessed by gcc and the tokenizer may insert whitespace, that can
fail. http://sourceware.org/bugzilla/show_bug.cgi?id=669

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Jordan Crouse <jordan.crouse@amd.com>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3044 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Carl-Daniel Hailfinger 2008-01-10 17:59:25 +00:00
parent 1923fc41be
commit ed8dc58efa
1 changed files with 7 additions and 0 deletions

View File

@ -160,8 +160,15 @@ clear_fixed_var_mtrr_out:
* windowoffset is the 32k-aligned window into CAR size * windowoffset is the 32k-aligned window into CAR size
*/ */
.macro simplemask carsize, windowoffset .macro simplemask carsize, windowoffset
.set gas_bug_workaround,(((\carsize - \windowoffset) / 0x1000) - 4)
extractmask gas_bug_workaround, %eax
.set gas_bug_workaround,(((\carsize - \windowoffset) / 0x1000))
extractmask gas_bug_workaround, %edx
/* Without the gas bug workaround, the entire macro would consist only of the
* two lines below.
extractmask (((\carsize - \windowoffset) / 0x1000) - 4), %eax extractmask (((\carsize - \windowoffset) / 0x1000) - 4), %eax
extractmask (((\carsize - \windowoffset) / 0x1000)), %edx extractmask (((\carsize - \windowoffset) / 0x1000)), %edx
*/
.endm .endm
#if CacheSize > 0x10000 #if CacheSize > 0x10000