]> Joshua Wise's Git repositories - netwatch.git/commitdiff
cache p2v for painting ass
authorJoshua Wise <joshua@nyus.joshuawise.com>
Tue, 2 Dec 2008 12:34:55 +0000 (07:34 -0500)
committerJoshua Wise <joshua@nyus.joshuawise.com>
Tue, 2 Dec 2008 12:34:55 +0000 (07:34 -0500)
aseg-paging/smi.c

index bc0960f3428221f2da820e15ca38cf3c6dd21fef..e1304f3fcb9604dda3ef60c3571d8c65653d1a40 100644 (file)
@@ -34,7 +34,6 @@ void smi_entry(void)
        /* wee! */
        if (fb && !fb->curmode.text)
        {
-               output("not text! nope nope nope");
                int ass[][2] = {
                              {1,0},       {4,0},{5,0},{6,0}, {8,0},{9,0},{10,0},
                        {0,1},      {2,1}, {4,1},             {8,1},
@@ -47,13 +46,20 @@ void smi_entry(void)
                for (p = 0; ass[p][0] != -1; p++)
                {
                        int x, y;
+                       unsigned long lasta = 0;
+                       unsigned long *lastmap;
                        for (y = 0; y < 8; y++)
                                for (x = 0; x < 8; x++)
                                {
                                        unsigned long a =
                                                (unsigned long) fb->fbaddr +
                                                ((y+ass[p][1]*8) * fb->curmode.xres + ass[p][0]*8 + x) * 4;
-                                       *(unsigned long *)p2v(a) = 0xFF0000FF;
+                                       if ((a & ~4095) != (lasta & ~4095))
+                                       {
+                                               lastmap = (unsigned long *)((unsigned long)p2v(a) & ~4095);
+                                               lasta = a;
+                                       }
+                                       lastmap[(a & 4095) / 4] = 0xFF0000FF;
                                }
                }
        }
This page took 0.025277 seconds and 4 git commands to generate.