This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] X86: Disassemble primary opcode map's group 2 ModRM.reg == 6 aliases correctly
>>> On 30.05.17 at 16:53, <hjl.tools@gmail.com> wrote:
> On Tue, May 30, 2017 at 7:52 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Tue, May 30, 2017 at 7:48 AM, Jan Beulich <JBeulich@suse.com> wrote:
>>>>>> On 30.05.17 at 16:43, <hjl.tools@gmail.com> wrote:
>>>> On Tue, May 30, 2017 at 7:41 AM, Jan Beulich <JBeulich@suse.com> wrote:
>>>>>>>> On 30.05.17 at 16:35, <hjl.tools@gmail.com> wrote:
>>>>>> On Tue, May 30, 2017 at 1:37 AM, Borislav Petkov <bp@suse.de> wrote:
>>>>>>> On Tue, May 30, 2017 at 02:34:28AM -0600, Jan Beulich wrote:
>>>>>>>> which I think should read
>>>>>>>>
>>>>>>>> "The CF flag contains the value of the last bit shifted out of the
>>>>>>>> destination operand; for instructions other than SAR it is undefined
>>>>>>>> when the count is greater than or equal to the size (in bits) of
>>>>>>>> the destination operand."
>>>>>>>
>>>>>>> Makes sense.
>>>>>>
>>>>>> I look another look. Disassembler always display "shl". Please
>>>>>> don't use "sal" now.
>>>>>
>>>>> Which disassembler are you talking about, as you can't mean
>>>>> objdump or anything else that's libopcode-based?
>>>>
>>>> [hjl@gnu-6 tmp]$ cat x.s
>>>> shl %cl, %eax
>>>> sal %cl, %eax
>>>> shl $1, %eax
>>>> sal $1, %eax
>>>> [hjl@gnu-6 tmp]$ gcc -c x.s
>>>> [hjl@gnu-6 tmp]$ objdump -dw x.o
>>>>
>>>> x.o: file format elf64-x86-64
>>>>
>>>>
>>>> Disassembly of section .text:
>>>>
>>>> 0000000000000000 <.text>:
>>>> 0: d3 e0 shl %cl,%eax
>>>> 2: d3 e0 shl %cl,%eax
>>>> 4: d1 e0 shl %eax
>>>> 6: d1 e0 shl %eax
>>>> [hjl@gnu-6 tmp]$ objdump -dw -Mintel x.o
>>>>
>>>> x.o: file format elf64-x86-64
>>>>
>>>>
>>>> Disassembly of section .text:
>>>>
>>>> 0000000000000000 <.text>:
>>>> 0: d3 e0 shl eax,cl
>>>> 2: d3 e0 shl eax,cl
>>>> 4: d1 e0 shl eax,1
>>>> 6: d1 e0 shl eax,1
>>>> [hjl@gnu-6 tmp]$
>>>
>>> Right, but here all instructions use the /4 encoding. We're talking
>>> about how to display the /6 encoding, though, and I think it would
>>> be helpful to the user if she could distinguish one from the other
>>> without having to look at the opcode bytes.
>>
>> This is adjust an opcode alias. These aren't the only instructions with
>> identical opcodes.
>>
>
> II meant "the same instruction with different opcodes".
But here we have the obvious opportunity to make the difference
visible. In other cases we simply have no suitable second mnemonic.
Jan