Forráskód Böngészése

Make mips/mipsel syscalls no longer complain about the "use of memory input
without lvalue in asm". Give the asm an lvalue so it can be happy.

Eric Andersen 19 éve
szülő
commit
3d41585c1c
1 módosított fájl, 12 hozzáadás és 6 törlés
  1. 12 6
      libc/sysdeps/linux/mips/bits/syscalls.h

+ 12 - 6
libc/sysdeps/linux/mips/bits/syscalls.h

@@ -132,6 +132,7 @@ return (type)-1; \
 type name (atype a,btype b,ctype c,dtype d,etype e) \
 { \
 long __res, __err; \
+const unsigned long *constE = (unsigned long) e; \
 __asm__ volatile ("move\t$4,%3\n\t" \
                   "move\t$5,%4\n\t" \
                   "move\t$6,%5\n\t" \
@@ -149,7 +150,7 @@ __asm__ volatile ("move\t$4,%3\n\t" \
                                       "r" ((long)(b)), \
                                       "r" ((long)(c)), \
                                       "r" ((long)(d)), \
-                                      "m" ((long)(e)) \
+                                      "m" (constE) \
                   : "$2","$4","$5","$6","$7","$8","$9","$10","$11","$12", \
                     "$13","$14","$15","$24","memory"); \
 if (__err == 0) \
@@ -162,6 +163,8 @@ return (type)-1; \
 type name (atype a,btype b,ctype c,dtype d,etype e,ftype f) \
 { \
 long __res, __err; \
+const unsigned long *constE = (unsigned long) e; \
+const unsigned long *constF = (unsigned long) f; \
 __asm__ volatile ("move\t$4,%3\n\t" \
                   "move\t$5,%4\n\t" \
                   "move\t$6,%5\n\t" \
@@ -181,8 +184,8 @@ __asm__ volatile ("move\t$4,%3\n\t" \
                                       "r" ((long)(b)), \
                                       "r" ((long)(c)), \
                                       "r" ((long)(d)), \
-                                      "m" ((long)(e)), \
-                                      "m" ((long)(f)) \
+                                      "m" (constE), \
+                                      "m" (constF) \
                   : "$2","$3","$4","$5","$6","$7","$8","$9","$10","$11", \
                     "$12","$13","$14","$15","$24","memory"); \
 if (__err == 0) \
@@ -195,6 +198,9 @@ return (type)-1; \
 type name (atype a,btype b,ctype c,dtype d,etype e,ftype f,gtype g) \
 { \
 long __res, __err; \
+const unsigned long *constE = (unsigned long) e; \
+const unsigned long *constF = (unsigned long) f; \
+const unsigned long *constG = (unsigned long) g; \
 __asm__ volatile ("move\t$4,%3\n\t" \
                   "move\t$5,%4\n\t" \
                   "move\t$6,%5\n\t" \
@@ -216,9 +222,9 @@ __asm__ volatile ("move\t$4,%3\n\t" \
                                       "r" ((long)(b)), \
                                       "r" ((long)(c)), \
                                       "r" ((long)(d)), \
-                                      "m" ((long)(e)), \
-                                      "m" ((long)(f)), \
-                                      "m" ((long)(g)) \
+                                      "m" (constE), \
+                                      "m" (constF) \
+                                      "m" (constG) \
                   : "$2","$3","$4","$5","$6","$7","$8","$9","$10","$11", \
                     "$12","$13","$14","$15","$24","memory"); \
 if (__err == 0) \