Commit d01c67e0 authored by danh-arm's avatar danh-arm
Browse files

Merge pull request #229 from sandrine-bailleux/sb/tf-issue-273

Prevent optimisation of sysregs accessors calls
parents ff990202 36e2fd01
...@@ -40,24 +40,24 @@ ...@@ -40,24 +40,24 @@
* registers * registers
*********************************************************************/ *********************************************************************/
#define _DEFINE_SYSREG_READ_FUNC(_name, _reg_name) \ #define _DEFINE_SYSREG_READ_FUNC(_name, _reg_name) \
static inline uint64_t read_ ## _name(void) \ static inline uint64_t read_ ## _name(void) \
{ \ { \
uint64_t v; \ uint64_t v; \
__asm__ ("mrs %0, " #_reg_name : "=r" (v)); \ __asm__ volatile ("mrs %0, " #_reg_name : "=r" (v)); \
return v; \ return v; \
} }
#define _DEFINE_SYSREG_WRITE_FUNC(_name, _reg_name) \ #define _DEFINE_SYSREG_WRITE_FUNC(_name, _reg_name) \
static inline void write_ ## _name(uint64_t v) \ static inline void write_ ## _name(uint64_t v) \
{ \ { \
__asm__ ("msr " #_reg_name ", %0" : : "r" (v)); \ __asm__ volatile ("msr " #_reg_name ", %0" : : "r" (v)); \
} }
#define _DEFINE_SYSREG_WRITE_CONST_FUNC(_name, _reg_name) \ #define _DEFINE_SYSREG_WRITE_CONST_FUNC(_name, _reg_name) \
static inline void write_ ## _name(const uint64_t v) \ static inline void write_ ## _name(const uint64_t v) \
{ \ { \
__asm__ ("msr " #_reg_name ", %0" : : "i" (v)); \ __asm__ volatile ("msr " #_reg_name ", %0" : : "i" (v)); \
} }
/* Define read function for system register */ /* Define read function for system register */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment