[Mono-bugs] [Bug 80892][Maj] Changed - Monitor.Pulse not working properly on s390x

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Tue Feb 27 14:21:31 EST 2007

Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by lupus at ximian.com.


--- shadow/80892	2007-02-27 12:54:22.000000000 -0500
+++ shadow/80892.tmp.31502	2007-02-27 14:21:31.000000000 -0500
@@ -144,6 +144,13 @@
 hardcoded registers (1 in compareexchange, 1 and 2 in the others):
 there is no guarantee that gcc will not use the same registers for the
 other arguments. Apart from that, I don't see how the code returns the
 old value at the memory location, instead it looks like it returns the
 old value we were expecting, which works just fine if the swap
 succeds, but is the wrong one if it fails.
+------- Additional Comments From lupus at ximian.com  2007-02-27 14:21 -------
+Uhm, the asm code may not be wrong if the cs instruction itself stores
+the old value in the first register (I have no good s390 asm docs), 
+the code looks more complex than needed, since a single cs instruction
+would work, instead of using an LA/LR pair before it.

More information about the mono-bugs mailing list