arch: xtensa: add macros for user registers This patch adds RUR and WUR macros to read and write user special registers. Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
diff --git a/include/zephyr/arch/xtensa/arch_inlines.h b/include/zephyr/arch/xtensa/arch_inlines.h index c723b42..027342d 100644 --- a/include/zephyr/arch/xtensa/arch_inlines.h +++ b/include/zephyr/arch/xtensa/arch_inlines.h
@@ -23,6 +23,16 @@ __asm__ volatile ("wsr." sr " %0" : : "r"(v)); \ } while (false) +#define RUR(ur) \ + ({uint32_t v; \ + __asm__ volatile ("rur." ur " %0" : "=a"(v)); \ + v; }) + +#define WUR(ur, v) \ + do { \ + __asm__ volatile ("wur." ur " %0" : : "r"(v)); \ + } while (false) + static ALWAYS_INLINE _cpu_t *arch_curr_cpu(void) { _cpu_t *cpu;