Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver
Conflicts: GL/glx/indirect_dispatch_swap.c GL/glx/swap_interval.c
This commit is contained in:
		
						commit
						8dd5771a1b
					
				| 
						 | 
					@ -25,6 +25,10 @@
 | 
				
			||||||
 * SOFTWARE.
 | 
					 * SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAVE_DIX_CONFIG_H
 | 
				
			||||||
 | 
					#include <dix-config.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <X11/Xmd.h>
 | 
					#include <X11/Xmd.h>
 | 
				
			||||||
#include <GL/gl.h>
 | 
					#include <GL/gl.h>
 | 
				
			||||||
#include <GL/glxproto.h>
 | 
					#include <GL/glxproto.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,6 +35,7 @@
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "glxserver.h"
 | 
					#include "glxserver.h"
 | 
				
			||||||
 | 
					#include "glxbyteorder.h"
 | 
				
			||||||
#include "glxext.h"
 | 
					#include "glxext.h"
 | 
				
			||||||
#include "singlesize.h"
 | 
					#include "singlesize.h"
 | 
				
			||||||
#include "unpack.h"
 | 
					#include "unpack.h"
 | 
				
			||||||
| 
						 | 
					@ -46,20 +47,6 @@
 | 
				
			||||||
#include "dispatch.h"
 | 
					#include "dispatch.h"
 | 
				
			||||||
#include "glapioffsets.h"
 | 
					#include "glapioffsets.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(__linux__) || defined (__GLIBC__) || defined (__GNU__)
 | 
					 | 
				
			||||||
#include <byteswap.h>
 | 
					 | 
				
			||||||
#elif defined(__OpenBSD__)
 | 
					 | 
				
			||||||
#include <sys/endian.h>
 | 
					 | 
				
			||||||
#define bswap_16 __swap16
 | 
					 | 
				
			||||||
#define bswap_32 __swap32
 | 
					 | 
				
			||||||
#define bswap_64 __swap64
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
#include <sys/endian.h>
 | 
					 | 
				
			||||||
#define bswap_16 bswap16
 | 
					 | 
				
			||||||
#define bswap_32 bswap32
 | 
					 | 
				
			||||||
#define bswap_64 bswap64
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static int DoGetProgramString(struct __GLXclientStateRec *cl, GLbyte *pc,
 | 
					static int DoGetProgramString(struct __GLXclientStateRec *cl, GLbyte *pc,
 | 
				
			||||||
    unsigned get_programiv_offset, unsigned get_program_string_offset,
 | 
					    unsigned get_programiv_offset, unsigned get_program_string_offset,
 | 
				
			||||||
    Bool do_swap);
 | 
					    Bool do_swap);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,6 +29,7 @@
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "glxserver.h"
 | 
					#include "glxserver.h"
 | 
				
			||||||
 | 
					#include "glxbyteorder.h"
 | 
				
			||||||
#include "glxext.h"
 | 
					#include "glxext.h"
 | 
				
			||||||
#include "singlesize.h"
 | 
					#include "singlesize.h"
 | 
				
			||||||
#include "unpack.h"
 | 
					#include "unpack.h"
 | 
				
			||||||
| 
						 | 
					@ -39,20 +40,6 @@
 | 
				
			||||||
#include "glthread.h"
 | 
					#include "glthread.h"
 | 
				
			||||||
#include "dispatch.h"
 | 
					#include "dispatch.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(__linux__) || defined (__GLIBC__) || defined (__GNU__)
 | 
					 | 
				
			||||||
#include <byteswap.h>
 | 
					 | 
				
			||||||
#elif defined(__OpenBSD__)
 | 
					 | 
				
			||||||
#include <sys/endian.h>
 | 
					 | 
				
			||||||
#define bswap_16 __swap16
 | 
					 | 
				
			||||||
#define bswap_32 __swap32
 | 
					 | 
				
			||||||
#define bswap_64 __swap64
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
#include <sys/endian.h>
 | 
					 | 
				
			||||||
#define bswap_16 bswap16
 | 
					 | 
				
			||||||
#define bswap_32 bswap32
 | 
					 | 
				
			||||||
#define bswap_64 bswap64
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int __glXDisp_GetCompressedTexImageARB(struct __GLXclientStateRec *cl, GLbyte *pc)
 | 
					int __glXDisp_GetCompressedTexImageARB(struct __GLXclientStateRec *cl, GLbyte *pc)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
 | 
					    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,29 +23,21 @@
 | 
				
			||||||
 * SOFTWARE.
 | 
					 * SOFTWARE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef HAVE_DIX_CONFIG_H
 | 
				
			||||||
 | 
					#include <dix-config.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <X11/Xmd.h>
 | 
					#include <X11/Xmd.h>
 | 
				
			||||||
#include <GL/gl.h>
 | 
					#include <GL/gl.h>
 | 
				
			||||||
#include <GL/glxproto.h>
 | 
					#include <GL/glxproto.h>
 | 
				
			||||||
#if defined(__linux__) || defined (__GLIBC__) || defined(__GNU__)
 | 
					 | 
				
			||||||
#include <byteswap.h>
 | 
					 | 
				
			||||||
#elif defined(__OpenBSD__)
 | 
					 | 
				
			||||||
#include <sys/endian.h>
 | 
					 | 
				
			||||||
#define bswap_16 __swap16
 | 
					 | 
				
			||||||
#define bswap_32 __swap32
 | 
					 | 
				
			||||||
#define bswap_64 __swap64
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
#include <sys/endian.h>
 | 
					 | 
				
			||||||
#define bswap_16 bswap16
 | 
					 | 
				
			||||||
#define bswap_32 bswap32
 | 
					 | 
				
			||||||
#define bswap_64 bswap64
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#include <inttypes.h>
 | 
					#include <inttypes.h>
 | 
				
			||||||
#include "indirect_size.h"
 | 
					#include "indirect_size.h"
 | 
				
			||||||
#include "indirect_size_get.h"
 | 
					#include "indirect_size_get.h"
 | 
				
			||||||
#include "indirect_dispatch.h"
 | 
					#include "indirect_dispatch.h"
 | 
				
			||||||
#include "glxserver.h"
 | 
					#include "glxserver.h"
 | 
				
			||||||
 | 
					#include "glxbyteorder.h"
 | 
				
			||||||
#include "singlesize.h"
 | 
					#include "singlesize.h"
 | 
				
			||||||
#include "glapitable.h"
 | 
					#include "glapitable.h"
 | 
				
			||||||
#include "glapi.h"
 | 
					#include "glapi.h"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,7 +39,6 @@
 | 
				
			||||||
#include "glthread.h"
 | 
					#include "glthread.h"
 | 
				
			||||||
#include "dispatch.h"
 | 
					#include "dispatch.h"
 | 
				
			||||||
#include "glapioffsets.h"
 | 
					#include "glapioffsets.h"
 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "glxbyteorder.h"
 | 
					#include "glxbyteorder.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int DoSwapInterval(__GLXclientState *cl, GLbyte *pc, int do_swap);
 | 
					static int DoSwapInterval(__GLXclientState *cl, GLbyte *pc, int do_swap);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -78,6 +78,7 @@ typedef struct __GLXMESAdrawable __GLXMESAdrawable;
 | 
				
			||||||
struct __GLXMESAscreen {
 | 
					struct __GLXMESAscreen {
 | 
				
			||||||
    __GLXscreen   base;
 | 
					    __GLXscreen   base;
 | 
				
			||||||
    int           index;
 | 
					    int           index;
 | 
				
			||||||
 | 
					    int		  num_vis;
 | 
				
			||||||
    XMesaVisual  *xm_vis;
 | 
					    XMesaVisual  *xm_vis;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -280,7 +281,7 @@ __glXMesaScreenDestroy(__GLXscreen *screen)
 | 
				
			||||||
    __GLXMESAscreen *mesaScreen = (__GLXMESAscreen *) screen;
 | 
					    __GLXMESAscreen *mesaScreen = (__GLXMESAscreen *) screen;
 | 
				
			||||||
    int i;
 | 
					    int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (i = 0; i < screen->numVisuals; i++) {
 | 
					    for (i = 0; i < mesaScreen->num_vis; i++) {
 | 
				
			||||||
	if (mesaScreen->xm_vis[i])
 | 
						if (mesaScreen->xm_vis[i])
 | 
				
			||||||
	    XMesaDestroyVisual(mesaScreen->xm_vis[i]);
 | 
						    XMesaDestroyVisual(mesaScreen->xm_vis[i]);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -389,6 +390,7 @@ static void init_screen_visuals(__GLXMESAscreen *screen)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    xfree(used);
 | 
					    xfree(used);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    screen->num_vis = pScreen->numVisuals;
 | 
				
			||||||
    screen->xm_vis = pXMesaVisual;
 | 
					    screen->xm_vis = pXMesaVisual;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										58
									
								
								configure.ac
								
								
								
								
							
							
						
						
									
										58
									
								
								configure.ac
								
								
								
								
							| 
						 | 
					@ -99,6 +99,64 @@ fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
AC_TYPE_PID_T
 | 
					AC_TYPE_PID_T
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Checks for headers/macros for byte swapping
 | 
				
			||||||
 | 
					# Known variants:
 | 
				
			||||||
 | 
					#	<byteswap.h> bswap_16, bswap_32, bswap_64  (glibc)
 | 
				
			||||||
 | 
					#	<sys/endian.h> __swap16, __swap32, __swap64 (OpenBSD)
 | 
				
			||||||
 | 
					#	<sys/endian.h> bswap16, bswap32, bswap64 (other BSD's)
 | 
				
			||||||
 | 
					#	and a fallback to local macros if none of the above are found
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# if <byteswap.h> is found, assume it's the correct version
 | 
				
			||||||
 | 
					AC_CHECK_HEADERS([byteswap.h])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# if <sys/endian.h> is found, have to check which version
 | 
				
			||||||
 | 
					AC_CHECK_HEADER([sys/endian.h], [HAVE_SYS_ENDIAN_H="yes"], [HAVE_SYS_ENDIAN_H="no"])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if test "x$HAVE_SYS_ENDIAN_H" = "xyes" ; then
 | 
				
			||||||
 | 
						AC_MSG_CHECKING([for __swap16 variant of <sys/endian.h> byteswapping macros])
 | 
				
			||||||
 | 
						AC_LINK_IFELSE([AC_LANG_PROGRAM([
 | 
				
			||||||
 | 
					#include <sys/endian.h>
 | 
				
			||||||
 | 
					 ], [
 | 
				
			||||||
 | 
					int a = 1, b;
 | 
				
			||||||
 | 
					b = __swap16(a);
 | 
				
			||||||
 | 
					 ])
 | 
				
			||||||
 | 
					], [SYS_ENDIAN__SWAP='yes'], [SYS_ENDIAN__SWAP='no'])
 | 
				
			||||||
 | 
						AC_MSG_RESULT([$SYS_ENDIAN__SWAP])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						AC_MSG_CHECKING([for bswap_16 variant of <sys/endian.h> byteswapping macros])
 | 
				
			||||||
 | 
						AC_LINK_IFELSE([AC_LANG_PROGRAM([
 | 
				
			||||||
 | 
					#include <sys/endian.h>
 | 
				
			||||||
 | 
					 ], [
 | 
				
			||||||
 | 
					int a = 1, b;
 | 
				
			||||||
 | 
					b = bswap_16(a);
 | 
				
			||||||
 | 
					 ])
 | 
				
			||||||
 | 
					], [SYS_ENDIAN_BSWAP='yes'], [SYS_ENDIAN_BSWAP='no'])
 | 
				
			||||||
 | 
						AC_MSG_RESULT([$SYS_ENDIAN_BSWAP])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    	if test "$SYS_ENDIAN_BSWAP" = "yes" ; then
 | 
				
			||||||
 | 
							USE_SYS_ENDIAN_H=yes
 | 
				
			||||||
 | 
							BSWAP=bswap_
 | 
				
			||||||
 | 
						else	
 | 
				
			||||||
 | 
						    	if test "$SYS_ENDIAN__SWAP" = "yes" ; then
 | 
				
			||||||
 | 
								USE_SYS_ENDIAN_H=yes
 | 
				
			||||||
 | 
								BSWAP=__swap
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								USE_SYS_ENDIAN_H=no
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if test "$USE_SYS_ENDIAN_H" = "yes" ; then
 | 
				
			||||||
 | 
						    AC_DEFINE([USE_SYS_ENDIAN_H], 1, 
 | 
				
			||||||
 | 
							[Define to use byteswap macros from <sys/endian.h>])
 | 
				
			||||||
 | 
						    AC_DEFINE_UNQUOTED([bswap_16], ${BSWAP}16, 
 | 
				
			||||||
 | 
								[Define to 16-bit byteswap macro])
 | 
				
			||||||
 | 
						    AC_DEFINE_UNQUOTED([bswap_32], ${BSWAP}32, 
 | 
				
			||||||
 | 
								[Define to 32-bit byteswap macro])
 | 
				
			||||||
 | 
						    AC_DEFINE_UNQUOTED([bswap_64], ${BSWAP}64, 
 | 
				
			||||||
 | 
								[Define to 64-bit byteswap macro])
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dnl Checks for library functions.
 | 
					dnl Checks for library functions.
 | 
				
			||||||
AC_FUNC_VPRINTF
 | 
					AC_FUNC_VPRINTF
 | 
				
			||||||
AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr \
 | 
					AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -113,6 +113,10 @@ DLFindSymbol(const char *name)
 | 
				
			||||||
    DLModuleList *l;
 | 
					    DLModuleList *l;
 | 
				
			||||||
    void *p;
 | 
					    void *p;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    p = dlsym(RTLD_DEFAULT, name);
 | 
				
			||||||
 | 
					    if (p != NULL)
 | 
				
			||||||
 | 
						return p;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (l = dlModuleList; l != NULL; l = l->next) {
 | 
					    for (l = dlModuleList; l != NULL; l = l->next) {
 | 
				
			||||||
        p = DLFindSymbolLocal(l->module, name);
 | 
					        p = DLFindSymbolLocal(l->module, name);
 | 
				
			||||||
	if (p)
 | 
						if (p)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2129,7 +2129,7 @@ static void x86emuOp2_bsf(u8 X86EMU_UNUSED(op2))
 | 
				
			||||||
    uint srcoffset;
 | 
					    uint srcoffset;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    START_OF_INSTR();
 | 
					    START_OF_INSTR();
 | 
				
			||||||
    DECODE_PRINTF("BSF\n");
 | 
					    DECODE_PRINTF("BSF\t");
 | 
				
			||||||
    FETCH_DECODE_MODRM(mod, rh, rl);
 | 
					    FETCH_DECODE_MODRM(mod, rh, rl);
 | 
				
			||||||
    switch(mod) {
 | 
					    switch(mod) {
 | 
				
			||||||
    case 0:
 | 
					    case 0:
 | 
				
			||||||
| 
						 | 
					@ -2209,25 +2209,25 @@ static void x86emuOp2_bsf(u8 X86EMU_UNUSED(op2))
 | 
				
			||||||
	break;
 | 
						break;
 | 
				
			||||||
    case 3:				/* register to register */
 | 
					    case 3:				/* register to register */
 | 
				
			||||||
	if (M.x86.mode & SYSMODE_PREFIX_DATA) {
 | 
						if (M.x86.mode & SYSMODE_PREFIX_DATA) {
 | 
				
			||||||
	    u32 *srcreg, *dstreg;
 | 
						    u32 srcval, *dstreg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	    srcreg = DECODE_RM_LONG_REGISTER(rl);
 | 
						    srcval = *DECODE_RM_LONG_REGISTER(rl);
 | 
				
			||||||
	    DECODE_PRINTF(",");
 | 
						    DECODE_PRINTF(",");
 | 
				
			||||||
	    dstreg = DECODE_RM_LONG_REGISTER(rh);
 | 
						    dstreg = DECODE_RM_LONG_REGISTER(rh);
 | 
				
			||||||
	    TRACE_AND_STEP();
 | 
						    TRACE_AND_STEP();
 | 
				
			||||||
	    CONDITIONAL_SET_FLAG(*srcreg == 0, F_ZF);
 | 
						    CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
 | 
				
			||||||
	    for(*dstreg = 0; *dstreg < 32; (*dstreg)++)
 | 
						    for(*dstreg = 0; *dstreg < 32; (*dstreg)++)
 | 
				
			||||||
		if ((*srcreg >> *dstreg) & 1) break;
 | 
							if ((srcval >> *dstreg) & 1) break;
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
	    u16 *srcreg, *dstreg;
 | 
						    u16 srcval, *dstreg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	    srcreg = DECODE_RM_WORD_REGISTER(rl);
 | 
						    srcval = *DECODE_RM_WORD_REGISTER(rl);
 | 
				
			||||||
	    DECODE_PRINTF(",");
 | 
						    DECODE_PRINTF(",");
 | 
				
			||||||
	    dstreg = DECODE_RM_WORD_REGISTER(rh);
 | 
						    dstreg = DECODE_RM_WORD_REGISTER(rh);
 | 
				
			||||||
	    TRACE_AND_STEP();
 | 
						    TRACE_AND_STEP();
 | 
				
			||||||
	    CONDITIONAL_SET_FLAG(*srcreg == 0, F_ZF);
 | 
						    CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
 | 
				
			||||||
	    for(*dstreg = 0; *dstreg < 16; (*dstreg)++)
 | 
						    for(*dstreg = 0; *dstreg < 16; (*dstreg)++)
 | 
				
			||||||
		if ((*srcreg >> *dstreg) & 1) break;
 | 
							if ((srcval >> *dstreg) & 1) break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	break;
 | 
						break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -2245,7 +2245,7 @@ static void x86emuOp2_bsr(u8 X86EMU_UNUSED(op2))
 | 
				
			||||||
    uint srcoffset;
 | 
					    uint srcoffset;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    START_OF_INSTR();
 | 
					    START_OF_INSTR();
 | 
				
			||||||
    DECODE_PRINTF("BSF\n");
 | 
					    DECODE_PRINTF("BSR\t");
 | 
				
			||||||
    FETCH_DECODE_MODRM(mod, rh, rl);
 | 
					    FETCH_DECODE_MODRM(mod, rh, rl);
 | 
				
			||||||
    switch(mod) {
 | 
					    switch(mod) {
 | 
				
			||||||
    case 0:
 | 
					    case 0:
 | 
				
			||||||
| 
						 | 
					@ -2325,25 +2325,25 @@ static void x86emuOp2_bsr(u8 X86EMU_UNUSED(op2))
 | 
				
			||||||
	break;
 | 
						break;
 | 
				
			||||||
    case 3:				/* register to register */
 | 
					    case 3:				/* register to register */
 | 
				
			||||||
	if (M.x86.mode & SYSMODE_PREFIX_DATA) {
 | 
						if (M.x86.mode & SYSMODE_PREFIX_DATA) {
 | 
				
			||||||
	    u32 *srcreg, *dstreg;
 | 
						    u32 srcval, *dstreg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	    srcreg = DECODE_RM_LONG_REGISTER(rl);
 | 
						    srcval = *DECODE_RM_LONG_REGISTER(rl);
 | 
				
			||||||
	    DECODE_PRINTF(",");
 | 
						    DECODE_PRINTF(",");
 | 
				
			||||||
	    dstreg = DECODE_RM_LONG_REGISTER(rh);
 | 
						    dstreg = DECODE_RM_LONG_REGISTER(rh);
 | 
				
			||||||
	    TRACE_AND_STEP();
 | 
						    TRACE_AND_STEP();
 | 
				
			||||||
	    CONDITIONAL_SET_FLAG(*srcreg == 0, F_ZF);
 | 
						    CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
 | 
				
			||||||
	    for(*dstreg = 31; *dstreg > 0; (*dstreg)--)
 | 
						    for(*dstreg = 31; *dstreg > 0; (*dstreg)--)
 | 
				
			||||||
		if ((*srcreg >> *dstreg) & 1) break;
 | 
							if ((srcval >> *dstreg) & 1) break;
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
	    u16 *srcreg, *dstreg;
 | 
						    u16 srcval, *dstreg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	    srcreg = DECODE_RM_WORD_REGISTER(rl);
 | 
						    srcval = *DECODE_RM_WORD_REGISTER(rl);
 | 
				
			||||||
	    DECODE_PRINTF(",");
 | 
						    DECODE_PRINTF(",");
 | 
				
			||||||
	    dstreg = DECODE_RM_WORD_REGISTER(rh);
 | 
						    dstreg = DECODE_RM_WORD_REGISTER(rh);
 | 
				
			||||||
	    TRACE_AND_STEP();
 | 
						    TRACE_AND_STEP();
 | 
				
			||||||
	    CONDITIONAL_SET_FLAG(*srcreg == 0, F_ZF);
 | 
						    CONDITIONAL_SET_FLAG(srcval == 0, F_ZF);
 | 
				
			||||||
	    for(*dstreg = 15; *dstreg > 0; (*dstreg)--)
 | 
						    for(*dstreg = 15; *dstreg > 0; (*dstreg)--)
 | 
				
			||||||
		if ((*srcreg >> *dstreg) & 1) break;
 | 
							if ((srcval >> *dstreg) & 1) break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	break;
 | 
						break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -93,6 +93,9 @@
 | 
				
			||||||
/* Define to 1 if you have the <asm/mtrr.h> header file. */
 | 
					/* Define to 1 if you have the <asm/mtrr.h> header file. */
 | 
				
			||||||
#undef HAVE_ASM_MTRR_H
 | 
					#undef HAVE_ASM_MTRR_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define to 1 if you have the <byteswap.h> header file. */
 | 
				
			||||||
 | 
					#undef HAVE_BYTESWAP_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Define to 1 if you have the <dbm.h> header file. */
 | 
					/* Define to 1 if you have the <dbm.h> header file. */
 | 
				
			||||||
#undef HAVE_DBM_H
 | 
					#undef HAVE_DBM_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -311,6 +314,9 @@
 | 
				
			||||||
/* Use rgb.txt directly */
 | 
					/* Use rgb.txt directly */
 | 
				
			||||||
#undef USE_RGB_TXT
 | 
					#undef USE_RGB_TXT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define to use byteswap macros from <sys/endian.h> */
 | 
				
			||||||
 | 
					#undef USE_SYS_ENDIAN_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* unaligned word accesses behave as expected */
 | 
					/* unaligned word accesses behave as expected */
 | 
				
			||||||
#undef WORKING_UNALIGNED_INT
 | 
					#undef WORKING_UNALIGNED_INT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -469,4 +475,13 @@
 | 
				
			||||||
/* Path to XErrorDB file */
 | 
					/* Path to XErrorDB file */
 | 
				
			||||||
#undef XERRORDB_PATH
 | 
					#undef XERRORDB_PATH
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define to 16-bit byteswap macro */
 | 
				
			||||||
 | 
					#undef bswap_16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define to 32-bit byteswap macro */
 | 
				
			||||||
 | 
					#undef bswap_32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define to 64-bit byteswap macro */
 | 
				
			||||||
 | 
					#undef bswap_64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* _DIX_CONFIG_H_ */
 | 
					#endif /* _DIX_CONFIG_H_ */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										13
									
								
								mi/mieq.c
								
								
								
								
							
							
						
						
									
										13
									
								
								mi/mieq.c
								
								
								
								
							| 
						 | 
					@ -52,6 +52,12 @@ in this Software without prior written authorization from The Open Group.
 | 
				
			||||||
# include   "extinit.h"
 | 
					# include   "extinit.h"
 | 
				
			||||||
# include   "exglobals.h"
 | 
					# include   "exglobals.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef DPMSExtension
 | 
				
			||||||
 | 
					# include "dpmsproc.h"
 | 
				
			||||||
 | 
					# define DPMS_SERVER
 | 
				
			||||||
 | 
					# include <X11/extensions/dpms.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define QUEUE_SIZE  256
 | 
					#define QUEUE_SIZE  256
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct _Event {
 | 
					typedef struct _Event {
 | 
				
			||||||
| 
						 | 
					@ -183,6 +189,13 @@ mieqProcessInputEvents()
 | 
				
			||||||
    while (miEventQueue.head != miEventQueue.tail) {
 | 
					    while (miEventQueue.head != miEventQueue.tail) {
 | 
				
			||||||
        if (screenIsSaved == SCREEN_SAVER_ON)
 | 
					        if (screenIsSaved == SCREEN_SAVER_ON)
 | 
				
			||||||
            SaveScreens (SCREEN_SAVER_OFF, ScreenSaverReset);
 | 
					            SaveScreens (SCREEN_SAVER_OFF, ScreenSaverReset);
 | 
				
			||||||
 | 
					#ifdef DPMSExtension
 | 
				
			||||||
 | 
					        else if (DPMSPowerLevel != DPMSModeOn)
 | 
				
			||||||
 | 
					            SetScreenSaverTimer();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (DPMSPowerLevel != DPMSModeOn)
 | 
				
			||||||
 | 
					            DPMSSet(DPMSModeOn);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        e = &miEventQueue.events[miEventQueue.head];
 | 
					        e = &miEventQueue.events[miEventQueue.head];
 | 
				
			||||||
        /* Assumption - screen switching can only occur on motion events. */
 | 
					        /* Assumption - screen switching can only occur on motion events. */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -337,10 +337,7 @@ WaitForSomething(int *pClientsReady)
 | 
				
			||||||
	    if (XFD_ANYSET(&tmp_set))
 | 
						    if (XFD_ANYSET(&tmp_set))
 | 
				
			||||||
		QueueWorkProc(EstablishNewConnections, NULL,
 | 
							QueueWorkProc(EstablishNewConnections, NULL,
 | 
				
			||||||
			      (pointer)&LastSelectMask);
 | 
								      (pointer)&LastSelectMask);
 | 
				
			||||||
#ifdef DPMSExtension
 | 
					
 | 
				
			||||||
	    if (XFD_ANYSET (&devicesReadable) && (DPMSPowerLevel != DPMSModeOn))
 | 
					 | 
				
			||||||
		DPMSSet(DPMSModeOn);
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	    if (XFD_ANYSET (&devicesReadable) || XFD_ANYSET (&clientsReadable))
 | 
						    if (XFD_ANYSET (&devicesReadable) || XFD_ANYSET (&clientsReadable))
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
#ifdef WIN32
 | 
					#ifdef WIN32
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue