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

Oleg Endo <olegendo at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kkojima at gcc dot gnu.org

--- Comment #5 from Oleg Endo <olegendo at gcc dot gnu.org> ---
On 4.9 r208592 and my newlib cross setup, I've tried compiling the
pre-processed source from attachment 32020 with '-std=gnu99 -O2 -m3 -ml -fpic'
and I get

        dt      r1
        bt.s    .L44
        mov     r7,r2

.L45:
        mov     r2,r3
        add     r13,r3   // r3 = op + sz
        mov.l   r3,@r2   // op->ov_next = ...
        dt      r1     // r1 = nblks - 1
        bf.s    .L45
        mov     r3,r2    // op = op + sz

        mov     r7,r2
.L44:
        tst     r2,r2
        bf      .L39

so the code is basically the same, just the mem store is placed before the
branch instead of the delay slot.  As far as I can see, that's what is written
in the C code.  Am I missing something?

Reply via email to