On Tue, Sep 07, 2010, Julian Brown wrote: > Do > you still have the code fragment handy (I don't remember exactly how > it went)?
You can extract it from the wiki history with the "Info" action on the page and then diffing revisions: 1. stmdb/ldmia registers that are not used * Observations {{{ Dump of assembler code for function history_expand_line_internal: 0x00001c1c <+0>: stmdb sp!, {r4, r5, r6, r7, r8, lr} 0x00001c20 <+4>: movs r1, #0 0x00001c22 <+6>: ldr r5, [pc, #52] ; (0x1c58 <history_expand_line_internal+60>) 0x00001c24 <+8>: mov r2, r1 0x00001c26 <+10>: mov r6, r0 0x00001c28 <+12>: ldr r7, [r5, #0] 0x00001c2a <+14>: str r1, [r5, #0] 0x00001c2c <+16>: bl 0x1c2c <history_expand_line_internal+16> 0x00001c30 <+20>: str r7, [r5, #0] 0x00001c32 <+22>: cmp r0, r6 0x00001c34 <+24>: mov r4, r0 0x00001c36 <+26>: bne.n 0x1c52 <history_expand_line_internal+54> 0x00001c38 <+28>: bl 0x1c38 <history_expand_line_internal+28> 0x00001c3c <+32>: ldr r1, [pc, #28] ; (0x1c5c <history_expand_line_internal+64>) 0x00001c3e <+34>: movw r2, #1850 ; 0x73a 0x00001c42 <+38>: adds r0, #1 0x00001c44 <+40>: bl 0x1c44 <history_expand_line_internal+40> 0x00001c48 <+44>: mov r1, r4 0x00001c4a <+46>: ldmia.w sp!, {r4, r5, r6, r7, r8, lr} 0x00001c4e <+50>: b.w 0x1c4e <history_expand_line_internal+50> 0x00001c52 <+54>: ldmia.w sp!, {r4, r5, r6, r7, r8, pc} 0x00001c56 <+58>: nop 0x00001c58 <+60>: andeq r0, r0, r0 0x00001c5c <+64>: andeq r0, r0, r0 }}} Register r8 is not used in this function, so no need to save/restore r8. * Possible improvements -- Loïc Minier _______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain