Author: jhibbits
Date: Thu Oct 17 06:14:32 2013
New Revision: 256667
URL: http://svnweb.freebsd.org/changeset/base/256667

Log:
  MFC r253979
  
  Micro-optimize OFW syscons 8-bit blank.

Modified:
  stable/9/sys/powerpc/ofw/ofw_syscons.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/powerpc/ofw/ofw_syscons.c
==============================================================================
--- stable/9/sys/powerpc/ofw/ofw_syscons.c      Thu Oct 17 05:51:54 2013        
(r256666)
+++ stable/9/sys/powerpc/ofw/ofw_syscons.c      Thu Oct 17 06:14:32 2013        
(r256667)
@@ -586,14 +586,22 @@ ofwfb_blank_display8(video_adapter_t *ad
 {
        struct ofwfb_softc *sc;
        int i;
-       uint8_t *addr;
+       uint32_t *addr;
+       uint32_t color;
+       uint32_t end;
 
        sc = (struct ofwfb_softc *)adp;
-       addr = (uint8_t *) sc->sc_addr;
+       addr = (uint32_t *) sc->sc_addr;
+       end = (sc->sc_stride/4) * sc->sc_height;
+
+       /* Splat 4 pixels at once. */
+       color = (ofwfb_background(SC_NORM_ATTR) << 24) |
+           (ofwfb_background(SC_NORM_ATTR) << 16) |
+           (ofwfb_background(SC_NORM_ATTR) << 8) |
+           (ofwfb_background(SC_NORM_ATTR));
 
-       /* Could be done a lot faster e.g. 32-bits, or Altivec'd */
-       for (i = 0; i < sc->sc_stride*sc->sc_height; i++)
-               *(addr + i) = ofwfb_background(SC_NORM_ATTR);
+       for (i = 0; i < end; i++)
+               *(addr + i) = color;
 
        return (0);
 }
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to