[fpc-devel] (patch) optimized 32 to 64 bits multiplication for i386

Jonas Maebe jonas.maebe at elis.ugent.be
Thu Nov 6 22:06:52 CET 2008


On 04 Nov 2008, at 22:12, Sergei Gorelkin wrote:

> Jonas Maebe wrote:
>
>> Could you rewrite it so it does not do that? I have already fixed  
>> several times in the past code generator bugs which were fixed for  
>> one architecture but not for another (or not in the generic code)  
>> exactly due to this sort of duplication.
> Done, attached is a modified patch witout duplication.

Thanks, comment with one small change: you cannot first release both  
EDX and EAX, then allocate 2 new registers and move EDX and EAX into  
them. The reason is that in this case the first allocated register may  
be mapped to EAX by the register allocator, so you can get this in the  
end:

movl %edx, %eax
movl %eax, %ecx

or even

movl %edx, %eax
movl %eax, %edx


Jonas



More information about the fpc-devel mailing list