From: kaf24@localhost.localdomain Date: Sat, 11 Nov 2006 01:16:40 +0000 (+0000) Subject: [VMXASSIST] Support all data segments in mov_to_seg(). X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15551^2~21 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=b991dfcee512632c22d45a41b58b14c4ddc0630b;p=xen.git [VMXASSIST] Support all data segments in mov_to_seg(). This patch lets Plan9 crash at the same location before the original patch by Stephen Tweedie. Signed-off-by: Steven Rostedt --- diff --git a/tools/firmware/vmxassist/vm86.c b/tools/firmware/vmxassist/vm86.c index 3fd615097e..0cd0e23090 100644 --- a/tools/firmware/vmxassist/vm86.c +++ b/tools/firmware/vmxassist/vm86.c @@ -829,15 +829,33 @@ mov_to_seg(struct regs *regs, unsigned prefix, unsigned opc) goto fail; switch ((modrm & 0x38) >> 3) { + case 0: /* es */ + regs->ves = getreg16(regs, modrm); + saved_rm_regs.ves = 0; + oldctx.es_sel = regs->ves; + return 1; + + /* case 1: cs */ + + case 2: /* ss */ + regs->uss = getreg16(regs, modrm); + saved_rm_regs.uss = 0; + oldctx.ss_sel = regs->uss; + return 1; case 3: /* ds */ regs->vds = getreg16(regs, modrm); saved_rm_regs.vds = 0; oldctx.ds_sel = regs->vds; return 1; - case 0: /* es */ - regs->ves = getreg16(regs, modrm); - saved_rm_regs.ves = 0; - oldctx.es_sel = regs->ves; + case 4: /* fs */ + regs->vfs = getreg16(regs, modrm); + saved_rm_regs.vfs = 0; + oldctx.fs_sel = regs->vfs; + return 1; + case 5: /* gs */ + regs->vgs = getreg16(regs, modrm); + saved_rm_regs.vgs = 0; + oldctx.gs_sel = regs->vgs; return 1; }