| /** | 
 |  * This file has no copyright assigned and is placed in the Public Domain. | 
 |  * This file is part of the mingw-w64 runtime package. | 
 |  * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
 |  */ | 
 | #include <_mingw_mac.h> | 
 |  | 
 |         .file "truncf.S" | 
 |         .text | 
 |         .p2align 4,,15 | 
 |         .globl __MINGW_USYMBOL(truncf) | 
 |         .def    __MINGW_USYMBOL(truncf);  .scl    2;      .type   32;     .endef | 
 |  | 
 | #ifdef __x86_64__ | 
 |         .seh_proc __MINGW_USYMBOL(truncf) | 
 | #endif | 
 | __MINGW_USYMBOL(truncf): | 
 | #if defined(_AMD64_) || defined(__x86_64__) | 
 | 	subq	$24, %rsp | 
 | 	.seh_stackalloc	24 | 
 | 	.seh_endprologue | 
 | 	movd	%xmm0, 12(%rsp) | 
 | 	movl	12(%rsp), %edx | 
 | 	movl	%edx, %ecx | 
 | 	sarl	$23, %ecx | 
 | 	andl	$255, %ecx | 
 | 	subl	$127, %ecx | 
 | 	cmpl	$22, %ecx | 
 | 	jg	.l1 | 
 | 	movl	%edx, %r8d | 
 | 	andl	$-2147483648, %r8d | 
 | 	testl	%ecx, %ecx | 
 | 	js	.l2 | 
 | 	movl	$8388607, %eax | 
 | 	sarl	%cl, %eax | 
 | 	notl	%eax | 
 | 	andl	%edx, %eax | 
 | 	orl	%r8d, %eax | 
 | 	movl	%eax, 8(%rsp) | 
 | 	movss	8(%rsp), %xmm0 | 
 | 	addq	$24, %rsp | 
 | 	ret | 
 | 	.p2align 4,,10 | 
 | .l1: | 
 | 	addl	$-128, %ecx | 
 | 	jne	.noinfnan | 
 | 	addss	%xmm0, %xmm0 | 
 | .noinfnan: | 
 | 	addq	$24, %rsp | 
 | 	ret | 
 | 	.p2align 4,,10 | 
 | .l2: | 
 | 	movl	%r8d, 8(%rsp) | 
 | 	movss	8(%rsp), %xmm0 | 
 | 	addq	$24, %rsp | 
 | 	ret | 
 | 	.seh_endproc | 
 | #elif defined(_X86_) || defined(__i386__) | 
 |         flds    4(%esp) | 
 |         subl    $8, %esp | 
 |         fstcw   (%esp) | 
 |         /* FE_TOWARDZERO */ | 
 |         movzwl (%esp), %eax | 
 |         orb    $0xc, %ah | 
 |         movw    %ax, 4(%esp) | 
 |         fldcw   4(%esp) | 
 |         frndint | 
 |         fldcw   (%esp) | 
 |         addl    $8, %esp | 
 |         ret | 
 | #endif |