From owner-freebsd-stable Wed Sep 5 8:28:46 2001 Delivered-To: freebsd-stable@freebsd.org Received: from mailout05.sul.t-online.de (mailout05.sul.t-online.com [194.25.134.82]) by hub.freebsd.org (Postfix) with ESMTP id EF08B37B407 for ; Wed, 5 Sep 2001 08:28:39 -0700 (PDT) Received: from fwd03.sul.t-online.de by mailout05.sul.t-online.de with smtp id 15eebV-0007G5-0G; Wed, 05 Sep 2001 17:28:37 +0200 Received: from earth.serd.org (320025957387-0001@[217.224.223.90]) by fmrl03.sul.t-online.com with esmtp id 15eebL-1FYcF6C; Wed, 5 Sep 2001 17:28:27 +0200 Received: from localhost (dres@localhost) by earth.serd.org (8.11.6/8.11.3) with ESMTP id f85FQWv00424 for ; Wed, 5 Sep 2001 17:26:38 +0200 (CEST) (envelope-from dres@earth.serd.org) Date: Wed, 5 Sep 2001 17:26:32 +0200 (CEST) From: Stefan Keller To: Subject: sys/i386/i386/identcpu.c bugfix Message-ID: <20010905160610.U1222-100000@earth.serd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Sender: 320025957387-0001@t-dialin.net Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Hello, the do_cpuid() inline asm routine in identcpu.c has an incomplete description of clobbered registers, which shows up when the kernel is compiled with higher optimisations turned on. The fix: --- sys/i386/i386/identcpu.c.org Mon Sep 3 23:44:25 2001 +++ sys/i386/i386/identcpu.c Wed Sep 5 03:49:16 2001 @@ -121,7 +121,7 @@ "movl %%edx, 12(%2);" : "=a" (ax) : "0" (ax), "S" (p) - : "bx", "cx", "dx" + : "bx", "cx", "dx", "cc", "memory" ); } Not specifying "memory" causes gcc to cache the contents of the memory pointed to by p across do_cpuid() calls. On my system (Athlon processor) this only showed up on the CPU name; everything else was ok. -- Stefan Keller To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message