aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux
diff options
context:
space:
mode:
authorSzabolcs Nagy <szabolcs.nagy@arm.com>2016-07-11 09:46:08 +0100
committerSzabolcs Nagy <szabolcs.nagy@arm.com>2016-07-11 09:50:41 +0100
commitefbe665c3a2d344b0d64456cf29499ba53c2965a (patch)
tree2b4f2072c5b1c0ad5c30af13cd8c927a574ddd9b /sysdeps/unix/sysv/linux
parent468700675f7f36d55758c36b1ed902250470e8ec (diff)
downloadglibc-efbe665c3a2d344b0d64456cf29499ba53c2965a.tar
glibc-efbe665c3a2d344b0d64456cf29499ba53c2965a.tar.gz
glibc-efbe665c3a2d344b0d64456cf29499ba53c2965a.tar.bz2
glibc-efbe665c3a2d344b0d64456cf29499ba53c2965a.zip
[AArch64] Fix libc internal asm profiling code
When glibc is built with --enable-profile, the ENTRY of asm functions includes CALL_MCOUNT for profiling. (matters for binaries static linked against libc_p.a.) CALL_MCOUNT did not save/restore argument registers around the _mcount call so it clobbered them. (it is enough to only save/restore the arguments passed to a given asm function, but that would be too many asm changes so it is simpler to always save all argument registers in this macro.) float args are not saved: mcount does not clobber the float regs and currently no asm function takes float arguments anyway. [BZ #18707] * sysdeps/aarch64/Makefile (CFLAGS-mcount.c): Add -mgeneral-regs-only. * sysdeps/aarch64/sysdep.h (CALL_MCOUNT): Save argument registers.
Diffstat (limited to 'sysdeps/unix/sysv/linux')
0 files changed, 0 insertions, 0 deletions