*** /tmp/,RCSt1Ky0BeN Mon Jan 27 16:05:12 1992 --- mit/server/ddx/cfb/cfbblt.c Mon Jan 27 16:05:12 1992 *************** *** 18,24 **** Author: Keith Packard */ ! /* $XConsortium: cfbblt.c,v 1.7 91/05/06 15:13:21 rws Exp $ */ #include "X.h" #include "Xmd.h" --- 18,24 ---- Author: Keith Packard */ ! /* $XConsortium: cfbblt.c,v 1.8 91/12/11 21:57:39 eswu Exp $ */ #include "X.h" #include "Xmd.h" *************** *** 40,45 **** --- 40,50 ---- #endif #endif + #if defined(FAST_MEMCPY) && (MROP == Mcopy) && (PPW == 4) + #define DO_MEMCPY + #endif + + MROP_NAME(cfbDoBitblt)(pSrc, pDst, alu, prgnDst, pptSrc, planemask) DrawablePtr pSrc, pDst; int alu; *************** *** 226,231 **** --- 231,253 ---- { maskbits(pbox->x1, w, startmask, endmask, nlMiddle); } + + #ifdef DO_MEMCPY + /* If the src and dst scanline don't overlap, do forward case. */ + + if ((xdir == 1) || (pptSrc->y != pbox->y1) + || (pptSrc->x + w <= pbox->x1)) + { + char *psrc = (char *) psrcLine + pptSrc->x; + char *pdst = (char *) pdstLine + pbox->x1; + while (h--) + { + memcpy(pdst, psrc, w); + pdst += widthDst << 2; + psrc += widthSrc << 2; + } + } + #else /* ! DO_MEMCPY */ if (xdir == 1) { xoffSrc = pptSrc->x & PIM; *************** *** 406,411 **** --- 428,434 ---- } #endif /* DO_UNALIGNED_BITBLT */ } + #endif /* ! DO_MEMCPY */ else /* xdir == -1 */ { xoffSrc = (pptSrc->x + w - 1) & PIM; *** /tmp/,RCSt1K00C58 Mon Jan 27 16:11:15 1992 --- mit/server/include/servermd.h Mon Jan 27 16:11:15 1992 *************** *** 23,29 **** ******************************************************************/ #ifndef SERVERMD_H #define SERVERMD_H 1 ! /* $XConsortium: servermd.h,v 1.60 91/06/30 11:29:35 rws Exp $ */ /* * Machine dependent values: --- 23,29 ---- ******************************************************************/ #ifndef SERVERMD_H #define SERVERMD_H 1 ! /* $XConsortium: servermd.h,v 1.61 91/11/09 16:32:37 keith Exp $ */ /* * Machine dependent values: *************** *** 149,154 **** --- 149,160 ---- #define GLYPHPADBYTES 4 #define GETLEFTBITS_ALIGNMENT 1 + #define LARGE_INSTRUCTION_CACHE + #define FAST_CONSTANT_OFFSET_MODE + #define PLENTIFUL_REGISTERS + #define AVOID_MEMORY_READ + + #define FAST_MEMCPY #endif /* AIXV3 */ #if defined(ibm032) || defined (ibm) *************** *** 200,206 **** #endif /* macII */ ! #ifdef mips #ifdef MIPSEL # define IMAGE_BYTE_ORDER LSBFirst /* Values for the PMAX only */ --- 206,212 ---- #endif /* macII */ ! #if defined(mips) && !defined(sgi) #ifdef MIPSEL # define IMAGE_BYTE_ORDER LSBFirst /* Values for the PMAX only */ *************** *** 260,265 **** --- 266,285 ---- #define AVOID_MEMORY_READ #endif /* SYSV386 */ + + #ifdef sgi + + #define IMAGE_BYTE_ORDER MSBFirst + #define BITMAP_BIT_ORDER MSBFirst + #define GLYPHPADBYTES 2 + #define GETLEFTBITS_ALIGNMENT 4 + + #define AVOID_MEMORY_READ + #define FAST_CONSTANT_OFFSET_MODE + #define LARGE_INSTRUCTION_CACHE + #define PLENTIFUL_REGISTERS + + #endif /* size of buffer to use with GetImage, measured in bytes. There's obviously * a trade-off between the amount of stack (or whatever ALLOCATE_LOCAL gives *** /tmp/,RCSt1DuoAgP Mon Jan 27 17:36:53 1992 --- mit/server/ddx/ibm/common/ibmUtils.c Fri Dec 20 18:16:01 1991 *************** *** 1,5 **** /* ! * $XConsortium: ibmUtils.c,v 1.2 91/07/16 13:10:58 jap Exp $ * * Copyright IBM Corporation 1987,1988,1989,1990,1991 * --- 1,5 ---- /* ! * $XConsortium: ibmUtils.c,v 1.3 91/12/20 18:15:18 eswu Exp $ * * Copyright IBM Corporation 1987,1988,1989,1990,1991 * *************** *** 50,81 **** return ; } - /***==================================================================***/ - /* - * XXX!!! HACK HACK HACKITY HACK HACK!!! - * 11/4/88 (ef) -- when the server exits, it first kills any active - * clients, which will paint the root window background where they - * used to be. This has a nasty tendency to write on the currently - * active hft. Rather than doing something clever to notice - * that we are inactive when repainting the background, we just - * exit the server because we "know" that no more real cleanup - * need be done. - */ - - static void - ibmAbortInactiveScreens() - { - int scrn; - TRACE(("ibmAbortInactiveScreens()\n")); - for (scrn = 0; scrn < ibmNumScreens; scrn++) { - if (ibmScreenState(scrn)!=SCREEN_ACTIVE) { - exit(0); - } - } - return; - } - /***==================================================================***/ void --- 50,56 ---- *************** *** 84,100 **** TRACE(("ddxGiveUp()")); - #ifdef AIXV3 - rcmGiveUp(); - OS_GiveUp(); - ibmAbortInactiveScreens(); - #endif - #ifdef AIXps2 OS_CapsLockFeedback(0); - OS_GiveUp(); #endif return; } --- 59,70 ---- TRACE(("ddxGiveUp()")); #ifdef AIXps2 OS_CapsLockFeedback(0); #endif + OS_GiveUp(); + return; } *************** *** 121,135 **** { TRACE(("AbortDDX()")); - #ifdef AIXV3 - OS_Abort(); - ibmAbortInactiveScreens(); - #endif #ifdef AIXps2 OS_CapsLockFeedback(0) ; - OS_Abort(); #endif return; } --- 91,101 ---- { TRACE(("AbortDDX()")); #ifdef AIXps2 OS_CapsLockFeedback(0) ; #endif + OS_Abort(); return; } *** /tmp/,RCSt1DvECCX Mon Jan 27 17:37:12 1992 --- mit/server/ddx/ibm/common/ibmInit.c Fri Dec 20 18:15:55 1991 *************** *** 1,5 **** /* ! * $XConsortium: ibmInit.c,v 1.4 91/09/09 13:23:00 rws Exp $ * * Copyright IBM Corporation 1987,1988,1989,1990,1991 * --- 1,5 ---- /* ! * $XConsortium: ibmInit.c,v 1.5 91/12/20 18:13:55 eswu Exp $ * * Copyright IBM Corporation 1987,1988,1989,1990,1991 * *************** *** 118,124 **** return FALSE ; } aixPutScreenAt(ibmNumScreens,x,y); ! ibmScreens[ibmNumScreens] = (ibmPerScreenInfo *)Xalloc( sizeof(ibmPerScreenInfo) ); *(ibmScreens[ibmNumScreens]) = *scr; ibmScreens[ibmNumScreens]->ibm_DeviceID = tmpDeviceID; ibmScreens[ibmNumScreens]->ibm_ScreenFD = tmpScreenFD; --- 118,124 ---- return FALSE ; } aixPutScreenAt(ibmNumScreens,x,y); ! ibmScreens[ibmNumScreens] = (ibmPerScreenInfo *) xalloc( sizeof(ibmPerScreenInfo) ); *(ibmScreens[ibmNumScreens]) = *scr; ibmScreens[ibmNumScreens]->ibm_DeviceID = tmpDeviceID; ibmScreens[ibmNumScreens]->ibm_ScreenFD = tmpScreenFD; *************** *** 339,345 **** ibmSetupPlumber(argv[++i]); skip= 2; } ! #endif IBM_SPECIAL_MALLOC else if ( strcmp( argv[i], "-T") == 0) ibmDontZap = TRUE; else if ( strcmp( argv[i], "-wp") == 0) --- 339,345 ---- ibmSetupPlumber(argv[++i]); skip= 2; } ! #endif /* IBM_SPECIAL_MALLOC */ else if ( strcmp( argv[i], "-T") == 0) ibmDontZap = TRUE; else if ( strcmp( argv[i], "-wp") == 0)