]> git.pld-linux.org Git - packages/crossmingw32-SDL.git/commitdiff
- added mmx-constraints patch: use strict contraints for MMX inline asm auto/ac/SDL-1_2_6-3 auto/ac/SDL-1_2_6-4
authorJakub Bogusz <qboosh@pld-linux.org>
Sun, 9 Nov 2003 13:58:49 +0000 (13:58 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
  arguments - now it's possible to build with new gcc
- added workaround for automake to kill unnecessary libstdc++ dependency
- release 3

Changed files:
    SDL-mmx-constraints.patch -> 1.1

SDL-mmx-constraints.patch [new file with mode: 0644]

diff --git a/SDL-mmx-constraints.patch b/SDL-mmx-constraints.patch
new file mode 100644 (file)
index 0000000..e4dc8e3
--- /dev/null
@@ -0,0 +1,208 @@
+--- SDL-1.2.6/src/video/mmx.h.orig     2003-08-22 07:51:19.000000000 +0200
++++ SDL-1.2.6/src/video/mmx.h  2003-11-09 13:49:35.270218296 +0100
+@@ -246,15 +246,37 @@
+               printf(#op "_i2r(" #imm "=0x%08x%08x, ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               __asm__ __volatile__ ("movq %%" #reg ", %0" \
+-                                    : "=X" (mmx_trace) \
++                                    : "=m" (mmx_trace) \
+                                     : /* nothing */ ); \
+               printf(#reg "=0x%08x%08x) => ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               __asm__ __volatile__ (#op " %0, %%" #reg \
+                                     : /* nothing */ \
+-                                    : "X" (imm)); \
++                                    : "i" (imm)); \
+               __asm__ __volatile__ ("movq %%" #reg ", %0" \
+-                                    : "=X" (mmx_trace) \
++                                    : "=m" (mmx_trace) \
++                                    : /* nothing */ ); \
++              printf(#reg "=0x%08x%08x\n", \
++                      mmx_trace.d[1], mmx_trace.d[0]); \
++      }
++
++/* 32 bits or less */
++#define       mmx_m2r32(op, mem, reg) \
++      { \
++              mmx_t mmx_trace; \
++              mmx_trace = (mem); \
++              printf(#op "_m2r(" #mem "=0x%08x%08x, ", \
++                      mmx_trace.d[1], mmx_trace.d[0]); \
++              __asm__ __volatile__ ("movq %%" #reg ", %0" \
++                                    : "=m" (mmx_trace) \
++                                    : /* nothing */ ); \
++              printf(#reg "=0x%08x%08x) => ", \
++                      mmx_trace.d[1], mmx_trace.d[0]); \
++              __asm__ __volatile__ (#op " %0, %%" #reg \
++                                    : /* nothing */ \
++                                    : "mr" (mem)); \
++              __asm__ __volatile__ ("movq %%" #reg ", %0" \
++                                    : "=m" (mmx_trace) \
+                                     : /* nothing */ ); \
+               printf(#reg "=0x%08x%08x\n", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+@@ -267,25 +289,45 @@
+               printf(#op "_m2r(" #mem "=0x%08x%08x, ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               __asm__ __volatile__ ("movq %%" #reg ", %0" \
+-                                    : "=X" (mmx_trace) \
++                                    : "=m" (mmx_trace) \
+                                     : /* nothing */ ); \
+               printf(#reg "=0x%08x%08x) => ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               __asm__ __volatile__ (#op " %0, %%" #reg \
+                                     : /* nothing */ \
+-                                    : "X" (mem)); \
++                                    : "m" (mem)); \
+               __asm__ __volatile__ ("movq %%" #reg ", %0" \
+-                                    : "=X" (mmx_trace) \
++                                    : "=m" (mmx_trace) \
+                                     : /* nothing */ ); \
+               printf(#reg "=0x%08x%08x\n", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+       }
++/* 32 bits or less */
++#define       mmx_r2m32(op, reg, mem) \
++      { \
++              mmx_t mmx_trace; \
++              __asm__ __volatile__ ("movq %%" #reg ", %0" \
++                                    : "=m" (mmx_trace) \
++                                    : /* nothing */ ); \
++              printf(#op "_r2m(" #reg "=0x%08x%08x, ", \
++                      mmx_trace.d[1], mmx_trace.d[0]); \
++              mmx_trace = (mem); \
++              printf(#mem "=0x%08x%08x) => ", \
++                      mmx_trace.d[1], mmx_trace.d[0]); \
++              __asm__ __volatile__ (#op " %%" #reg ", %0" \
++                                    : "=mr" (mem) \
++                                    : /* nothing */ ); \
++              mmx_trace = (mem); \
++              printf(#mem "=0x%08x%08x\n", \
++                      mmx_trace.d[1], mmx_trace.d[0]); \
++      }
++
+ #define       mmx_r2m(op, reg, mem) \
+       { \
+               mmx_t mmx_trace; \
+               __asm__ __volatile__ ("movq %%" #reg ", %0" \
+-                                    : "=X" (mmx_trace) \
++                                    : "=m" (mmx_trace) \
+                                     : /* nothing */ ); \
+               printf(#op "_r2m(" #reg "=0x%08x%08x, ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+@@ -293,7 +335,7 @@
+               printf(#mem "=0x%08x%08x) => ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               __asm__ __volatile__ (#op " %%" #reg ", %0" \
+-                                    : "=X" (mem) \
++                                    : "=m" (mem) \
+                                     : /* nothing */ ); \
+               mmx_trace = (mem); \
+               printf(#mem "=0x%08x%08x\n", \
+@@ -304,18 +346,18 @@
+       { \
+               mmx_t mmx_trace; \
+               __asm__ __volatile__ ("movq %%" #regs ", %0" \
+-                                    : "=X" (mmx_trace) \
++                                    : "=m" (mmx_trace) \
+                                     : /* nothing */ ); \
+               printf(#op "_r2r(" #regs "=0x%08x%08x, ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               __asm__ __volatile__ ("movq %%" #regd ", %0" \
+-                                    : "=X" (mmx_trace) \
++                                    : "=m" (mmx_trace) \
+                                     : /* nothing */ ); \
+               printf(#regd "=0x%08x%08x) => ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               __asm__ __volatile__ (#op " %" #regs ", %" #regd); \
+               __asm__ __volatile__ ("movq %%" #regd ", %0" \
+-                                    : "=X" (mmx_trace) \
++                                    : "=m" (mmx_trace) \
+                                     : /* nothing */ ); \
+               printf(#regd "=0x%08x%08x\n", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+@@ -333,8 +375,8 @@
+               __asm__ __volatile__ ("movq %0, %%mm0\n\t" \
+                                     #op " %1, %%mm0\n\t" \
+                                     "movq %%mm0, %0" \
+-                                    : "=X" (memd) \
+-                                    : "X" (mems)); \
++                                    : "=my" (memd) \
++                                    : "my" (mems)); \
+               mmx_trace = (memd); \
+               printf(#memd "=0x%08x%08x\n", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+@@ -348,16 +390,28 @@
+ #define       mmx_i2r(op, imm, reg) \
+       __asm__ __volatile__ (#op " %0, %%" #reg \
+                             : /* nothing */ \
+-                            : "X" (imm) )
++                            : "i" (imm) )
++
++/* 32 bits or less */
++#define       mmx_m2r32(op, mem, reg) \
++      __asm__ __volatile__ (#op " %0, %%" #reg \
++                            : /* nothing */ \
++                            : "mr" (mem))
+ #define       mmx_m2r(op, mem, reg) \
+       __asm__ __volatile__ (#op " %0, %%" #reg \
+                             : /* nothing */ \
+-                            : "X" (mem))
++                            : "m" (mem))
++
++/* 32 bits or less */
++#define       mmx_r2m32(op, reg, mem) \
++      __asm__ __volatile__ (#op " %%" #reg ", %0" \
++                            : "=mr" (mem) \
++                            : /* nothing */ )
+ #define       mmx_r2m(op, reg, mem) \
+       __asm__ __volatile__ (#op " %%" #reg ", %0" \
+-                            : "=X" (mem) \
++                            : "=m" (mem) \
+                             : /* nothing */ )
+ #define       mmx_r2r(op, regs, regd) \
+@@ -367,8 +421,8 @@
+       __asm__ __volatile__ ("movq %0, %%mm0\n\t" \
+                             #op " %1, %%mm0\n\t" \
+                             "movq %%mm0, %0" \
+-                            : "=X" (memd) \
+-                            : "X" (mems))
++                            : "=my" (memd) \
++                            : "my" (mems))
+ #endif
+@@ -383,8 +437,8 @@
+ #define       movq(vars, vard) \
+       __asm__ __volatile__ ("movq %1, %%mm0\n\t" \
+                             "movq %%mm0, %0" \
+-                            : "=X" (vard) \
+-                            : "X" (vars))
++                            : "=my" (vard) \
++                            : "my" (vars))
+ /*    1x32 MOVe Doubleword
+@@ -392,14 +446,14 @@
+        but is most useful for moving things between
+        mmx registers and ordinary registers)
+ */
+-#define       movd_m2r(var, reg)      mmx_m2r(movd, var, reg)
+-#define       movd_r2m(reg, var)      mmx_r2m(movd, reg, var)
++#define       movd_m2r(var, reg)      mmx_m2r32(movd, var, reg)
++#define       movd_r2m(reg, var)      mmx_r2m32(movd, reg, var)
+ #define       movd_r2r(regs, regd)    mmx_r2r(movd, regs, regd)
+ #define       movd(vars, vard) \
+       __asm__ __volatile__ ("movd %1, %%mm0\n\t" \
+                             "movd %%mm0, %0" \
+-                            : "=X" (vard) \
+-                            : "X" (vars))
++                            : "=mr" (vard) \
++                            : "mr" (vars))
+ /*    2x32, 4x16, and 8x8 Parallel ADDs
This page took 0.102351 seconds and 4 git commands to generate.