mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-05 15:15:44 +00:00
Beaglebone: fix missing clobber in inline assembly.
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. closes #2416.
This commit is contained in:
committed by
Joel Sherrill
parent
ccebc571d4
commit
44eb9893b5
@@ -111,7 +111,13 @@ static inline void isb(void)
|
|||||||
/* flush data cache */
|
/* flush data cache */
|
||||||
static inline void flush_data_cache(void)
|
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))
|
#define __arch_getb(a) (*(volatile unsigned char *)(a))
|
||||||
|
|||||||
Reference in New Issue
Block a user