;//==========================================================================
;//
;//  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
;//  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
;//  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
;//  PURPOSE.
;//
;//  Copyright (c) 1999 - 2001  On2 Technologies Inc. All Rights Reserved.
;//
;//--------------------------------------------------------------------------



;
; **-VerifyXMMReg
;
; This function is meant to be run on a Windows NT system to
; try and determine if the OS supports the XMM registers or
; not.
;
; This function is number 3 in a set of three.  The other
; functions are...
;
;    InitXMMReg
;    TrashXMMReg
;
; Assumptions:
;   Assumes that InitXMMReg was called to initilize the XMM registers.
;   Assumes that TrashXMMReg was called from a different thread to clear
;   the values in the XMM registers.
;
; Input:
;   None
;
; Output:
;   Return 1 (True) if the XMM registers are at the correct values.
;   (os supports XMM registers)
;
;   Return 0 (False) if the XMM registers are not at the correct values.
;   (os does not support the XMM registers)
;

        .686P
		.XMM
        .MODEL  flat, SYSCALL, os_dos
        .DATA 

TORQ_CX_DATA SEGMENT PAGE PUBLIC USE32 'DATA' 

         ALIGN 32


NAME VerifyXMMReg

PUBLIC VerifyXMMReg_
PUBLIC _VerifyXMMReg


EXTERN XMM0Init:REAL4
EXTERN XMM1Init:REAL4
EXTERN XMM2Init:REAL4


        .CODE

; int VerifyXMMReg( void )
VerifyXMMReg_:
_VerifyXMMReg:
    push    esi ;safety sh*&
    push    edi
    push    ebp
    push    ebx 
    push    ecx
    push    edx

    mov     eax,0                       ; assume will fail

    comiss  xmm0,XMM0Init               ; check XMM0
    jne     Exit

    comiss  xmm1,XMM1Init
    jne     Exit

    comiss  xmm2,XMM2Init
    jne     Exit

    mov     eax,1                       ; OS supports XMM registers

Exit:
    pop     edx ;safety sh*&
    pop     ecx
    pop     ebx
    pop     ebp
    pop     edi
    pop     esi
    ret

;************************************************
         END