From: <daw...@us...> - 2014-05-13 23:03:17
|
Revision: 6635 http://sourceforge.net/p/mingw-w64/code/6635 Author: dawncrow Date: 2014-05-13 23:03:11 +0000 (Tue, 13 May 2014) Log Message: ----------- math: Add ARM implementation for fma and fmaf Modified Paths: -------------- trunk/mingw-w64-crt/math/fma.S trunk/mingw-w64-crt/math/fmaf.S Modified: trunk/mingw-w64-crt/math/fma.S =================================================================== --- trunk/mingw-w64-crt/math/fma.S 2014-05-13 23:02:30 UTC (rev 6634) +++ trunk/mingw-w64-crt/math/fma.S 2014-05-13 23:03:11 UTC (rev 6635) @@ -13,10 +13,10 @@ .align 4 #endif .p2align 4,,15 -.globl __MINGW_USYMBOL(fma) + .globl __MINGW_USYMBOL(fma) .def __MINGW_USYMBOL(fma); .scl 2; .type 32; .endef __MINGW_USYMBOL(fma): -#ifdef _WIN64 +#if defined(_AMD64_) || defined(__x86_64__) subq $56, %rsp movsd %xmm0,(%rsp) movsd %xmm1,16(%rsp) @@ -29,7 +29,11 @@ movsd (%rsp),%xmm0 addq $56, %rsp ret -#else +#elif defined(_ARM_) || defined(__arm__) + fmacd d2, d0, d1 + fcpyd d0, d2 + bx lr +#elif defined(_X86_) || defined(__i386__) fldl 4(%esp) fmull 12(%esp) fldl 20(%esp) Modified: trunk/mingw-w64-crt/math/fmaf.S =================================================================== --- trunk/mingw-w64-crt/math/fmaf.S 2014-05-13 23:02:30 UTC (rev 6634) +++ trunk/mingw-w64-crt/math/fmaf.S 2014-05-13 23:03:11 UTC (rev 6635) @@ -13,10 +13,10 @@ .align 2 #endif .p2align 4,,15 -.globl __MINGW_USYMBOL(fmaf) + .globl __MINGW_USYMBOL(fmaf) .def __MINGW_USYMBOL(fmaf); .scl 2; .type 32; .endef __MINGW_USYMBOL(fmaf): -#ifdef _WIN64 +#if defined(_AMD64_) || defined(__x86_64__) subq $56, %rsp movss %xmm0,(%rsp) movss %xmm1,16(%rsp) @@ -29,7 +29,11 @@ movss (%rsp),%xmm0 addq $56, %rsp ret -#else +#elif defined(_ARM_) || defined(__arm__) + fmacs s2, s0, s1 + fcpys s0, s2 + bx lr +#elif defined(_X86_) || defined(__i386__) flds 4(%esp) fmuls 8(%esp) flds 12(%esp) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |