[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 08/25] x86emul: add tables for XOP 08 and 09 extension spaces
>>> On 02.02.18 at 12:43, <andrew.cooper3@xxxxxxxxxx> wrote: > On 07/12/17 14:04, Jan Beulich wrote: >> --- a/xen/arch/x86/x86_emulate/x86_emulate.c >> +++ b/xen/arch/x86/x86_emulate/x86_emulate.c >> @@ -458,6 +458,20 @@ static const opcode_desc_t xop_table[] = >> DstReg|SrcImm|ModRM, >> }; >> >> +static const struct { >> + uint8_t simd_size:5; >> + uint8_t two_op:1; >> + uint8_t four_op:1; >> +} ext8f08_table[256] = { >> +}; >> + >> +static const struct { >> + uint8_t simd_size:5; >> + uint8_t two_op:1; >> +} ext8f09_table[256] = { >> + [0x01 ... 0x02] = { .two_op = 1 }, >> +}; >> + > > What about 8f0a ? We've got emulation for bextr already, and might want > to consider #GRP4 seeing as we expose LWP to guests. I'd prefer to convert that to a table at the time we need it. >> @@ -2726,7 +2740,7 @@ x86_decode( >> } >> break; >> >> - case vex_0f38: >> + case ext_0f38: >> d = ext0f38_table[b].to_mem ? DstMem | SrcReg >> : DstReg | SrcMem; >> if ( ext0f38_table[b].two_op ) >> @@ -2736,7 +2750,14 @@ x86_decode( >> state->simd_size = ext0f38_table[b].simd_size; >> break; >> >> - case vex_0f3a: >> + case ext_8f09: >> + if ( ext8f09_table[b].two_op ) >> + d |= TwoOp; >> + state->simd_size = ext8f09_table[b].simd_size; >> + break; >> + >> + case ext_0f3a: >> + case ext_8f08: >> /* >> * Cannot update d here yet, as the immediate operand still >> * needs fetching. >> @@ -2928,6 +2949,15 @@ x86_decode( >> break; >> >> case ext_8f08: >> + d = DstReg | SrcMem; >> + if ( ext8f08_table[b].two_op ) >> + d |= TwoOp; >> + else if ( ext8f08_table[b].four_op && !mode_64bit() ) >> + imm1 &= 0x7f; >> + state->desc = d; >> + state->simd_size = ext8f08_table[b].simd_size; >> + break; > > I presume that these don't actually impact our currently implemented XOP > instructions? No - as the description says, the patch converts the existing ones, it doesn't break them (and the test harness continuing to work confirms this). Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |