Merged revisions 111856 via svnmerge from
authorJason Parker <jparker@digium.com>
Fri, 28 Mar 2008 21:46:02 +0000 (21:46 +0000)
committerJason Parker <jparker@digium.com>
Fri, 28 Mar 2008 21:46:02 +0000 (21:46 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r111856 | qwell | 2008-03-28 16:45:35 -0500 (Fri, 28 Mar 2008) | 12 lines

Allow gsm to compile correctly on x86 with gcc4 optimizations.

(closes issue #11243)
Reported by: whiskerp
Patches:
      11243-maybe-asm.diff uploaded by qwell (license 4)
Tested by: Seggy (IRC)

Note: While I did write this patch, I would not have found this if fossil
 had not reported and fixed issue #12253.  A huge thanks to him for helping
 to (indirectly) find the problem here.

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@111857 65c4cc65-6c06-0410-ace0-fbb531ad65f3

codecs/gsm/inc/private.h

index 7021030..80ecbc5 100644 (file)
@@ -105,7 +105,7 @@ static __inline__ int GSM_L_ADD(int a, int b)
        __asm__ __volatile__(
        
                        "addl %2,%0; jno 0f; movl $0x7fffffff,%0; adcl $0,%0; 0:"
-                       : "=r" (a)
+                       : "=&r" (a)
                        : "0" (a), "ir" (b)
                        : "cc"
                );
@@ -116,7 +116,7 @@ static __inline__ short GSM_ADD(short a, short b)
 {
        __asm__ __volatile__(
                        "addw %2,%0; jno 0f; movw $0x7fff,%0; adcw $0,%0; 0:"
-                       : "=r" (a)
+                       : "=&r" (a)
                        : "0" (a), "ir" (b)
                        : "cc"
                );
@@ -127,7 +127,7 @@ static __inline__ short GSM_SUB(short a, short b)
 {
        __asm__ __volatile__(
                        "subw %2,%0; jno 0f; movw $0x7fff,%0; adcw $0,%0; 0:"
-                       : "=r" (a)
+                       : "=&r" (a)
                        : "0" (a), "ir" (b)
                        : "cc"
                );