xen: make direct versions of irq_enable/disable/save/restore to common code
authorJeremy Fitzhardinge <jeremy@goop.org>
Mon, 2 Feb 2009 21:55:42 +0000 (13:55 -0800)
committerH. Peter Anvin <hpa@linux.intel.com>
Thu, 5 Feb 2009 00:59:04 +0000 (16:59 -0800)
commit5393744b71ce797f1b1546fafaed127fc50c2b61
treea974975e907b5e2830721c521965a53c34c10c8b
parent383414322b3b3ced0cbc146801e0cc6c60a6c5f4
xen: make direct versions of irq_enable/disable/save/restore to common code

Now that x86-64 has directly accessible percpu variables, it can also
implement the direct versions of these operations, which operate on a
vcpu_info structure directly embedded in the percpu area.

In fact, the 64-bit versions are more or less identical, and so can be
shared.  The only two differences are:
 1. xen_restore_fl_direct takes its argument in eax on 32-bit, and rdi on 64-bit.
    Unfortunately it isn't possible to directly refer to the 2nd lsb of rdi directly
    (as you can with %ah), so the code isn't quite as dense.
 2. check_events needs to variants to save different registers.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/xen/Makefile
arch/x86/xen/xen-asm.S [new file with mode: 0644]
arch/x86/xen/xen-asm.h [new file with mode: 0644]
arch/x86/xen/xen-asm_32.S
arch/x86/xen/xen-asm_64.S