<p dir="ltr">_WIN32, WIN32, WIN64, and _WIN64 are the wrong definitions to be gating this on in the first place. They aren&#39;t at all meant to be x86/x86-64 specific. At best, they&#39;re 32-bit/64-bit specific, but that&#39;s not the intended use in the code. The correct definitions are _M_IX86 and _M_X64, as Martin said.</p>
<p dir="ltr">I sent a patch to this ML that fixed these a few months ago but it was forgotten/ignored. Hopefully the issue gets addressed this time.<br></p>
<p dir="ltr">Cameron</p>
<div class="gmail_quote">On Nov 6, 2014 9:53 AM, &quot;Martin Storsjö&quot; &lt;<a href="mailto:martin@martin.st">martin@martin.st</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Thu, 6 Nov 2014, Hugo Beauzée-Luyssen wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
---<br>
celt/float_cast.h | 4 ++--<br>
1 file changed, 2 insertions(+), 2 deletions(-)<br>
<br>
diff --git a/celt/float_cast.h b/celt/float_cast.h<br>
index ede6574..4892e2c 100644<br>
--- a/celt/float_cast.h<br>
+++ b/celt/float_cast.h<br>
@@ -90,14 +90,14 @@<br>
#include &lt;math.h&gt;<br>
#define float2int(x) lrint(x)<br>
<br>
-#elif (defined(_MSC_VER) &amp;&amp; _MSC_VER &gt;= 1400) &amp;&amp; (defined (WIN64) || defined (_WIN64))<br>
+#elif (defined(_MSC_VER) &amp;&amp; _MSC_VER &gt;= 1400) &amp;&amp; (defined (WIN64) || defined (_WIN64)) &amp;&amp; !defined(_M_ARM)<br>
        #include &lt;xmmintrin.h&gt;<br>
<br>
        __inline long int float2int(float value)<br>
        {<br>
                return _mm_cvtss_si32(_mm_load_ss(&amp;<u></u>value));<br>
        }<br>
-#elif (defined(_MSC_VER) &amp;&amp; _MSC_VER &gt;= 1400) &amp;&amp; (defined (WIN32) || defined (_WIN32))<br>
+#elif (defined(_MSC_VER) &amp;&amp; _MSC_VER &gt;= 1400) &amp;&amp; (defined (WIN32) || defined (_WIN32)) &amp;&amp; !defined(_M_ARM)<br>
        #include &lt;math.h&gt;<br>
<br>
        /*      Win32 doesn&#39;t seem to have these functions.<br>
-- <br>
2.1.1<br>
</blockquote>
<br>
As MSVC might support other architectures than arm and x86 (they did support mips, alpha and itanium at some points in time), I think it might be better to use this instead:<br>
<br>
... &amp;&amp; (defined(_M_IX86) || defined(_M_X64))<br>
<br>
// Martin<br>_______________________________________________<br>
opus mailing list<br>
<a href="mailto:opus@xiph.org">opus@xiph.org</a><br>
<a href="http://lists.xiph.org/mailman/listinfo/opus" target="_blank">http://lists.xiph.org/mailman/listinfo/opus</a><br>
<br></blockquote></div>