| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -98,7 +98,7 @@ cglobal stack_clobber, 1,2 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			; void checkasm_checked_call(void *func, ...) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			;----------------------------------------------------------------------------- | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			INIT_XMM | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro check_call 0-1 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro CHECKED_CALL 0-1 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			cglobal checked_call%1, 2,15,16,max_args*8+8 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    mov  t0, r0 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -171,9 +171,8 @@ cglobal checked_call%1, 2,15,16,max_args*8+8 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.clobber_ok: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%ifnid %1, _emms | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    fstenv [rsp] | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    mov  r9h, [rsp + 8] | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    add  r9h, 1 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    jz   .emms_ok | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    cmp  word [rsp + 8], 0xffff | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    je   .emms_ok | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    report_fail error_message_emms | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    emms | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.emms_ok: | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -201,7 +200,7 @@ cglobal checked_call%1, 2,15,16,max_args*8+8 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    mov  eax, r3 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endmacro | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro check_call 0-1 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%macro CHECKED_CALL 0-1 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			;----------------------------------------------------------------------------- | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			; void checkasm_checked_call(void *func, ...) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			;----------------------------------------------------------------------------- | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -225,10 +224,9 @@ cglobal checked_call%1, 1,7 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    report_fail error_message | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.clobber_ok: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%ifnid %1, _emms | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    fstenv [rsp] | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    mov  r3h, [rsp + 8] | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    add  r3h, 1 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    jz   .emms_ok | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    fstenv [esp] | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    cmp  word [esp + 8], 0xffff | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    je   .emms_ok | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    report_fail error_message_emms | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    emms | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			.emms_ok: | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -241,5 +239,5 @@ cglobal checked_call%1, 1,7 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			%endif ; ARCH_X86_64 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			check_call | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			check_call _emms | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			CHECKED_CALL | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			CHECKED_CALL _emms |