gtdf2vfp.S revision 222656
1153838Sdfr//===-- gtdf2vfp.S - Implement gtdf2vfp -----------------------------------===// 2153838Sdfr// 3153838Sdfr// The LLVM Compiler Infrastructure 4153838Sdfr// 5153838Sdfr// This file is dual licensed under the MIT and the University of Illinois Open 6153838Sdfr// Source Licenses. See LICENSE.TXT for details. 7153838Sdfr// 8153838Sdfr//===----------------------------------------------------------------------===// 9153838Sdfr 10153838Sdfr#include "../assembly.h" 11153838Sdfr 12153838Sdfr// 13153838Sdfr// extern double __gtdf2vfp(double a, double b); 14153838Sdfr// 15153838Sdfr// Returns one iff a > b and neither is NaN. 16153838Sdfr// Uses Darwin calling convention where double precision arguments are passsed 17153838Sdfr// like in GPR pairs. 18153838Sdfr// 19153838Sdfr .align 2 20153838SdfrDEFINE_COMPILERRT_FUNCTION(__gtdf2vfp) 21153838Sdfr fmdrr d6, r0, r1 // load r0/r1 pair in double register 22153838Sdfr fmdrr d7, r2, r3 // load r2/r3 pair in double register 23153838Sdfr fcmpd d6, d7 24153838Sdfr fmstat 25153838Sdfr movgt r0, #1 // set result register to 1 if equal 26153838Sdfr movle r0, #0 27153838Sdfr bx lr 28153838Sdfr