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