------- Comment #9 from jingyu at google dot com 2010-02-10 12:18 ------- I still get the 10-instruction code with trunk GCC I checked out today.
$arm-eabi-gcc -mthumb -mthumb-interwork -fpic -Os code.c -S test: push {lr} sub sp, sp, #20 ldr r2, [r0] add r3, sp, #4 ldr r1, [r0, #4] str r2, [r3, #4] mov r0, r3 bl func add sp, sp, #20 @ sp needed for prologue pop {r0} bx r0 .size test, .-test .ident "GCC: (GNU) 4.5.0 20100210 (experimental)" The toolchain was built with newlib-1.17.0, mpc-0.8.1, mpfr-2.4.1, gmp-4.2.4, binutils-2.19. Target: arm-eabi Configured with: /usr/local/home/projects/newlib_armtoolchain/gcc-trunk-read/configure --prefix=/usr/local/home/projects/toolchain_build/newlib_build_trunk/install --target=arm-eabi --build=x86_64-linux-gnu --host=x86_64-linux-gnu --with-gmp=/usr/local/home/projects/toolchain_build/newlib_build_trunk/install --with-mpfr=/usr/local/home/projects/toolchain_build/newlib_build_trunk/install --with-mpc=/usr/local/home/projects/toolchain_build/newlib_build_trunk/install --enable-multilib --with-newlib --with-gnu-as --with-gnu-ld --enable-languages=c,c++ Thread model: single gcc version 4.5.0 20100210 (experimental) (GCC) Steven, could you please share how you build the toolchain which generates the 9-instruction code? Thanks! -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39871