From 5824d02155e68180bd2237946a33b29dbef1dd51 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 27 Aug 2005 16:22:48 +0000 Subject: [PATCH] Get the MIPS assembler syntax right. Also add a separate sync command; the reference I consulted yesterday said SC does a SYNC, but apparently this is not true on newer MIPS processors, so be safe. --- src/include/storage/s_lock.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h index 3951aa7137..75b15a334e 100644 --- a/src/include/storage/s_lock.h +++ b/src/include/storage/s_lock.h @@ -66,7 +66,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/storage/s_lock.h,v 1.137 2005/08/26 22:04:42 tgl Exp $ + * $PostgreSQL: pgsql/src/include/storage/s_lock.h,v 1.138 2005/08/27 16:22:48 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -455,6 +455,7 @@ do \ #if defined(__mips__) && !defined(__sgi) /* Note: on SGI we use the OS' mutex ABI, see below */ +/* Note: R10000 processors require a separate SYNC */ #define HAS_TEST_AND_SET typedef unsigned int slock_t; @@ -474,11 +475,12 @@ tas(volatile slock_t *lock) " .set noreorder \n" " .set nomacro \n" " ll %0, %2 \n" - " or %1, %0, $1 \n" + " or %1, %0, 1 \n" " sc %1, %2 \n" - " xori %1, $1 \n" + " xori %1, 1 \n" " or %0, %0, %1 \n" - "1: .set pop " + " sync \n" + " .set pop " : "=&r" (_res), "=&r" (_tmp), "+R" (*_l) : : "memory"); -- 2.40.0