Date: Mon, 18 Jul 2005 17:21:22 GMT From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 80465 for review Message-ID: <200507181721.j6IHLMIB065538@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=80465 Change 80465 by jhb@jhb_slimer on 2005/07/18 17:20:49 Merge in some fixes made possible by atomic_foo_ptr(). Affected files ... .. //depot/projects/smpng/sys/arm/include/atomic.h#16 edit .. //depot/projects/smpng/sys/arm/include/endian.h#12 edit .. //depot/projects/smpng/sys/sparc64/include/cpufunc.h#25 edit Differences ... ==== //depot/projects/smpng/sys/arm/include/atomic.h#16 (text+ko) ==== @@ -77,8 +77,10 @@ static __inline uint32_t __swp(uint32_t val, volatile uint32_t *ptr) { - __asm __volatile("swp %0, %1, [%2]" - : "=&r" (val) : "r" (val) , "r" (ptr) : "memory"); + __asm __volatile("swp %0, %2, [%3]" + : "=&r" (val), "=m" (*ptr) + : "r" (val) , "r" (ptr), "m" (*ptr) + : "memory"); return (val); } ==== //depot/projects/smpng/sys/arm/include/endian.h#12 (text+ko) ==== @@ -100,11 +100,10 @@ __bswap16_var(__uint16_t v) { __asm __volatile( - "mov %0, %1, ror #8\n" + "mov %0, %0, ror #8\n" "orr %0, %0, %0, lsr #16\n" "bic %0, %0, %0, lsl #16" - : "=r" (v) - : "0" (v)); + : "+r" (v)); return (v); } ==== //depot/projects/smpng/sys/sparc64/include/cpufunc.h#25 (text+ko) ==== @@ -62,15 +62,17 @@ #define casa(rs1, rs2, rd, asi) ({ \ u_int __rd = (uint32_t)(rd); \ - __asm __volatile("casa [%1] %2, %3, %0" \ - : "+r" (__rd) : "r" (rs1), "n" (asi), "r" (rs2)); \ + __asm __volatile("casa [%2] %3, %4, %0" \ + : "+r" (__rd), "=m" (*rs1) \ + : "r" (rs1), "n" (asi), "r" (rs2), "m" (*rs1)); \ __rd; \ }) #define casxa(rs1, rs2, rd, asi) ({ \ u_long __rd = (uint64_t)(rd); \ - __asm __volatile("casxa [%1] %2, %3, %0" \ - : "+r" (__rd) : "r" (rs1), "n" (asi), "r" (rs2)); \ + __asm __volatile("casxa [%2] %3, %4, %0" \ + : "+r" (__rd), "=m" (*rs1) \ + : "r" (rs1), "n" (asi), "r" (rs2), "m" (*rs1)); \ __rd; \ })
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200507181721.j6IHLMIB065538>