[LLVMdev] registerSize on X86 confused?

Jun Koi junkoi2004 at gmail.com
Tue Apr 1 19:38:00 PDT 2014


On Wed, Apr 2, 2014 at 8:22 AM, Craig Topper <craig.topper at gmail.com> wrote:

> I looked at this briefly, I think it causes some mistakes that get
> reversed later in fixupReg.
>

so this is indeed a bug, right?



> The disassembler design is a bit of a mess with regards to prefixes and
> operand size.
>

do you mean the bug related to "0x66 0xf2" sequence? any hope to get it
fixed?


thanks,
Jun









>
> On Tue, Apr 1, 2014 at 4:43 PM, Jun Koi <junkoi2004 at gmail.com> wrote:
>
>>
>>
>>
>> On Mon, Mar 31, 2014 at 11:48 PM, Jun Koi <junkoi2004 at gmail.com> wrote:
>>
>>> Hi,
>>>
>>> In file X86DisassemblerDecoder.c, we have function readPrefixes() with
>>> below code:
>>>
>>> .....
>>>   } else if (insn->mode == MODE_32BIT) {
>>>     insn->registerSize       = (hasOpSize ? 2 : 4);
>>>     insn->addressSize        = (hasAdSize ? 2 : 4);
>>>     insn->displacementSize   = (hasAdSize ? 2 : 4);
>>>     insn->immediateSize      = (hasOpSize ? 2 : 4);
>>>   }
>>> ....
>>>
>>> This is confused to me: so we have registerSize to be either 2 or 4
>>> bytes.
>>> But we might have instruction like:
>>>
>>>      adc    al, 0x89
>>>
>>> This case we should have registerSize = 1 for AL. So is this a bug, or I
>>> am misunderstanding the meaning of this "registerSize" ??
>>>
>>>
>> any help please?
>>
>> thanks.
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>
>
> --
> ~Craig
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140402/a8a76760/attachment.html>


More information about the llvm-dev mailing list