blob: 6bdae15f5f31305a9ce172d8c3cd7a6d39556255 [file] [log] [blame]
//===-- vfp_alias.S - Override generic runtimes with VFP version ----------===//
//
// The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "../assembly.h"
#include "adddf3vfp.S"
#include "addsf3vfp.S"
#include "divdf3vfp.S"
#include "divsf3vfp.S"
#include "eqdf2vfp.S"
#include "eqsf2vfp.S"
#include "extendsfdf2vfp.S"
#include "fixdfsivfp.S"
#include "fixsfsivfp.S"
#include "fixunsdfsivfp.S"
#include "fixunssfsivfp.S"
#include "floatsidfvfp.S"
#include "floatsisfvfp.S"
#include "floatunssidfvfp.S"
#include "floatunssisfvfp.S"
#include "gedf2vfp.S"
#include "gesf2vfp.S"
#include "gtdf2vfp.S"
#include "gtsf2vfp.S"
#include "ledf2vfp.S"
#include "lesf2vfp.S"
#include "ltdf2vfp.S"
#include "ltsf2vfp.S"
#include "muldf3vfp.S"
#include "mulsf3vfp.S"
#include "nedf2vfp.S"
#include "negdf2vfp.S"
#include "negsf2vfp.S"
#include "nesf2vfp.S"
#include "subdf3vfp.S"
#include "subsf3vfp.S"
#include "truncdfsf2vfp.S"
#include "unorddf2vfp.S"
#include "unordsf2vfp.S"
#define DEFINE_VFP_FUNCTION_ALIAS(name) \
DEFINE_COMPILERRT_FUNCTION_ALIAS(name, name ## vfp)
#define DEFINE_VFP_AND_AEABI_ALIAS(aeabi_name, name) \
DEFINE_VFP_FUNCTION_ALIAS(name) \
DEFINE_AEABI_FUNCTION_ALIAS(aeabi_name, name)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dadd, __adddf3)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fadd, __addsf3)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_ddiv, __divdf3)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fdiv, __divsf3)
DEFINE_VFP_FUNCTION_ALIAS(__eqdf2)
DEFINE_VFP_FUNCTION_ALIAS(__eqsf2)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_f2d, __extendsfdf2)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_d2iz, __fixdfsi)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_f2iz, __fixsfsi)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_d2uiz, __fixunsdfsi)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_f2uiz, __fixunssfsi)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_i2d, __floatsidf)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_i2f, __floatsisf)
DEFINE_VFP_FUNCTION_ALIAS(__gedf2)
DEFINE_VFP_FUNCTION_ALIAS(__gesf2)
DEFINE_VFP_FUNCTION_ALIAS(__gtdf2)
DEFINE_VFP_FUNCTION_ALIAS(__gtsf2)
DEFINE_VFP_FUNCTION_ALIAS(__ledf2)
DEFINE_VFP_FUNCTION_ALIAS(__lesf2)
DEFINE_VFP_FUNCTION_ALIAS(__ltdf2)
DEFINE_VFP_FUNCTION_ALIAS(__ltsf2)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dmul, __muldf3)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fmul, __mulsf3)
DEFINE_VFP_FUNCTION_ALIAS(__nedf2)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dneg, __negdf2)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fneg, __negsf2)
DEFINE_VFP_FUNCTION_ALIAS(__nesf2)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dsub, __subdf3)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fsub, __subsf3)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_d2f, __truncdfsf2)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_dcmpun, __unorddf2)
DEFINE_VFP_AND_AEABI_ALIAS(__aeabi_fcmpun, __unordsf2)
// Alias __floatunsidf to __floatunssidfvfp
DEFINE_COMPILERRT_FUNCTION_ALIAS(__floatunsidf, __floatunssidfvfp)
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_ui2d, __floatunsidf)
// Alias __floatunsisf to __floatunsisfvfp
DEFINE_COMPILERRT_FUNCTION_ALIAS(__floatunsisf, __floatunssisfvfp)
DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_ui2f, __floatunsisf)