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



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



           What    |Removed                     |Added

----------------------------------------------------------------------------

             Target|sh*-*-*                     |sh*-*-* arm*

             Status|UNCONFIRMED                 |NEW

   Last reconfirmed|                            |2012-10-29

     Ever Confirmed|0                           |1



--- Comment #3 from Oleg Endo <olegendo at gcc dot gnu.org> 2012-10-29 20:38:08 
UTC ---

I've checked this issue again on rev 192482.  It seems to be target

independent, as it also happens on ARM.

The following:



static inline int readint (int* x)

{

  return *x;

}



int test (int* x)

{

  return readint (x);

}



compiles to (-O2):



test:

        ldrb    r3, [r0]

    ldrb    r1, [r0, #1]

    ldrb    r2, [r0, #2]

    orr    r3, r3, r1, asl #8

    ldrb    r0, [r0, #3]

    orr    r3, r3, r2, asl #16

    orr    r0, r3, r0, asl #24

    bx    lr

Reply via email to