[LLVMdev] registerSize on X86 confused?
Craig Topper
craig.topper at gmail.com
Tue Apr 1 17:22:45 PDT 2014
I looked at this briefly, I think it causes some mistakes that get reversed
later in fixupReg. The disassembler design is a bit of a mess with regards
to prefixes and operand size.
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/20140401/cbe8d415/attachment.html>
More information about the llvm-dev
mailing list