Author: hailfinger Date: 2008-04-04 16:49:50 +0200 (Fri, 04 Apr 2008) New Revision: 654
Modified: coreboot-v3/arch/x86/stage0_i586.S Log: 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
This was committed as r3044 in coreboot v2.
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net Acked-by: Jordan Crouse jordan.crouse@amd.com
Modified: coreboot-v3/arch/x86/stage0_i586.S =================================================================== --- coreboot-v3/arch/x86/stage0_i586.S 2008-04-04 14:02:39 UTC (rev 653) +++ coreboot-v3/arch/x86/stage0_i586.S 2008-04-04 14:49:50 UTC (rev 654) @@ -319,8 +319,15 @@ * windowoffset is the 32k-aligned window into CAR size */ .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)), %edx + */ .endm
#if CacheSize > 0x10000