------- 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