From 76722e125f84dca0fb38da71efdbb74f67827007 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Fri, 8 Apr 2005 10:39:28 +0000 Subject: [PATCH] Clear reservation for 970 (thanks to Miro Jurisic and Philip Koch) [SVN r28060] --- include/boost/detail/sp_counted_base_cw_ppc.hpp | 7 ++++--- include/boost/detail/sp_counted_base_gcc_ppc.hpp | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/boost/detail/sp_counted_base_cw_ppc.hpp b/include/boost/detail/sp_counted_base_cw_ppc.hpp index b44178f..b6fc68a 100644 --- a/include/boost/detail/sp_counted_base_cw_ppc.hpp +++ b/include/boost/detail/sp_counted_base_cw_ppc.hpp @@ -64,14 +64,15 @@ loop: lwarx r4, 0, r3 cmpwi r4, 0 - beq done + beq store addi r4, r4, 1 + +store: + stwcx. r4, 0, r3 bne- loop -done: - mr r3, r4 } diff --git a/include/boost/detail/sp_counted_base_gcc_ppc.hpp b/include/boost/detail/sp_counted_base_gcc_ppc.hpp index 80ef987..29d323a 100644 --- a/include/boost/detail/sp_counted_base_gcc_ppc.hpp +++ b/include/boost/detail/sp_counted_base_gcc_ppc.hpp @@ -90,9 +90,9 @@ inline long atomic_conditional_increment( long * pw ) "cmpwi %1, 0\n\t" "beq 1f\n\t" "addi %1, %1, 1\n\t" + "1:\n\t" "stwcx. %1, 0, %2\n\t" - "bne- 0b\n\t" - "1:": + "bne- 0b": "=m"( *pw ), "=&b"( rv ): "r"( pw ):