[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] boot windows server 2003:emulate stf.spill instruction
# HG changeset patch # User awilliam@xxxxxxxxxxx # Node ID be11edf8964e89a39d4fa98890a936503a034d5c # Parent f67d23e37921341a44679ec3e46666cb9d612949 [IA64] boot windows server 2003:emulate stf.spill instruction Windows use stf.spill [r3]=f2 to access mmio address space Signed-off-by: Anthony Xu <anthony.xu@xxxxxxxxx> --- xen/arch/ia64/vmx/mmio.c | 15 +++++++++++++++ 1 files changed, 15 insertions(+) diff -r f67d23e37921 -r be11edf8964e xen/arch/ia64/vmx/mmio.c --- a/xen/arch/ia64/vmx/mmio.c Mon Jul 31 10:09:15 2006 -0600 +++ b/xen/arch/ia64/vmx/mmio.c Mon Jul 31 10:14:31 2006 -0600 @@ -494,6 +494,21 @@ void emulate_io_inst(VCPU *vcpu, u64 pad vcpu_set_gr(vcpu,inst.M3.r3,temp,0); } + } + // Floating-point spill + else if (inst.M9.major == 6 && inst.M9.x6 == 0x3B && + inst.M9.m == 0 && inst.M9.x == 0) { + struct ia64_fpreg v; + + inst_type = SL_FLOATING; + dir = IOREQ_WRITE; + vcpu_get_fpreg(vcpu, inst.M9.f2, &v); + /* Write high word. + FIXME: this is a kludge! */ + v.u.bits[1] &= 0x3ffff; + mmio_access(vcpu, padr + 8, &v.u.bits[1], 8, ma, IOREQ_WRITE); + data = v.u.bits[0]; + size = 3; } // Floating-point spill + Imm update else if(inst.M10.major==7&&inst.M10.x6==0x3B){ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |