[PATCH] Beaglebone: fix missing clobber in inline assembly.

Marcos Díaz marcos.diaz at tallertechnologies.com
Thu Sep 10 18:08:20 UTC 2015


Ticket #2416
https://devel.rtems.org/ticket/2416

Please let me know if this is ok and if I need to submit something else.
Greetings

On Thu, Sep 10, 2015 at 12:48 PM, Joel Sherrill <joel.sherrill at oarcorp.com>
wrote:

> Marco,
>
> This looks fine and I will apply it but I want to put it on 4.11
> and master. Can you file a quick ticket on it?
>
> Thanks.
>
> --joel
>
> On 9/10/2015 10:20 AM, Marcos Diaz wrote:
>
>> flush_data_cache uses R0 directly but doesn't list it as a clobbered
>> register.
>> Compiling with -O3 made this code break, since the function that calls
>> flush_data_cache
>> already uses r0.
>> ---
>>   c/src/lib/libbsp/arm/beagle/include/bsp.h | 8 +++++++-
>>   1 file changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/c/src/lib/libbsp/arm/beagle/include/bsp.h
>> b/c/src/lib/libbsp/arm/beagle/include/bsp.h
>> index 0250749..d9fd2ae 100644
>> --- a/c/src/lib/libbsp/arm/beagle/include/bsp.h
>> +++ b/c/src/lib/libbsp/arm/beagle/include/bsp.h
>> @@ -112,7 +112,13 @@ static inline void isb(void)
>>   /* flush data cache */
>>   static inline void flush_data_cache(void)
>>   {
>> -    asm volatile("mov r0, #0; mcr p15, #0, r0, c7, c10, #4" : : :
>> "memory");
>> +    asm volatile(
>> +        "mov r0, #0\n"
>> +        "mcr p15, #0, r0, c7, c10, #4\n"
>> +        : /* No outputs */
>> +        : /* No inputs */
>> +        : "r0","memory"
>> +    );
>>   }
>>
>>   #define __arch_getb(a)      (*(volatile unsigned char *)(a))
>>
>>
> --
> Joel Sherrill, Ph.D.             Director of Research & Development
> joel.sherrill at OARcorp.com        On-Line Applications Research
> Ask me about RTEMS: a free RTOS  Huntsville AL 35805
> Support Available                (256) 722-9985
>



-- 

______________________________

<http://www.tallertechnologies.com>


Marcos Díaz

Software Engineer


San Lorenzo 47, 3rd Floor, Office 5

Córdoba, Argentina


Phone: +54 351 4217888 / +54 351 4218211/ +54 351 7617452

Skype: markdiaz22
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20150910/f5cf3c53/attachment-0001.html>


More information about the devel mailing list