On Sun, 20 Feb 2000 23:48:01 -0500,
  Ray Kohler <[EMAIL PROTECTED]> said:

Ray> cc -c -march=pentium -O3 -pipe -fno-builtin -Wall -Wredundant-decls
Ray> -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes
Ray> -Wpointer-arith -Winline -Wcast-qual  -fformat-extensions -ansi
Ray> -nostdinc -I- -I. -I../.. -I../../../include  -D_KERNEL -include
Ray> opt_global.h -elf  -mpreferred-stack-boundary=2
Ray> ../../i386/i386/machdep.c
Ray> {standard input}: Assembler messages:
Ray> {standard input}:2772: Error: operands given don't match any known
Ray> 386 instruction
Ray> *** Error code 1


Could you try the following patch(sent to bsd personally)? It prevents
movl between a debug register and memory.

Index: cpufunc.h
===================================================================
RCS file: /home/ncvs/src/sys/i386/include/cpufunc.h,v
retrieving revision 1.95
diff -u -r1.95 cpufunc.h
--- cpufunc.h   2000/02/20 20:51:22     1.95
+++ cpufunc.h   2000/02/21 03:44:30
@@ -456,7 +456,7 @@
 rdr0(void)
 {
        u_int   data;
-       __asm __volatile("movl %%dr0,%0" : "=rm" (data));
+       __asm __volatile("movl %%dr0,%0" : "=r" (data));
        return (data);
 }
 
@@ -464,7 +464,7 @@
 rdr1(void)
 {
        u_int   data;
-       __asm __volatile("movl %%dr1,%0" : "=rm" (data));
+       __asm __volatile("movl %%dr1,%0" : "=r" (data));
        return (data);
 }
 
@@ -472,7 +472,7 @@
 rdr2(void)
 {
        u_int   data;
-       __asm __volatile("movl %%dr2,%0" : "=rm" (data));
+       __asm __volatile("movl %%dr2,%0" : "=r" (data));
        return (data);
 }
 
@@ -480,7 +480,7 @@
 rdr3(void)
 {
        u_int   data;
-       __asm __volatile("movl %%dr3,%0" : "=rm" (data));
+       __asm __volatile("movl %%dr3,%0" : "=r" (data));
        return (data);
 }
 
@@ -488,7 +488,7 @@
 rdr6(void)
 {
        u_int   data;
-       __asm __volatile("movl %%dr6,%0" : "=rm" (data));
+       __asm __volatile("movl %%dr6,%0" : "=r" (data));
        return (data);
 }
 
@@ -496,7 +496,7 @@
 rdr7(void)
 {
        u_int   data;
-       __asm __volatile("movl %%dr7,%0" : "=rm" (data));
+       __asm __volatile("movl %%dr7,%0" : "=r" (data));
        return (data);
 }
 


-- 
Seigo Tanimura <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>

Reply via email to