blob: 67b8a0c8d70f62db240a032631b545a5173180de [file] [log] [blame]
Nick Kledzikb9c6e4a2009-09-11 20:02:01 +00001//===-- divsf3vfp.S - Implement divsf3vfp ---------------------------------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
Daniel Dunbar7d504782009-10-27 17:49:50 +000010#include "../assembly.h"
Nick Kledzikb9c6e4a2009-09-11 20:02:01 +000011
12//
13// extern float __divsf3vfp(float a, float b);
14//
15// Divides two single precision floating point numbers using the Darwin
16// calling convention where single arguments are passsed like 32-bit ints.
17//
Daniel Dunbar9ff93712009-10-27 17:50:21 +000018DEFINE_COMPILERRT_FUNCTION(__divsf3vfp)
Nick Kledzikb9c6e4a2009-09-11 20:02:01 +000019 fmsr s14, r0 // move first param from r0 into float register
20 fmsr s15, r1 // move second param from r1 into float register
21 fdivs s13, s14, s15
22 fmrs r0, s13 // move result back to r0
23 bx lr