One instruction more in GCC-4.1.x vs GCC-3.4.6?

Joe Buck's code: 10 instructions   [ -Os of gcc-4.1.3-20070326 ]
__compute_size:
        pushl   %ebp
        movl    %esp, %ebp

        movl    8(%ebp), %eax
        movl    %eax, %edx
        imull   12(%ebp), %edx
        cmpl    %eax, %edx
        orl     $-1, %edx
        popl    %ebp
        movl    %edx, %eax   # <--- this extra instruction because return EAX = 
EDX?

        ret


Joe Buck's code: 9 instructions   [ -Os of gcc-3.4.6 ]
__compute_size:
        pushl   %ebp
        movl    %esp, %ebp

        movl    8(%ebp), %edx
        movl    %edx, %eax
        imull   12(%ebp), %eax
        cmpl    %edx, %eax
        orl     $-1, %eax
        popl    %ebp
        # <--- no extra instruction because return EAX = EAX?

        ret


J.C. Pizarro

Reply via email to