From 63e39ab9a99a4854dc11d0dd5310173f2ed35f08 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Thu, 3 Sep 1998 02:14:39 +0000 Subject: [PATCH] O2. Seems tas() for PPC (storage/buffer/s_lock.c) never works if compiled with -O0. Included are patches that should fix the problem (of course I have confirmed -O2 works with this patch). BTW, here is a platforms/regression test failure(serious one--backend death) matrix. Tatsuo Ishii --- src/backend/storage/buffer/s_lock.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/backend/storage/buffer/s_lock.c b/src/backend/storage/buffer/s_lock.c index 84b9868bc0..114cb9ec20 100644 --- a/src/backend/storage/buffer/s_lock.c +++ b/src/backend/storage/buffer/s_lock.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/buffer/Attic/s_lock.c,v 1.9 1998/09/01 04:31:44 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/buffer/Attic/s_lock.c,v 1.10 1998/09/03 02:14:39 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -95,20 +95,23 @@ s_lock(volatile slock_t *lock, const char *file, const int line) #if defined(PPC) /* Note: need a nice gcc constrained asm version so it can be inlined */ -int -tas(volatile slock_t *lock) +static void +tas_dummy() { - __asm__("lwarx 5,0,3 \n\ - cmpwi 5,0 \n\ - bne fail \n\ - addi 5,5,1 \n\ + __asm__(" \n\ +.global tas \n\ +tas: \n\ + lwarx 5,0,3 \n\ + cmpwi 5,0 \n\ + bne fail \n\ + addi 5,5,1 \n\ stwcx. 5,0,3 \n\ - beq success \n\ -fail: li 3,1 \n\ - blr \n\ -success: \n\ - li 3,0 \n\ - blr \n\ + beq success \n\ +fail: li 3,1 \n\ + blr \n\ +success: \n\ + li 3,0 \n\ + blr \n\ "); }