diff options
author | David E. O'Brien <obrien@FreeBSD.org> | 2000-01-16 06:26:19 +0000 |
---|---|---|
committer | David E. O'Brien <obrien@FreeBSD.org> | 2000-01-16 06:26:19 +0000 |
commit | 5ad81d768ffba47838ede53a286e767173f55788 (patch) | |
tree | 290bed6506b1eef5b7a6ab850284f8db9026767e | |
parent | Upgrade to 0.90b. (diff) |
Fix bogus inlined ASM.
Notes
Notes:
svn path=/head/; revision=24771
-rw-r--r-- | graphics/aview/files/patch-ab | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/graphics/aview/files/patch-ab b/graphics/aview/files/patch-ab new file mode 100644 index 000000000000..78438bb8280b --- /dev/null +++ b/graphics/aview/files/patch-ab @@ -0,0 +1,134 @@ +--- sstring.h.orig Tue Sep 16 04:33:13 1997 ++++ sstring.h Sat Jan 15 22:24:50 2000 +@@ -478,6 +478,7 @@ + extern inline void * __memcpy_g(void * to, const void * from, size_t n) + { + register void *tmp = (void *)to; ++int dummy; /* dummy output for clobbers */ + __asm__ __volatile__ ( + "cld\n\t" + "shrl $1,%%ecx\n\t" +@@ -488,9 +489,9 @@ + "movsw\n" + "2:\trep\n\t" + "movsl" +- : /* no output */ +- :"c" (n),"D" ((long) tmp),"S" ((long) from) +- :"cx","di","si","memory"); ++ :"=c" (dummy),"=D" (dummy),"=S" (dummy) /* dummy output for clobbers */ ++ :"0" (n),"1" ((long) tmp),"2" ((long) from) ++ :"memory"); + return (to); + } + +@@ -499,29 +500,32 @@ + extern inline void * memmove(void * dest,const void * src, size_t n) + { + register void *tmp = (void *)dest; ++int dummy; /* dummy output for clobbers */ + if (dest<src) + __asm__ __volatile__ ( + "cld\n\t" + "rep\n\t" + "movsb" +- : /* no output */ +- :"c" (n),"S" (src),"D" (tmp) +- :"cx","si","di"); ++ :"=c" (dummy),"=S" (dummy),"=D" (dummy) /* dummy outpout for clobbers */ ++ :"0" (n),"1" (src),"2" (tmp) ++ ); + else + __asm__ __volatile__ ( + "std\n\t" + "rep\n\t" + "movsb\n\t" + "cld" +- : /* no output */ +- :"c" (n), "S" (n-1+(const char *)src), "D" (n-1+(char *)tmp) +- :"cx","si","di","memory"); ++ :"=c" (dummy), "=S" (dummy), "=D" (dummy) /* dummy output for clobbers */ ++ ++ :"0" (n), "1" (n-1+(const char *)src), "2" (n-1+(char *)tmp) ++ :"memory"); + return dest; + } + + extern inline int memcmp(const void * cs,const void * ct,size_t count) + { + register int __res; ++int dummy; /* dummy output for clobbers */ + __asm__ __volatile__( + "cld\n\t" + "repe\n\t" +@@ -530,8 +534,9 @@ + "sbbl %0,%0\n\t" + "orb $1,%b0\n" + "1:" +- :"=abd" (__res):"0" (0),"S" (cs),"D" (ct),"c" (count) +- :"si","di","cx"); ++ :"=abd" (__res), "=S" (dummy),"=D" (dummy),"=c" (dummy) ++ :"0" (0),"1" (cs),"2" (ct),"3" (count) ++ ); + return __res; + } + +@@ -539,6 +544,7 @@ + extern inline void * memchr(const void * cs,int c,size_t count) + { + register void * __res; ++int dummy; /* dummy output for clobbers */ + if (!count) + return NULL; + __asm__ __volatile__( +@@ -548,8 +554,8 @@ + "je 1f\n\t" + "movl $1,%0\n" + "1:\tdecl %0" +- :"=D" (__res):"a" (c),"D" (cs),"c" (count) +- :"cx"); ++ :"=D" (__res), "=c"(dummy):"a" (c),"0" (cs),"1" (count) ++ ); + return __res; + } + +@@ -657,6 +663,7 @@ + extern inline void * __memset_cg(void * s, char c, size_t count) + { + register void *tmp = (void *)s; ++int dummy; /* dummy output for clobbers */ + __asm__ __volatile__ ( + "shrl $1,%%ecx\n\t" + "rep\n\t" +@@ -664,15 +671,16 @@ + "jnc 1f\n\t" + "movb %%al,(%%edi)\n" + "1:" +- : /* no output */ +- :"c" (count),"D" (tmp), "a" (0x0101U * (unsigned char) c) +- :"cx","di","memory"); ++ :"=c" (dummy),"=D" (dummy) /* dummy output for clobbers */ ++ :"0" (count),"1" (tmp), "a" (0x0101U * (unsigned char) c) ++ :"memory"); + return s; + } + + extern inline void * __memset_gg(void * s,char c,size_t count) + { + register void *tmp = (void *)s; ++int dummy; /* dummy output for clobbers */ + __asm__ __volatile__ ( + "movb %%al,%%ah\n\t" + "shrl $1,%%ecx\n\t" +@@ -681,9 +689,9 @@ + "jnc 1f\n\t" + "movb %%al,(%%edi)\n" + "1:" +- : /* no output */ +- :"c" (count),"D" (tmp), "a" (c) +- :"cx","di","memory"); ++ :"=c" (dummy),"=D" (dummy) /* dummy output for clobbers */ ++ :"0" (count),"1" (tmp), "a" (c) ++ :"memory"); + return s; + } + |