Index: sys/arch/sparc64/sparc64/machdep.c =================================================================== RCS file: /cvsroot/src/sys/arch/sparc64/sparc64/machdep.c,v retrieving revision 1.275 diff -u -r1.275 machdep.c --- sys/arch/sparc64/sparc64/machdep.c 25 Jan 2014 19:42:25 -0000 1.275 +++ sys/arch/sparc64/sparc64/machdep.c 11 May 2014 19:58:23 -0000 @@ -401,19 +401,23 @@ { int vis = 0; - if (GETVER_CPU_MANUF() == MANUF_FUJITSU) { - /* as far as I can tell SPARC64-III and up have VIS 1.0 */ - if (GETVER_CPU_IMPL() >= IMPL_SPARC64_III) { - vis = 1; - } - /* XXX - which, if any, SPARC64 support VIS 2.0? */ - } else { - /* this better be Sun */ - vis = 1; /* all UltraSPARCs support at least VIS 1.0 */ - if (CPU_IS_USIII_UP()) { - vis = 2; + if ( CPU_ISSUN4V ) { + vis = 2; + /* XXX UltraSPARC T4 supports VIS 3.0 */ + } else { + if (GETVER_CPU_MANUF() == MANUF_FUJITSU) { + /* as far as I can tell SPARC64-III and up have VIS 1.0 */ + if (GETVER_CPU_IMPL() >= IMPL_SPARC64_III) { + vis = 1; + } + /* XXX - which, if any, SPARC64 support VIS 2.0? */ + } else { + /* this better be Sun */ + vis = 1; /* all UltraSPARCs support at least VIS 1.0 */ + if (CPU_IS_USIII_UP()) { + vis = 2; + } } - /* UltraSPARC T4 supports VIS 3.0 */ } return vis; } @@ -448,10 +452,11 @@ NULL, 9, NULL, 0, CTL_MACHDEP, CPU_ARCH, CTL_EOL); sysctl_createv(clog, 0, NULL, NULL, - CTLFLAG_PERMANENT|CTLFLAG_IMMEDIATE, - CTLTYPE_INT, "vis", NULL, - NULL, get_vis(), NULL, 0, - CTL_MACHDEP, CPU_VIS, CTL_EOL); + CTLFLAG_PERMANENT|CTLFLAG_IMMEDIATE, + CTLTYPE_INT, "vis", + "Supported version of VIS instruction set", + NULL, get_vis(), NULL, 0, + CTL_MACHDEP, CPU_VIS, CTL_EOL); } void *