From owner-p4-projects@FreeBSD.ORG Mon Jul 18 17:21:24 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 846B416A420; Mon, 18 Jul 2005 17:21:23 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 479F416A41C for ; Mon, 18 Jul 2005 17:21:23 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1518143D45 for ; Mon, 18 Jul 2005 17:21:23 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6IHLMNG065541 for ; Mon, 18 Jul 2005 17:21:22 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6IHLMIB065538 for perforce@freebsd.org; Mon, 18 Jul 2005 17:21:22 GMT (envelope-from jhb@freebsd.org) Date: Mon, 18 Jul 2005 17:21:22 GMT Message-Id: <200507181721.j6IHLMIB065538@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 80465 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2005 17:21:24 -0000 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; \ })