[coreboot] r654 - coreboot-v3/arch/x86

svn at coreboot.org svn at coreboot.org
Fri Apr 4 16:49:50 CEST 2008


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 at gmx.net>
Acked-by: Jordan Crouse <jordan.crouse at 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





More information about the coreboot mailing list