On 20/03/15 14:53, 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>
After further consideration, would it not be better to change the
non-atomic variants to being straight C.
e.g.
static inline void __set_bit(int nr, void *_addr)
{
int *addr = _addr;
addr[nr / sizeof(int)] |= (1U << (nr % sizeof(int)));
}
This would drop the memory clobber from the asm statement and allow the
compiler to optimise repeated __set_bit() calls to the same word into a
single action.
~Andrew
(On a separate note, I feel that all of these operations should be
acting on unsigned rather than signed ints, but that applies to all of
these operations, not just the non-atomic ones)
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel