i386 fixes
diff --git a/MCONFIG b/MCONFIG
index cb88b0f..49b9777 100644
--- a/MCONFIG
+++ b/MCONFIG
@@ -26,7 +26,7 @@
CRT0 = $(KLIBSRC)/crt0.o
KLIBC = $(KLIBSRC)/libc.a
-LIBGCC = $(shell $(CC) --print-libgcc)
+LIBGCC = # $(shell $(CC) --print-libgcc)
#
# Include arch-specific rule fragments
diff --git a/include/arch/i386/klibc/diverr.h b/include/arch/i386/klibc/diverr.h
index 1f7ecbf..410aba0 100644
--- a/include/arch/i386/klibc/diverr.h
+++ b/include/arch/i386/klibc/diverr.h
@@ -10,7 +10,7 @@
static __inline__ void
__divide_error(void)
{
- asm volatile("divl %0" : "=rm" (0));
+ asm volatile("divl %0" :: "rm" (0) : "eax", "edx");
}
#endif /* _KLIBC_DIVERR_H */
diff --git a/klibc/arch/i386/MCONFIG b/klibc/arch/i386/MCONFIG
index 6e661df..cdf2a10 100644
--- a/klibc/arch/i386/MCONFIG
+++ b/klibc/arch/i386/MCONFIG
@@ -11,7 +11,7 @@
# This doesn't work right now because gcc 3.2 (at least) calls
# libgcc with the default calling convention instead of forcing
# them to be cdecl
-# REGPARM = -mregparm=3 -DREGPARM
+REGPARM = -mregparm=3 -DREGPARM
OPTFLAGS = $(REGPARM) -march=i386 -Os -fomit-frame-pointer \
-malign-functions=0 -malign-jumps=0 -malign-loops=0
diff --git a/klibc/arch/i386/include/klibc/diverr.h b/klibc/arch/i386/include/klibc/diverr.h
index 1f7ecbf..410aba0 100644
--- a/klibc/arch/i386/include/klibc/diverr.h
+++ b/klibc/arch/i386/include/klibc/diverr.h
@@ -10,7 +10,7 @@
static __inline__ void
__divide_error(void)
{
- asm volatile("divl %0" : "=rm" (0));
+ asm volatile("divl %0" :: "rm" (0) : "eax", "edx");
}
#endif /* _KLIBC_DIVERR_H */