This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: Use 2-byte VEX prefix if possible


On Mon, Dec 22, 2008 at 7:47 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>
>> Btw., in an entirely different context I noticed that this operand swapping
>> may be desirable elsewhere: vmovq and vmovss (perhaps other?) in some
>> case currently use the longer encoding starting with opcode 0xc4 on
>> x86-64 when, by using the alternative base opcode, the short 0xc5-based
>> encoding could be used - just look at the disassembly of this fragment:
>>
>> .intel_syntax noprefix
>> .text
>> .code64
>> Start64:
>>        vmovq   xmm15, xmm0
>>        vmovq   xmm0, xmm15
>>        .byte   0xc5, 0x79, 0xd6, 0xf8          # vmovq xmm0, xmm15
>>
>>        vmovss  xmm15, xmm0, xmm0
>>        vmovss  xmm0, xmm15, xmm0
>>        vmovss  xmm0, xmm0, xmm15
>>        .byte   0xc5, 0x7a, 0x11, 0xf8          # vmovss xmm0, xmm0, xmm15
>>
>> As the assembler generally uses the shortest possible encoding, it should
>> do so in these cases too, I would think.
>>
>

Here is the patch. I will check it in after some testing.



-- 
H.J.

Attachment: binutils-swap-1.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]