From b48a24e7969d99a0116bc780c70d3e1c18b34769 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Fri, 26 Aug 2005 06:23:41 +0000 Subject: [PATCH] Don't assume that all sun4m CPUs support muldiv; the Cypress CPU, which implements the 4m MMU but only v7 instructions, does not. (Debian #100). --- hw/xfree86/loader/loader.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c index 945b9ef26..eb81826fc 100644 --- a/hw/xfree86/loader/loader.c +++ b/hw/xfree86/loader/loader.c @@ -190,9 +190,24 @@ sparcUseHWMulDiv(void) while (fgets(buffer, 1024, f) != NULL) { if (!strncmp(buffer, "type", 4)) { p = strstr(buffer, "sun4"); - if (p && (p[4] == 'u' || p[4] == 'd' || p[4] == 'm')) { + if (p && (p[4] == 'u' || p[4] == 'd')) { fclose(f); return 1; + } else if (p && p[4] == 'm') { + fclose(f); + f = fopen("/proc/cpuinfo","r"); + if (!f) return 0; + while (fgets(buffer, 1024, f) != NULL) { + if (!strncmp (buffer, "MMU type", 8)) { + p = strstr (buffer, "Cypress"); + if (p) { + fclose(f); + return 1; + } + } + } + fclose(f); + return 0; } } }