177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// This file is distributed under the University of Illinois Open Source
277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// License. See LICENSE.TXT for details.
377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include "../assembly.h"
577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// float __floatundisf(du_int a);
777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#ifdef __x86_64__
977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
1077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#ifndef __ELF__
1177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao.literal4
1277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#endif
1377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaotwo: .single 2.0
1477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
1577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#define REL_ADDR(_a)	(_a)(%rip)
1677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
1777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao.text
1877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao.align 4
1977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoDEFINE_COMPILERRT_FUNCTION(__floatundisf)
2077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	movq		$1,			%rsi
2177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	testq		%rdi,		%rdi
2277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	js			1f
2377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	cvtsi2ssq	%rdi,		%xmm0
2477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	ret
2577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
2677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao1:	andq		%rdi,		%rsi
2777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	shrq		%rdi
2877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	orq			%rsi,		%rdi
2977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	cvtsi2ssq	%rdi,		%xmm0
3077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	mulss	REL_ADDR(two),	%xmm0
3177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	ret
3277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
3377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#endif // __x86_64__
34