\\r
/* Barriers are normally not required but do ensure the code is completely \\r
within the specified behaviour for the architecture. */ \\r
- __asm volatile( "dsb" ); \\r
+ __asm volatile( "dsb" ::: "memory" ); \\r
__asm volatile( "isb" ); \\r
}\r
\r
{\r
uint8_t ucReturn;\r
\r
- __asm volatile ( "clz %0, %1" : "=r" ( ucReturn ) : "r" ( ulBitmap ) );\r
+ __asm volatile ( "clz %0, %1" : "=r" ( ucReturn ) : "r" ( ulBitmap ) : "memory" );\r
return ucReturn;\r
}\r
\r
BaseType_t xReturn;\r
\r
/* Obtain the number of the currently executing interrupt. */\r
- __asm volatile( "mrs %0, ipsr" : "=r"( ulCurrentInterrupt ) );\r
+ __asm volatile( "mrs %0, ipsr" : "=r"( ulCurrentInterrupt ) :: "memory" );\r
\r
if( ulCurrentInterrupt == 0 )\r
{\r
" isb \n" \\r
" dsb \n" \\r
" cpsie i \n" \\r
- :"=r" (ulNewBASEPRI) : "i" ( configMAX_SYSCALL_INTERRUPT_PRIORITY )\r
+ :"=r" (ulNewBASEPRI) : "i" ( configMAX_SYSCALL_INTERRUPT_PRIORITY ) : "memory"\r
);\r
}\r
\r
" isb \n" \\r
" dsb \n" \\r
" cpsie i \n" \\r
- :"=r" (ulOriginalBASEPRI), "=r" (ulNewBASEPRI) : "i" ( configMAX_SYSCALL_INTERRUPT_PRIORITY )\r
+ :"=r" (ulOriginalBASEPRI), "=r" (ulNewBASEPRI) : "i" ( configMAX_SYSCALL_INTERRUPT_PRIORITY ) : "memory"\r
);\r
\r
/* This return will not be reached but is necessary to prevent compiler\r
{\r
__asm volatile\r
(\r
- " msr basepri, %0 " :: "r" ( ulNewMaskValue )\r
+ " msr basepri, %0 " :: "r" ( ulNewMaskValue ) : "memory"\r
);\r
}\r
/*-----------------------------------------------------------*/\r