It will use mov pc, lr. There are at least three places that need fixing: - Function returns - Indirect calls - Assembly code in libgcc. glibc would also need auditing for problematic assembly code.
Is there any reason not to make ldm the default for armv4 and above, since it seems to win most, among the various options? For info: I am documenting the wisdom in this thread on the wiki.debian.org/ArmEabiPort page at heading "Cpu choice" M