[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