------- Comment #7 from steven at gcc dot gnu dot org  2010-02-08 16:11 -------
New test case is with func defined extern, as already mentioned in comment #5:

extern void func(char c, int t);

void foo(int u)
{
  func ( 8, (u >> 24) & 0xffL );
  func ( 8, (u >> 16) & 0xffL );
  func ( 8, (u >> 8) & 0xffL );
}

Trunk today (r156595) produces this:

        stmfd   sp!, {r4, lr}
        mov     r4, r0
        mov     r1, r4, lsr #24
        mov     r0, #8
        bl      func
        mov     r1, r4, lsr #16
        mov     r0, #8
        and     r1, r1, #255
        bl      func
        mov     r1, r4, lsr #8
        mov     r0, #8
        and     r1, r1, #255
        ldmfd   sp!, {r4, lr}
        b       func

Can someone please explain what the expected code is?


-- 


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

Reply via email to