https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89093
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
It is indeed saved in the prologue:
@ args = 0, pretend = 0, frame = 64
@ frame_needed = 0, uses_anonymous_args = 0
and ip, r0, #3
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
cmp ip, #1
vpush.64 {d8}
.vsave {d8}
mov r3, #0
.pad #76
sub sp, sp, #76
but it is restored in the epilogue:
.L61:
add sp, sp, #76
@ sp needed
vldm sp!, {d8}
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
and there are no other returns that I can see. So, why isn't it restored
there?
Has the stack pointer been clobbered, or the stack slot in there?
eh_personality.cc has been compiled with
-mtune=cortex-a9 -mfloat-abi=hard -mfpu=vfpv3-d16 -mtls-dialect=gnu -marm
-march=armv7-a+fp -O2 -fPIC