On Mon, 19 Mar 2007, Jeremy Fitzhardinge wrote:
> Zachary Amsden wrote:
> > For VMI, the default clobber was "cc", and you need a way to allow at
> > least that, because saving and restoring flags is too expensive on x86.
> According to lore (Andi, I think), asm() always clobbers cc.
On x86, yes. Practically any instruction will clobber cc anyway, so it's
Although the gcc guys have occasionally been suggesting we should set it
in our asms.
> Actually, it still does need a temp register. The sequence for cli is:
> mov %fs:xen_vcpu, %eax
> movb $1,1(%eax)
We should just do this natively. There's been several tests over the years
saying that it's much more efficient to do sti/cli as a simple store, and
handling the "oops, we got an interrupt while interrupts were disabled" as
a special case.
I have this dim memory that ARM has done it that way for a long time
because it's so expensive to do a "real" cli/sti.
And I think -rt does it for other reasons. It's just more flexible.
Xen-devel mailing list