[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RISU PATCH v3 17/18] x86.risu: add AVX instructions
From: |
Jan Bobek |
Subject: |
Re: [Qemu-devel] [RISU PATCH v3 17/18] x86.risu: add AVX instructions |
Date: |
Mon, 22 Jul 2019 10:23:07 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 |
On 7/20/19 8:04 PM, Richard Henderson wrote:
> On 7/11/19 3:32 PM, Jan Bobek wrote:
>> +# VEX.LIG.F3.0F.WIG 10 /r: VMOVSS xmm1, xmm2, xmm3
>> +# VEX.LIG.F3.0F.WIG 10 /r: VMOVSS xmm1, m32
>> +# VEX.LIG.F3.0F.WIG 11 /r: VMOVSS xmm1, xmm2, xmm3
>> +# VEX.LIG.F3.0F.WIG 11 /r: VMOVSS m32, xmm1
>> +VMOVSS AVX 0001000 d \
>> + !constraints { vex($_, m => 0x0F, l => 0, p => 0xF3); modrm($_);
>> $_->{vex}{v} = 0 unless defined $_->{modrm}{reg2}; 1 } \
>> + !memory { $d ? store(size => 4) : load(size => 4); }
>
> Why the l => 0? LIG does mean VEX.L ignored, so why not let it get randomized
> as you do for WIG?
>
> Not wrong as is... this is the documented value for scalar operands. But
> there
> is a different document markup, LZ, for required (E)VEX.L == 0.
I am aware of LIG vs. LZ. Quoting from the MOVSS manual page:
Software should ensure VMOVSS is encoded with VEX.L=0. Encoding
VMOVSS with VEX.L=1 may encounter unpredictable behavior across
different processor generations.
"Unpredictable behavior" sounded a bit menacing to me, so I opted for
the conservative route. AFAICT all the scalar instructions have this
warning attached; I don't know why they differentiate between LIG and
LZ then, though. Do you think it's irrelevant?
-Jan
signature.asc
Description: OpenPGP digital signature
- [Qemu-devel] [RISU PATCH v3 03/18] risugen_x86_asm: add module, (continued)
- [Qemu-devel] [RISU PATCH v3 03/18] risugen_x86_asm: add module, Jan Bobek, 2019/07/11
- [Qemu-devel] [RISU PATCH v3 14/18] x86.risu: add SSSE3 instructions, Jan Bobek, 2019/07/11
- [Qemu-devel] [RISU PATCH v3 12/18] x86.risu: add SSE2 instructions, Jan Bobek, 2019/07/11
- [Qemu-devel] [RISU PATCH v3 17/18] x86.risu: add AVX instructions, Jan Bobek, 2019/07/11
- [Qemu-devel] [RISU PATCH v3 18/18] x86.risu: add AVX2 instructions, Jan Bobek, 2019/07/11
- Re: [Qemu-devel] [RISU PATCH v3 00/18] Support for generating x86 SIMD test images, Alex Bennée, 2019/07/12