https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86771
--- Comment #12 from nsz at gcc dot gnu.org ---
the wrong string seems to be caused by a missing ldm
good main:
...
mov r4, #0
str r4, [sp, #32]
mov r2, #2
str r2, [sp, #36]
add r2, sp, #40
str r2, [sp, #4]
str r4, [sp, #8]
ldm ip, {r0, r1} /// load r0 (content is 'hell')
str r0, [sp, #40] /// store the right r0
strh r1, [sp, #44] @ movhi
ldr r2, [sp, #66] @ unaligned
str r2, [sp, #46] @ unaligned
ldrh r2, [sp, #70] @ unaligned
strh r2, [sp, #50] @ unaligned
add r2, sp, #72
ldm r2, {r0, r1}
str r0, [sp, #52]
strh r1, [sp, #56] @ movhi
mov r1, r3
add r0, sp, #4
bl option_stopwatch_a.5061
bad main:
...
mov r4, #0
str r4, [sp, #32]
mov r2, #2
str r2, [sp, #36]
add r2, sp, #40
str r2, [sp, #4]
str r4, [sp, #8]
ldr r1, [sp, #64]
str r0, [sp, #40] /// store a bad r0 (content is 'godd')
strh r1, [sp, #44] @ movhi
ldr r2, [sp, #66] @ unaligned
str r2, [sp, #46] @ unaligned
ldrh r2, [sp, #70] @ unaligned
strh r2, [sp, #50] @ unaligned
ldr r1, [sp, #76]
str r0, [sp, #52]
strh r1, [sp, #56] @ movhi
mov r1, r3
add r0, sp, #4
bl option_stopwatch_a.5061