From owner-freebsd-current Mon Dec 25 06:39:28 1995 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id GAA18110 for current-outgoing; Mon, 25 Dec 1995 06:39:28 -0800 (PST) Received: from Root.COM (implode.Root.COM [198.145.90.17]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id GAA18104 for ; Mon, 25 Dec 1995 06:39:25 -0800 (PST) Received: from corbin.Root.COM (corbin [198.145.90.50]) by Root.COM (8.6.12/8.6.5) with ESMTP id GAA04456; Mon, 25 Dec 1995 06:39:19 -0800 Received: from localhost (localhost [127.0.0.1]) by corbin.Root.COM (8.7.3/8.6.5) with SMTP id GAA03368; Mon, 25 Dec 1995 06:39:21 -0800 (PST) Message-Id: <199512251439.GAA03368@corbin.Root.COM> To: KATO Takenori cc: current@freebsd.org Subject: Re: Cyrix 5x86 is not identified In-reply-to: Your message of "Mon, 25 Dec 95 22:52:42 +0900." <199512251352.WAA00273@marble.eps.nagoya-u.ac.jp> From: David Greenman Reply-To: davidg@Root.COM Date: Mon, 25 Dec 1995 06:39:21 -0800 Sender: owner-current@freebsd.org Precedence: bulk >Comparison between revision 1.56 and 1.57, I can't find the reason why >5x86 is not identified. The reason seems to be gas problem which >cannot produce correct code for 'jmp 3f' just after > /* less than Pentium; must be 486 */ > movl $CPU_486,_cpu-KERNBASE The problem was a few dozen lines up. I forgot to change two forward lables when I renumbered what was '2' to '3'. The correct fix is attached. -DG Index: locore.s =================================================================== RCS file: /home/ncvs/src/sys/i386/i386/locore.s,v retrieving revision 1.57 diff -c -r1.57 locore.s *** locore.s 1995/12/24 08:10:39 1.57 --- locore.s 1995/12/25 14:38:35 *************** *** 366,372 **** andw $0x08d5,%cx cmpw %ax,%cx ! jnz 2f # if flags changed, Intel chip movl $CPU_486DLC,_cpu-KERNBASE # set CPU value for Cyrix movl $0x69727943,_cpu_vendor-KERNBASE # store vendor string --- 366,372 ---- andw $0x08d5,%cx cmpw %ax,%cx ! jnz 3f # if flags changed, Intel chip movl $CPU_486DLC,_cpu-KERNBASE # set CPU value for Cyrix movl $0x69727943,_cpu_vendor-KERNBASE # store vendor string *************** *** 428,434 **** movl %eax,%cr0 invd #endif /* CYRIX_CACHE_WORKS */ ! jmp 2f 1: /* Use the `cpuid' instruction. */ xorl %eax,%eax --- 428,434 ---- movl %eax,%cr0 invd #endif /* CYRIX_CACHE_WORKS */ ! jmp 3f 1: /* Use the `cpuid' instruction. */ xorl %eax,%eax