[compiler-rt] r311555 - [ARM][Compiler-rt] Fix AEABI builtins to correctly pass arguments to non-AEABI functions on HF targets
Hans Wennborg via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 23 14:40:16 PDT 2017
Merged in r311606.
On Wed, Aug 23, 2017 at 11:37 AM, Hans Wennborg <hans at chromium.org> wrote:
> Let's have it sit in trunk a few more hours, then I'll merge it.
>
> Thanks,
> Hans
>
> On Wed, Aug 23, 2017 at 8:23 AM, Saleem Abdulrasool
> <compnerd at compnerd.org> wrote:
>> Hans,
>>
>> Could you please crossport this to the 5.0 release branch? It is a fix for
>> a release blocker, and has been reviewed by multiple people. I don't expect
>> it to be a stability concern.
>>
>> Thanks!
>>
>> On Wed, Aug 23, 2017 at 7:27 AM Oleg Ranevskyy via llvm-commits
>> <llvm-commits at lists.llvm.org> wrote:
>>>
>>> Author: oleg
>>> Date: Wed Aug 23 07:26:31 2017
>>> New Revision: 311555
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=311555&view=rev
>>> Log:
>>> [ARM][Compiler-rt] Fix AEABI builtins to correctly pass arguments to
>>> non-AEABI functions on HF targets
>>>
>>> Summary:
>>> This is a patch for PR34167.
>>>
>>> On HF targets functions like `__{eq,lt,le,ge,gt}df2` and
>>> `__{eq,lt,le,ge,gt}sf2` expect their arguments to be passed in d/s
>>> registers, while some of the AEABI builtins pass them in r registers.
>>>
>>> Reviewers: compnerd, peter.smith, asl
>>>
>>> Reviewed By: peter.smith, asl
>>>
>>> Subscribers: peter.smith, aemerson, dberris, javed.absar, llvm-commits,
>>> asl, kristof.beyls
>>>
>>> Differential Revision: https://reviews.llvm.org/D36675
>>>
>>> Modified:
>>> compiler-rt/trunk/lib/builtins/arm/aeabi_dcmp.S
>>> compiler-rt/trunk/lib/builtins/arm/aeabi_fcmp.S
>>>
>>> Modified: compiler-rt/trunk/lib/builtins/arm/aeabi_dcmp.S
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/arm/aeabi_dcmp.S?rev=311555&r1=311554&r2=311555&view=diff
>>>
>>> ==============================================================================
>>> --- compiler-rt/trunk/lib/builtins/arm/aeabi_dcmp.S (original)
>>> +++ compiler-rt/trunk/lib/builtins/arm/aeabi_dcmp.S Wed Aug 23 07:26:31
>>> 2017
>>> @@ -18,11 +18,20 @@
>>> // }
>>> // }
>>>
>>> +#if defined(COMPILER_RT_ARMHF_TARGET)
>>> +# define CONVERT_DCMP_ARGS_TO_DF2_ARGS \
>>> + vmov d0, r0, r1 SEPARATOR \
>>> + vmov d1, r2, r3
>>> +#else
>>> +# define CONVERT_DCMP_ARGS_TO_DF2_ARGS
>>> +#endif
>>> +
>>> #define DEFINE_AEABI_DCMP(cond) \
>>> .syntax unified SEPARATOR \
>>> .p2align 2 SEPARATOR \
>>> DEFINE_COMPILERRT_FUNCTION(__aeabi_dcmp ## cond) \
>>> push { r4, lr } SEPARATOR \
>>> + CONVERT_DCMP_ARGS_TO_DF2_ARGS SEPARATOR \
>>> bl SYMBOL_NAME(__ ## cond ## df2) SEPARATOR \
>>> cmp r0, #0 SEPARATOR \
>>> b ## cond 1f SEPARATOR \
>>>
>>> Modified: compiler-rt/trunk/lib/builtins/arm/aeabi_fcmp.S
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/arm/aeabi_fcmp.S?rev=311555&r1=311554&r2=311555&view=diff
>>>
>>> ==============================================================================
>>> --- compiler-rt/trunk/lib/builtins/arm/aeabi_fcmp.S (original)
>>> +++ compiler-rt/trunk/lib/builtins/arm/aeabi_fcmp.S Wed Aug 23 07:26:31
>>> 2017
>>> @@ -18,11 +18,20 @@
>>> // }
>>> // }
>>>
>>> +#if defined(COMPILER_RT_ARMHF_TARGET)
>>> +# define CONVERT_FCMP_ARGS_TO_SF2_ARGS \
>>> + vmov s0, r0 SEPARATOR \
>>> + vmov s1, r1
>>> +#else
>>> +# define CONVERT_FCMP_ARGS_TO_SF2_ARGS
>>> +#endif
>>> +
>>> #define DEFINE_AEABI_FCMP(cond) \
>>> .syntax unified SEPARATOR \
>>> .p2align 2 SEPARATOR \
>>> DEFINE_COMPILERRT_FUNCTION(__aeabi_fcmp ## cond) \
>>> push { r4, lr } SEPARATOR \
>>> + CONVERT_FCMP_ARGS_TO_SF2_ARGS SEPARATOR \
>>> bl SYMBOL_NAME(__ ## cond ## sf2) SEPARATOR \
>>> cmp r0, #0 SEPARATOR \
>>> b ## cond 1f SEPARATOR \
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>> --
>> Saleem Abdulrasool
>> compnerd (at) compnerd (dot) org
More information about the llvm-commits
mailing list