------- Comment #5 from kkojima at gcc dot gnu dot org  2005-11-28 13:33 -------
Argh.  I've got the results other way around.
Before patch:

--
        .global foo
        .type   foo, @function
foo:
        mov.l   r12,@-r15
        mov.l   r14,@-r15
        mov     r15,r14
        mov.l   .L16,r12
        mova    .L16,r0
        add     r0,r12
        mov.l   1f,r0
        stc     gbr,r3
        mov.l   @(r0,r12),r0
        bra     2f
        add     r0,r3
        .align  2
1:      .long   [EMAIL PROTECTED]
2:
        mov.l   @r3,r2
        mov.l   @r2,r1
        tst     r1,r1
        bf/s    .L2
        mov     #5,r1
        mov.l   r1,@r2
.L2:
        mov.l   .L16,r12
        mova    .L16,r0
        add     r0,r12
        mov.l   @r3,r2
        mov.l   @(4,r2),r1
        tst     r1,r1
        bf/s    .L4
        mov     #4,r1
        mov.l   r1,@(4,r2)
.L4:
        mov.l   .L16,r12
        mova    .L16,r0
        add     r0,r12
        mov.l   @r3,r2
        mov.l   @(8,r2),r1
        tst     r1,r1
        bf/s    .L9
        mov     #1,r1
        mov.l   r1,@(8,r2)
.L9:
        mov     r14,r15
        mov.l   @r15+,r14
        mov.l   @r15+,r12
        rts     
        nop
.L17:
        .align 2
.L16:
        .long   _GLOBAL_OFFSET_TABLE_
        .size   foo, .-foo
        .ident  "GCC: (GNU) 4.2.0 20051120 (experimental)"
--

and after the patch:

--
        .type   foo, @function
foo:
        mov.l   r12,@-r15
        mov.l   r14,@-r15
        mov     r15,r14
        mov.l   .L18,r12
        mova    .L18,r0
        add     r0,r12
        mov.l   1f,r0
        stc     gbr,r3
        mov.l   @(r0,r12),r0
        bra     2f
        add     r0,r3
        .align  2
1:      .long   [EMAIL PROTECTED]
2:
        mov.l   @r3,r2
        mov.l   @r2,r1
        tst     r1,r1
        bf/s    .L2
        mov     #5,r1
        mov.l   r1,@r2
.L2:
        mov.l   .L18,r12
        mova    .L18,r0
        add     r0,r12
        mov.l   1f,r0
        stc     gbr,r7
        mov.l   @(r0,r12),r0
        bra     2f
        add     r0,r7
        .align  2
1:      .long   [EMAIL PROTECTED]
2:
        mov.l   .L18,r12
        mova    .L18,r0
        add     r0,r12
        mov.l   @r3,r2
        mov.l   @(4,r2),r1
        tst     r1,r1
        bf/s    .L4
        mov     #4,r1
        mov.l   r1,@(4,r2)
.L4:
        mov.l   .L18,r12
        mova    .L18,r0
        add     r0,r12
        mov.l   @r7,r2
        mov.l   @(8,r2),r1
        tst     r1,r1
        bf/s    .L9
        mov     #1,r1
        mov.l   r1,@(8,r2)
.L9:
        mov     r14,r15
        mov.l   @r15+,r14
        mov.l   @r15+,r12
        rts     
        nop
.L19:
        .align 2
.L18:
        .long   _GLOBAL_OFFSET_TABLE_
        .size   foo, .-foo
        .ident  "GCC: (GNU) 4.2.0 20051127 (experimental)"


-- 


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

Reply via email to