[LLVMdev] X86InstrInfo::GetInstSizeInBytes() calculating incorrect size

Butterworth, John W. jbutterworth at mitre.org
Tue Nov 24 12:33:55 PST 2009


I'm noticing the X86InstrInfo::GetInstSizeInBytes() function returning
incorrect sizes for some instructions.  I looked through the llvm-dev
archives and noticed that a patch was submitted once in April 2009 for
instruction length calculation on amd-64.  I'm using Intel Core 2 Duo (64
bit) so maybe there is a similar issue?  I don't have another computer I can
test this on to see if that's it though.  If this turns out to be a bug,
rather than some misuse/misinterpretation of the function on my part I can
resubmit it via that channel.  

 

The instructions I've noticed this occurring for are: 

 

MOV32mi, LEA32r, MOV32mr, and MOV32rm 

 

The length of LEA32r is calculated correctly some of the time.  Same for
MOV32mr and MOV32rm.  The length of MOV32mi seems to always be wrong.

 

An example breakdown of emitted Machine Instructions -  the machine
instructions are those outputted when I pass the -debug option to lli.exe
(formatted by me for readability, left to right):

 

8d 9c 24 30 0a 00 00                         LEA32r
calculated length: 7         ok

8d 6c 24 28                                          LEA32r
calculated length: 7         incorrect

8b 86 24 0a 39 00                               MOV32rm           calculated
length: 6         ok

8b 44 24 10                                          MOV32rm
calculated length: 7         incorrect

89 84 24 34 14 00 00                         MOV32mr           calculated
length: 7         ok

89 2c 24                                                MOV32mr
calculated length: 7         incorrect

c7 44 24 08 08 0a 00 00                    MOV32mi            calculated
length: 11       incorrect

c7 04 24 20 00 38 00                          MOV32mi            calculated
length: 11       incorrect  

 

If more information is needed let me know and I'll send it.  

 

Thank you in advance and best regards, 

 

John Butterworth

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20091124/fa20cf9c/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3522 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20091124/fa20cf9c/attachment.bin>


More information about the llvm-dev mailing list