]> git.pld-linux.org Git - packages/SDL.git/blame - SDL-mmx-constraints.patch
- dropped caca patch (already upstream)
[packages/SDL.git] / SDL-mmx-constraints.patch
CommitLineData
5d50ba8f
JB
1--- SDL-1.2.7/src/video/mmx.h.orig 2003-08-22 07:51:19.000000000 +0200
2+++ SDL-1.2.7/src/video/mmx.h 2003-11-09 13:49:35.270218296 +0100
b861b88a
JB
3@@ -246,15 +246,37 @@
4 printf(#op "_i2r(" #imm "=0x%08x%08x, ", \
5 mmx_trace.d[1], mmx_trace.d[0]); \
6 __asm__ __volatile__ ("movq %%" #reg ", %0" \
7- : "=X" (mmx_trace) \
8+ : "=m" (mmx_trace) \
9 : /* nothing */ ); \
10 printf(#reg "=0x%08x%08x) => ", \
11 mmx_trace.d[1], mmx_trace.d[0]); \
12 __asm__ __volatile__ (#op " %0, %%" #reg \
13 : /* nothing */ \
14- : "X" (imm)); \
15+ : "i" (imm)); \
16 __asm__ __volatile__ ("movq %%" #reg ", %0" \
17- : "=X" (mmx_trace) \
18+ : "=m" (mmx_trace) \
19+ : /* nothing */ ); \
20+ printf(#reg "=0x%08x%08x\n", \
21+ mmx_trace.d[1], mmx_trace.d[0]); \
22+ }
23+
24+/* 32 bits or less */
25+#define mmx_m2r32(op, mem, reg) \
26+ { \
27+ mmx_t mmx_trace; \
28+ mmx_trace = (mem); \
29+ printf(#op "_m2r(" #mem "=0x%08x%08x, ", \
30+ mmx_trace.d[1], mmx_trace.d[0]); \
31+ __asm__ __volatile__ ("movq %%" #reg ", %0" \
32+ : "=m" (mmx_trace) \
33+ : /* nothing */ ); \
34+ printf(#reg "=0x%08x%08x) => ", \
35+ mmx_trace.d[1], mmx_trace.d[0]); \
36+ __asm__ __volatile__ (#op " %0, %%" #reg \
37+ : /* nothing */ \
38+ : "mr" (mem)); \
39+ __asm__ __volatile__ ("movq %%" #reg ", %0" \
40+ : "=m" (mmx_trace) \
41 : /* nothing */ ); \
42 printf(#reg "=0x%08x%08x\n", \
43 mmx_trace.d[1], mmx_trace.d[0]); \
44@@ -267,25 +289,45 @@
45 printf(#op "_m2r(" #mem "=0x%08x%08x, ", \
46 mmx_trace.d[1], mmx_trace.d[0]); \
47 __asm__ __volatile__ ("movq %%" #reg ", %0" \
48- : "=X" (mmx_trace) \
49+ : "=m" (mmx_trace) \
50 : /* nothing */ ); \
51 printf(#reg "=0x%08x%08x) => ", \
52 mmx_trace.d[1], mmx_trace.d[0]); \
53 __asm__ __volatile__ (#op " %0, %%" #reg \
54 : /* nothing */ \
55- : "X" (mem)); \
56+ : "m" (mem)); \
57 __asm__ __volatile__ ("movq %%" #reg ", %0" \
58- : "=X" (mmx_trace) \
59+ : "=m" (mmx_trace) \
60 : /* nothing */ ); \
61 printf(#reg "=0x%08x%08x\n", \
62 mmx_trace.d[1], mmx_trace.d[0]); \
63 }
64
65+/* 32 bits or less */
66+#define mmx_r2m32(op, reg, mem) \
67+ { \
68+ mmx_t mmx_trace; \
69+ __asm__ __volatile__ ("movq %%" #reg ", %0" \
70+ : "=m" (mmx_trace) \
71+ : /* nothing */ ); \
72+ printf(#op "_r2m(" #reg "=0x%08x%08x, ", \
73+ mmx_trace.d[1], mmx_trace.d[0]); \
74+ mmx_trace = (mem); \
75+ printf(#mem "=0x%08x%08x) => ", \
76+ mmx_trace.d[1], mmx_trace.d[0]); \
77+ __asm__ __volatile__ (#op " %%" #reg ", %0" \
78+ : "=mr" (mem) \
79+ : /* nothing */ ); \
80+ mmx_trace = (mem); \
81+ printf(#mem "=0x%08x%08x\n", \
82+ mmx_trace.d[1], mmx_trace.d[0]); \
83+ }
84+
85 #define mmx_r2m(op, reg, mem) \
86 { \
87 mmx_t mmx_trace; \
88 __asm__ __volatile__ ("movq %%" #reg ", %0" \
89- : "=X" (mmx_trace) \
90+ : "=m" (mmx_trace) \
91 : /* nothing */ ); \
92 printf(#op "_r2m(" #reg "=0x%08x%08x, ", \
93 mmx_trace.d[1], mmx_trace.d[0]); \
94@@ -293,7 +335,7 @@
95 printf(#mem "=0x%08x%08x) => ", \
96 mmx_trace.d[1], mmx_trace.d[0]); \
97 __asm__ __volatile__ (#op " %%" #reg ", %0" \
98- : "=X" (mem) \
99+ : "=m" (mem) \
100 : /* nothing */ ); \
101 mmx_trace = (mem); \
102 printf(#mem "=0x%08x%08x\n", \
103@@ -304,18 +346,18 @@
104 { \
105 mmx_t mmx_trace; \
106 __asm__ __volatile__ ("movq %%" #regs ", %0" \
107- : "=X" (mmx_trace) \
108+ : "=m" (mmx_trace) \
109 : /* nothing */ ); \
110 printf(#op "_r2r(" #regs "=0x%08x%08x, ", \
111 mmx_trace.d[1], mmx_trace.d[0]); \
112 __asm__ __volatile__ ("movq %%" #regd ", %0" \
113- : "=X" (mmx_trace) \
114+ : "=m" (mmx_trace) \
115 : /* nothing */ ); \
116 printf(#regd "=0x%08x%08x) => ", \
117 mmx_trace.d[1], mmx_trace.d[0]); \
118 __asm__ __volatile__ (#op " %" #regs ", %" #regd); \
119 __asm__ __volatile__ ("movq %%" #regd ", %0" \
120- : "=X" (mmx_trace) \
121+ : "=m" (mmx_trace) \
122 : /* nothing */ ); \
123 printf(#regd "=0x%08x%08x\n", \
124 mmx_trace.d[1], mmx_trace.d[0]); \
125@@ -333,8 +375,8 @@
126 __asm__ __volatile__ ("movq %0, %%mm0\n\t" \
127 #op " %1, %%mm0\n\t" \
128 "movq %%mm0, %0" \
129- : "=X" (memd) \
130- : "X" (mems)); \
131+ : "=my" (memd) \
132+ : "my" (mems)); \
133 mmx_trace = (memd); \
134 printf(#memd "=0x%08x%08x\n", \
135 mmx_trace.d[1], mmx_trace.d[0]); \
136@@ -348,16 +390,28 @@
137 #define mmx_i2r(op, imm, reg) \
138 __asm__ __volatile__ (#op " %0, %%" #reg \
139 : /* nothing */ \
140- : "X" (imm) )
141+ : "i" (imm) )
142+
143+/* 32 bits or less */
144+#define mmx_m2r32(op, mem, reg) \
145+ __asm__ __volatile__ (#op " %0, %%" #reg \
146+ : /* nothing */ \
147+ : "mr" (mem))
148
149 #define mmx_m2r(op, mem, reg) \
150 __asm__ __volatile__ (#op " %0, %%" #reg \
151 : /* nothing */ \
5d50ba8f 152 : "m" (mem))
b861b88a
JB
153+
154+/* 32 bits or less */
155+#define mmx_r2m32(op, reg, mem) \
156+ __asm__ __volatile__ (#op " %%" #reg ", %0" \
157+ : "=mr" (mem) \
158+ : /* nothing */ )
159
160 #define mmx_r2m(op, reg, mem) \
161 __asm__ __volatile__ (#op " %%" #reg ", %0" \
162- : "=X" (mem) \
163+ : "=m" (mem) \
164 : /* nothing */ )
165
166 #define mmx_r2r(op, regs, regd) \
167@@ -367,8 +421,8 @@
168 __asm__ __volatile__ ("movq %0, %%mm0\n\t" \
169 #op " %1, %%mm0\n\t" \
170 "movq %%mm0, %0" \
171- : "=X" (memd) \
172- : "X" (mems))
173+ : "=my" (memd) \
174+ : "my" (mems))
175
176 #endif
177
178@@ -383,8 +437,8 @@
179 #define movq(vars, vard) \
180 __asm__ __volatile__ ("movq %1, %%mm0\n\t" \
181 "movq %%mm0, %0" \
182- : "=X" (vard) \
183- : "X" (vars))
184+ : "=my" (vard) \
185+ : "my" (vars))
186
187
188 /* 1x32 MOVe Doubleword
189@@ -392,14 +446,14 @@
190 but is most useful for moving things between
191 mmx registers and ordinary registers)
192 */
193-#define movd_m2r(var, reg) mmx_m2r(movd, var, reg)
194-#define movd_r2m(reg, var) mmx_r2m(movd, reg, var)
195+#define movd_m2r(var, reg) mmx_m2r32(movd, var, reg)
196+#define movd_r2m(reg, var) mmx_r2m32(movd, reg, var)
197 #define movd_r2r(regs, regd) mmx_r2r(movd, regs, regd)
198 #define movd(vars, vard) \
199 __asm__ __volatile__ ("movd %1, %%mm0\n\t" \
200 "movd %%mm0, %0" \
201- : "=X" (vard) \
202- : "X" (vars))
203+ : "=mr" (vard) \
204+ : "mr" (vars))
205
206
207 /* 2x32, 4x16, and 8x8 Parallel ADDs
This page took 0.052393 seconds and 4 git commands to generate.