From owner-p4-projects@FreeBSD.ORG Fri May 9 21:56:10 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8353B37B404; Fri, 9 May 2003 21:56:09 -0700 (PDT) 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 2377537B401 for ; Fri, 9 May 2003 21:56:09 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A236C43FE3 for ; Fri, 9 May 2003 21:56:08 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h4A4u80U029998 for ; Fri, 9 May 2003 21:56:08 -0700 (PDT) (envelope-from jmallett@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4A4u8OQ029995 for perforce@freebsd.org; Fri, 9 May 2003 21:56:08 -0700 (PDT) Date: Fri, 9 May 2003 21:56:08 -0700 (PDT) Message-Id: <200305100456.h4A4u8OQ029995@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jmallett@freebsd.org using -f From: Juli Mallett To: Perforce Change Reviews Subject: PERFORCE change 30906 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 10 May 2003 04:56:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=30906 Change 30906 by jmallett@jmallett_dalek on 2003/05/09 21:55:24 Mark temp variables as outputs so it doesn't look like we are getting values from them, and doing something wrong with them uninitialised. The asm doesn't make any use of existing values in them. XXX, need to find a way to just get *A* temporary register in the inline assembler. Maybe just mark $8 as clobbered and use it? Affected files ... .. //depot/projects/mips/sys/mips/include/atomic.h#15 edit Differences ... ==== //depot/projects/mips/sys/mips/include/atomic.h#15 (text+ko) ==== @@ -107,8 +107,8 @@ asmop "\n\t" \ "sc %[temp], %[p]\n\t" \ "beqz %[temp], 1b\n\t" \ - : [val] "=&r"(val), [p] "+m"(*p) \ - : [temp] "r"(temp) \ + : [val] "=&r"(val), [temp] "=&r"(temp), [p] "+m"(*p) \ + : \ : "memory" \ ); \ } @@ -146,8 +146,8 @@ "sc %[temp], %[p]\n\t" "beqz %[temp], 1b\n\t" "2:\n\t" - : [res] "=&r"(res), [p] "+m"(*p) - : [old] "r"(old), [val] "r"(val), [temp] "r"(temp) + : [res] "=&r"(res), [temp] "=&r"(temp), [p] "+m"(*p) + : [old] "r"(old), [val] "r"(val) : "memory" ); @@ -169,8 +169,8 @@ "move %[temp], $0\n\t" "sc %[temp], %[p]\n\t" "beqz %[temp], 1b\n\t" - : [res] "=&r"(res), [p] "+m"(*p) - : [temp] "r"(temp) + : [res] "=&r"(res), [temp] "=&r"(temp), [p] "+m"(*p) + : : "memory" ); @@ -195,8 +195,8 @@ asmop "\n\t" \ "scd %[temp], %[p]\n\t" \ "beqz %[temp], 1b\n\t" \ - : [val] "=&r"(val), [p] "+m"(*p) \ - : [temp] "r"(temp) \ + : [val] "=&r"(val), [temp] "=&r"(temp), [p] "+m"(*p) \ + : \ : "memory" \ ); \ } @@ -234,8 +234,8 @@ "scd %[temp], %[p]\n\t" "beqz %[temp], 1b\n\t" "2:\n\t" - : [res] "=&r"(res), [p] "+m"(*p) - : [old] "r"(old), [val] "r"(val), [temp] "r"(temp) + : [res] "=&r"(res), [temp] "=&r"(temp), [p] "+m"(*p) + : [old] "r"(old), [val] "r"(val) : "memory" ); @@ -257,8 +257,8 @@ "move %[temp], $0\n\t" "scd %[temp], %[p]\n\t" "beqz %[temp], 1b\n\t" - : [res] "=&r"(res), [p] "+m"(*p) - : [temp] "r"(temp) + : [res] "=&r"(res), [temp] "=&r"(temp), [p] "+m"(*p) + : : "memory" );