On Sat, May 7, 2011 at 12:39 AM, Nicolas Pitre <nicolas.pi...@linaro.org> wrote:
> On Fri, 6 May 2011, Ramana Radhakrishnan wrote:
>
>> On 6 May 2011 16:06, Ken Werner <ken.wer...@linaro.org> wrote:
>> >
>> > Currently the GCC ARM backend doesn't provide a pattern to inline 64bit
>> > __sync_* functions but the compiler emits __sync_*_8 function calls [1]. 
>> > The
>> > libgcc does not provide these symbols via the usual thin wrapper around the
>> > kernel helper [2] because the ARM Linux __kernel_cmpxchg supports 32bit 
>> > only.
>> > My understanding is that for ARMv7 the GCC backend could be enhanced to 
>> > inline
>> > the __sync_* functions by using the LDREXD and STREXD instructions. But for
>> > ARMv5 we would still rely on a new kernel helper.
>>
>> It's a bit tricky with when you want to use the kernel helper for v5t,
>> so we've got to find a way of turning this on only with special knobs
>> and not by default and that's a bit tricky.
>
> What is the problem with v5t?
Hi, when I run the following on my jaunty (for armv5), I get the following


echo "void f(){__sync_synchronize();}" | gcc -O2 -x c -Wall -dA -S - -o -
        .arch armv6
        .eabi_attribute 27, 3
        .fpu vfp
        .eabi_attribute 20, 1
        .eabi_attribute 21, 1
        .eabi_attribute 23, 3
        .eabi_attribute 24, 1
        .eabi_attribute 25, 1
        .eabi_attribute 26, 2
        .eabi_attribute 30, 2
        .eabi_attribute 18, 4
        .file   ""
        .text
        .align  2
        .global f
        .type   f, %function
f:
        @ args = 0, pretend = 0, frame = 0
        @ frame_needed = 0, uses_anonymous_args = 0
        @ link register save eliminated.
        @ basic block 2
        bx      lr
        .size   f, .-f
        .ident  "GCC: (Ubuntu 4.4.1-4ubuntu9) 4.4.1"
        .section        .note.GNU-stack,"",%progbits

but I can see (with debugger) that the kernel helper functions are
reached. any idea how?

saeed

_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to