Il 29/01/2014 19:09, Laszlo Ersek ha scritto:
Yes, but as far I can see, the commit (which is not in RHEL-6) changes
*how* the operand of ljmp is decoded.
From "opcode_table" in RHEL-6's "arch/x86/kvm/emulate.c":
/* 0xE8 - 0xEF */
SrcImm | Stack, SrcImm | ImplicitOps,
SrcImmU | Src2Imm16 | No64, SrcImmByte | ImplicitOps,
^^^^^^^^^^^^^^^^^^^^^^^^^^
and the patch changes that to
SrcImmFAddr | No64
and adds new logic to fetch this source operand type.
... Which then seems to have an effect on what goes into
load_segment_descriptor() as segment selector, in the emulation of 0xea.
Of course I'm insufficiently equipped to debate this with you in earnest
:), but it seemed relevant to me.
Yeah, it seems relevant to me too.
But before it was decoding two immediates, one after another, the first
c->op_bytes long in c->src, and the second 2 bytes long in c->src2. Now
it's doing the same, but putting all c->op_bytes+2 bytes in c->src...
Though I guess the backport should be relatively easy if you want to try.
Paolo