Author: hailfinger Date: 2008-04-04 17:02:45 +0200 (Fri, 04 Apr 2008) New Revision: 3215
Modified: trunk/coreboot-v2/src/cpu/x86/car/cache_as_ram.inc 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
The same change was committed in r3044 to the AMD CAR code.
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net Acked-by: Jordan Crouse jordan.crouse@amd.com
Modified: trunk/coreboot-v2/src/cpu/x86/car/cache_as_ram.inc =================================================================== --- trunk/coreboot-v2/src/cpu/x86/car/cache_as_ram.inc 2008-04-04 13:28:10 UTC (rev 3214) +++ trunk/coreboot-v2/src/cpu/x86/car/cache_as_ram.inc 2008-04-04 15:02:45 UTC (rev 3215) @@ -158,8 +158,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