Index: /branches/arm/level-0/ARM/arm-misc.lisp
===================================================================
--- /branches/arm/level-0/ARM/arm-misc.lisp	(revision 13795)
+++ /branches/arm/level-0/ARM/arm-misc.lisp	(revision 13796)
@@ -525,5 +525,4 @@
   (bx lr))
 
-#+notyet                                ; Yet ?  Not.
 (defarmlapfunction %ptr-store-fixnum-conditional ((ptr arg_x) (expected-oldval arg_y) (newval arg_z))
   (let ((address imm0)
@@ -531,16 +530,15 @@
     (macptr-ptr address ptr)
     @again
-    (lrarx actual-oldval 0 address)
-    (cmpr actual-oldval expected-oldval)
-    (bne- @done)
-    (strcx. newval 0 address)
-    (bne- @again)
-    (isync)
+    (ldrex actual-oldval (:@ address))
+    (cmp actual-oldval expected-oldval)
+    (bne @done)
+    (strex imm0 newval (:@ address))
+    (cmp imm0 (:$ 0))
+    (bne @again)
     (mov arg_z actual-oldval)
     (bx lr)
     @done
-    (li address arm::reservation-discharge)
+    (clrex)
     (mov arg_z actual-oldval)
-    (strcx. rzero 0 address)
     (bx lr)))
 
