diff options
author | Marcos Diaz <marcos.diaz@tallertechnologies.com> | 2015-09-10 10:20:41 -0500 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@oarcorp.com> | 2015-09-10 13:21:41 -0500 |
commit | bebfc4209b4e6a8fc9eab55e592cdaf18ee7df8d (patch) | |
tree | 999a37163f70ba2bddabcb2aa1bfc015eb416c61 /c/src | |
parent | lpc23xx_tli800: Add mdosfs_fsscandir01 to tests to avoid. Does not link. (diff) | |
download | rtems-bebfc4209b4e6a8fc9eab55e592cdaf18ee7df8d.tar.bz2 |
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.
Diffstat (limited to 'c/src')
-rw-r--r-- | c/src/lib/libbsp/arm/beagle/include/bsp.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/arm/beagle/include/bsp.h b/c/src/lib/libbsp/arm/beagle/include/bsp.h index 0250749419..d9fd2ae7fb 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)) |