40 lines · plain
1// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.2// See https://llvm.org/LICENSE.txt for license information.3// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception4 5#include "../assembly.h"6 7// float __floatundisf(du_int a);8 9#ifdef __x86_64__10 11CONST_SECTION12 13 .balign 1614two:15 .single 2.016 17#define REL_ADDR(_a) (_a)(%rip)18 19.text20.balign 421DEFINE_COMPILERRT_FUNCTION(__floatundisf)22 movq $1, %rsi23 testq %rdi, %rdi24 js 1f25 cvtsi2ssq %rdi, %xmm026 ret27 281: andq %rdi, %rsi29 shrq %rdi30 orq %rsi, %rdi31 cvtsi2ssq %rdi, %xmm032 mulss REL_ADDR(two), %xmm033 ret34END_COMPILERRT_FUNCTION(__floatundisf)35 36#endif // __x86_64__37 38NO_EXEC_STACK_DIRECTIVE39 40