>>> On 19.01.15 at 18:21, <andrew.coop...@citrix.com> wrote: > On 19/01/15 15:52, Jan Beulich wrote: >> - being non-atomic, their pointer arguments shouldn't be volatile- >> qualified >> - their (half fake) memory operands can be a single "+m" instead of >> being both an output and an input >> >> Signed-off-by: Jan Beulich <jbeul...@suse.com> > > There is a note at the top of the file describing why "+m" is > specifically not used. I have not looked into the reason yet, but a > patch like this at leasts needs an adjustment to the comment if you > believe it to be safe.
You mean this: "We don't use "+m" because the gcc manual says that it should be used only when the constraint allows the operand to reside in a register"? It looks wrong anyway, and in the current gcc doc I verified that the respective statement (which indeed was there in older versions) got deleted. I'm convinced that it was there because on architectures where read-modify-write operations on memory operands don't exist, this indeed is necessary. But we're talking about x86-specific code here. Linux changed this in 2006 (commit 92934bcbf9), but later added a workaround for problems with gcc below 4.1 (which we don't care about). Interestingly it was also in 2006 that Keir changed our copy (12280:e10a13f13207). Bottom line - I'll simply remove the comment as being wrong. Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel