[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 |