[PATCH] D36675: [ARM][Compiler-rt] Fix AEABI builtins to correctly pass arguments to non-AEABI functions on HF targets
Peter Smith via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 14 09:48:03 PDT 2017
peter.smith added a comment.
By my reading of the AAPCS http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042f/IHI0042F_aapcs.pdf (5.1.2.1 VFP register usage conventions (VFP v2, v3 and the Advanced SIMD Extension)
"Registers s16-s31 (d8-d15, q4-q7) must be preserved across subroutine calls; registers s0-s15 (d0-d7, q0-q3) do not need to be preserved (and can be used for passing arguments or returning results in standard procedure-call variants). Registers d16-d31 (q8-q15), if present, do not need to be preserved."
So I don't think that when calling __aeabi_fcmp the caller can rely on s0 and s1 not being clobbered. There are some other examples in compiler-rt that I've seen that do this for example comparef2.S.
I can try and double check this tomorrow.
Repository:
rL LLVM
https://reviews.llvm.org/D36675
More information about the llvm-commits
mailing list