floatunssisfvfp.S revision 276851
113546Sjulian//===-- floatunssisfvfp.S - Implement floatunssisfvfp ---------------------===//
2113658Sdeischen//
3113658Sdeischen//                     The LLVM Compiler Infrastructure
435509Sjb//
513546Sjulian// This file is dual licensed under the MIT and the University of Illinois Open
613546Sjulian// Source Licenses. See LICENSE.TXT for details.
713546Sjulian//
813546Sjulian//===----------------------------------------------------------------------===//
913546Sjulian
1013546Sjulian#include "../assembly.h"
1113546Sjulian
1213546Sjulian//
1313546Sjulian// extern float __floatunssisfvfp(unsigned int a);
1413546Sjulian//
1513546Sjulian// Converts single precision float to a 32-bit int rounding towards zero.
1613546Sjulian// Uses Darwin calling convention where a single precision result is
1713546Sjulian// return in a GPR..
1813546Sjulian//
1913546Sjulian	.syntax unified
2013546Sjulian	.p2align 2
2113546SjulianDEFINE_COMPILERRT_FUNCTION(__floatunssisfvfp)
2213546Sjulian	vmov	s15, r0	       // move int to float register s15
2313546Sjulian	vcvt.f32.u32 s15, s15  // convert 32-bit int in s15 to float in s15
2413546Sjulian	vmov	r0, s15        // move s15 to result register
2544963Sjb	bx	lr
2613546SjulianEND_COMPILERRT_FUNCTION(__floatunssisfvfp)
2713546Sjulian