[LinuxBIOS] [PATCH] v2: rewrite AMD K* CAR code

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Thu Jan 10 18:57:56 CET 2008


On 10.01.2008 03:26, Carl-Daniel Hailfinger wrote:
> --- src/cpu/amd/car/cache_as_ram.inc~	2008-01-08 20:16:30.000000000 +0100
> +++ src/cpu/amd/car/cache_as_ram.inc	2008-01-10 03:24:09.000000000 +0100
> @@ -160,8 +160,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
>
>
>   

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 at gmx.net>


Regards,
Carl-Daniel




More information about the coreboot mailing list