<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Value could change in the meantime.<BR>
I'll implement fetch_and_op with cmpxchg loops soon.<BR>
 <BR>
 - Jay<BR><BR> <BR>> From: hosking@cs.purdue.edu<BR>> Date: Fri, 12 Feb 2010 10:26:04 -0500<BR>> To: jkrell@elego.de<BR>> CC: m3commit@elegosoft.com<BR>> Subject: Re: [M3commit] CVS Update: cm3<BR>> <BR>> It's fine if the result is stored in memory. We can pick it up from there, right? Rereading memory distinct from the atomic variable is fine.<BR>> <BR>> On 12 Feb 2010, at 14:36, Jay Krell wrote:<BR>> <BR>> > CVSROOT: /usr/cvs<BR>> > Changes by: jkrell@birch. 10/02/12 14:36:19<BR>> > <BR>> > Modified files:<BR>> > cm3/m3-sys/m3back/src/: M3x86.m3 <BR>> > <BR>> > Log message:<BR>> > nevermind, this is all wrong except for store, load, fence, exchange,<BR>> > and compare_exchange<BR>> > The atomic interface really does *not* expose a bunch of<BR>> > functionality on x86. x86 generally stores the result in memory.<BR>> > We cannot then return the result because we'd have to reread memory.<BR>> > Therefore all these functions will require cmpxchg loops.<BR>> > Probably just write wrapper functions for the C compiler intrinsics..<BR>> <BR>                                        </body>
</html>