|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 19/34] xen/arm: Provide eabi wrapper for __aeabi_mem* functions
On 03/26/2014 03:38 PM, Julien Grall wrote:
> On 03/26/2014 10:39 AM, Ian Campbell wrote:
>> On Tue, 2014-03-25 at 18:12 +0000, Julien Grall wrote:
>>> Hi Ian,
>>>
>>> On 03/25/2014 05:25 PM, Ian Campbell wrote:
>>>> On Tue, 2014-03-25 at 16:55 +0000, Julien Grall wrote:
>>>>> Clang doesn't provide function __aebai_mem*, implement generically as a
>>>>> wrapper
>>>>> for mem* function provided by Xen.
>>>>
>>>> Where are the references to these functions coming from if not from the
>>>> compiler?
>>>
>>> Theses functions are called by the code generated by the compiler.
>>
>> And who normally provides them when building with clang? Some sort of
>> libclang I guess?
>
> I've tried to compile a same compilation unit with gcc and clang. gcc is
> inlining the call to __aebi_*. See below:
I've just noticed it also calls memset/memcpy directly without the
prefix __aebi_.
> Clang assembly:
> 000002b8 <wallclock_time>:
> 2b8: e92d4800 push {fp, lr}
> 2bc: e1a0b00d mov fp, sp
> 2c0: e3a01024 mov r1, #36 ; 0x24
> 2c4: e3a02000 mov r2, #0
> 2c8: ebfffffe bl 0 <__aeabi_memset>
> 2cc: e8bd8800 pop {fp, pc}
>
> GCC assembly:
>
> 00000378 <wallclock_time>:
> 378: e52db004 push {fp} ; (str fp, [sp, #-4]!)
> 37c: e28db000 add fp, sp, #0
> 380: e3a02000 mov r2, #0
> 384: e1a03000 mov r3, r0
> 388: e4832004 str r2, [r3], #4
> 38c: e5802004 str r2, [r0, #4]
> 390: e2833004 add r3, r3, #4
> 394: e4832004 str r2, [r3], #4
> 398: e4832004 str r2, [r3], #4
> 39c: e4832004 str r2, [r3], #4
> 3a0: e4832004 str r2, [r3], #4
> 3a4: e4832004 str r2, [r3], #4
> 3a8: e4832004 str r2, [r3], #4
> 3ac: e5832000 str r2, [r3]
> 3b0: e24bd000 sub sp, fp, #0
> 3b4: e49db004 pop {fp} ; (ldr fp, [sp], #4)
> 3b8: e12fff1e bx lr
>
> Regards,
>
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |