X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=Xserver%2Fprograms%2FXserver%2Fmfb%2Ffastblt.h;fp=Xserver%2Fprograms%2FXserver%2Fmfb%2Ffastblt.h;h=0000000000000000000000000000000000000000;hb=ce66b81460e5353db09d45c02339d4583fbda255;hp=0ca295d6235aa1bff5e9f0b7887cd7ffe0e575b0;hpb=7772d71ffd742cfc9b7ff214659d16c5bb56a391;p=rdpsrv diff --git a/Xserver/programs/Xserver/mfb/fastblt.h b/Xserver/programs/Xserver/mfb/fastblt.h deleted file mode 100644 index 0ca295d..0000000 --- a/Xserver/programs/Xserver/mfb/fastblt.h +++ /dev/null @@ -1,120 +0,0 @@ -/* $XConsortium: fastblt.h,v 1.7 94/04/17 20:28:07 dpw Exp $ */ -/* - -Copyright (c) 1989 X Consortium - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the X Consortium shall -not be used in advertising or otherwise to promote the sale, use or -other dealings in this Software without prior written authorization -from the X Consortium. - -*/ - -/* - * Fast bitblt macros for certain hardware. If your machine has an addressing - * mode of small constant + register, you'll probably want this magic specific - * code. It's 25% faster for the R2000. I haven't studied the Sparc - * instruction set, but I suspect it also has this addressing mode. Also, - * unrolling the loop by 32 is possibly excessive for mfb. The number of times - * the loop is actually looped through is pretty small. - */ - -/* - * WARNING: These macros make *a lot* of assumptions about - * the environment they are invoked in. Plenty of implicit - * arguments, lots of side effects. Don't use them casually. - */ - -#define SwitchOdd(n) case n: BodyOdd(n) -#define SwitchEven(n) case n: BodyEven(n) - -/* to allow mfb and cfb to share code... */ -#ifndef BitRight -#define BitRight(a,b) SCRRIGHT(a,b) -#define BitLeft(a,b) SCRLEFT(a,b) -#endif - -#ifdef LARGE_INSTRUCTION_CACHE -#define UNROLL 8 -#define PackedLoop \ - switch (nl & (UNROLL-1)) { \ - SwitchOdd( 7) SwitchEven( 6) SwitchOdd( 5) SwitchEven( 4) \ - SwitchOdd( 3) SwitchEven( 2) SwitchOdd( 1) \ - } \ - while ((nl -= UNROLL) >= 0) { \ - LoopReset \ - BodyEven( 8) \ - BodyOdd( 7) BodyEven( 6) BodyOdd( 5) BodyEven( 4) \ - BodyOdd( 3) BodyEven( 2) BodyOdd( 1) \ - } -#else -#define UNROLL 4 -#define PackedLoop \ - switch (nl & (UNROLL-1)) { \ - SwitchOdd( 3) SwitchEven( 2) SwitchOdd( 1) \ - } \ - while ((nl -= UNROLL) >= 0) { \ - LoopReset \ - BodyEven( 4) \ - BodyOdd( 3) BodyEven( 2) BodyOdd( 1) \ - } -#endif - -#if PPW == 32 -#define DuffL(counter,label,body) \ - switch (counter & 3) { \ - label: \ - body \ - case 3: \ - body \ - case 2: \ - body \ - case 1: \ - body \ - case 0: \ - if ((counter -= 4) >= 0) \ - goto label; \ - } -#else /* PPW == 64 */ -#define DuffL(counter,label,body) \ - switch (counter & 7) { \ - label: \ - body \ - case 7: \ - body \ - case 6: \ - body \ - case 5: \ - body \ - case 4: \ - body \ - case 3: \ - body \ - case 2: \ - body \ - case 1: \ - body \ - case 0: \ - if ((counter -= 8) >= 0) \ - goto label; \ - } -#endif /* PPW */