Butterworth, John W.
2009-Nov-24 20:33 UTC
[LLVMdev] X86InstrInfo::GetInstSizeInBytes() calculating incorrect size
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>
Possibly Parallel Threads
- [LLVMdev] incorrect x86 instruction size calculation
- [LLVMdev] How to differ from read and write operations for general stack objects
- [LLVMdev] Mapping bytecode to X86
- [LLVMdev] Questions on using Metadata in JIT mode
- [LLVMdev] Problem with MachineFunctionPass and JMP