OK, got it. It's a misassembly. It assembles imull $INVERSE_3, %eax, %edx as imull $INVERSE_3, %eax, %eax.
Removing the assembly instruction and including bytes corresponding to the correct instruction fixes the problem and the test passes. How bizarre. I better report the bug to the tcc people. Bill. 2009/12/5 Bill Hart <[email protected]>: > Actually it is odd. The MinGW version disassembles using the Windows > objdump, but the tcc object file doesn't. I think this is because it > doesn't recognize the code as actual code. It recognizes it as text > strings, meaning it is probably in the wrong .section. > > There are significant differences in the object files. Actually gcc > produces better code, for example automatically taking advantage of > sign extension features of the processor, and tcc uses a long jump in > one place and a short jump in the other, where gcc uses a short jump > in both places. > > Some of the opcodes used for some of the assembly instructions are > also different, though this may not actually be an issue. > > One significant problem is an entire assembly instruction is just > omitted. That is the instruction to set esi to 0. I'm betting that is > the real issue, as it would yield uninitialised data problems. > > Bill. > > 2009/12/5 Cactus <[email protected]>: >> >> >> On Dec 5, 5:34 pm, Bill Hart <[email protected]> wrote: >>> Actually, scrub that. It uses ELF-32. >>> >>> I'm trying objdump, though the Windows version doesn't seem to disassemble. >>> :-( >> >> Which is why I prefer Agner's objconv.exe. It can convert between >> formats as well so you could take MIngw and Microsoft object files and >> convert them to ELF-32. >> >> Brian >> >> -- >> >> You received this message because you are subscribed to the Google Groups >> "mpir-devel" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/mpir-devel?hl=en. >> >> >> > -- You received this message because you are subscribed to the Google Groups "mpir-devel" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/mpir-devel?hl=en.
