[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-0002.html>
More information about the devel
mailing list