On 10.01.2008 03:00, Carl-Daniel Hailfinger wrote:
On 10.01.2008 01:45, Marc Jones wrote:
Carl-Daniel Hailfinger wrote:
On 08.01.2008 23:00, ron minnich wrote:
Actually, if you all want to commit this, I can try it on the sis board this week.
Well, i'd like to commit, but I'll wait until you (or someone else) have tested it.
We checked this on K8 with DCACHE_RAM_SIZE=0x08000 and it works as expected.
Thanks, great!
There's one issue with specific binutils versions, though. The following sequence trips up a specific gas version with an error message: "Error: too many positional arguments"
I'd like to blacklist the specific binutils version causing this and report the bug to the linux distributor. Jordan, could you give us more details (exact binutils version, name of distribution, are all updates applied)?
Or try this patch on top of my current patch:
--- 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
It is a workaound for http://sourceware.org/bugzilla/show_bug.cgi?id=669 . As an alternative, we may simply blacklist the affected binutils versions.
Regards, Carl-Daniel