------- Comment #18 from rask at gcc dot gnu dot org  2007-12-19 14:15 -------
Created an attachment (id=14795)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14795&action=view)
(u)mulsidi3 patch

This patch (in testing) improves the register allocation, removing the last
redundant movl instructions:

mul:
        pushl   %ebx                    # 40    *pushsi2        [length = 1]
        movl    8(%esp), %ebx           # 28    *movsi_1/1      [length = 4]
        movl    16(%esp), %eax          # 30    *movsi_1/1      [length = 4]
        movl    20(%esp), %ecx          # 37    *movsi_1/1      [length = 4]
        movl    12(%esp), %edx          # 38    *movsi_1/1      [length = 4]
        imull   %ebx, %ecx              # 7     *mulsi3_1/3     [length = 3]
        imull   %eax, %edx              # 8     *mulsi3_1/3     [length = 3]
        addl    %edx, %ecx              # 9     *addsi_1/1      [length = 2]
        mull    %ebx                    # 33    *umulsidi3      [length = 2]
        popl    %ebx                    # 43    popsi1          [length = 1]
        leal    (%ecx,%edx), %edx       # 39    *lea_1          [length = 3]
        ret                             # 44    return_internal [length = 1]


-- 

rask at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |rask at gcc dot gnu dot org
                   |dot org                     |
             Status|RESOLVED                    |ASSIGNED
         Resolution|DUPLICATE                   |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=6585

Reply via email to