diff --git a/include/sbi/riscv_asm.h b/include/sbi/riscv_asm.h index ef48dc89..0cf3fc37 100644 --- a/include/sbi/riscv_asm.h +++ b/include/sbi/riscv_asm.h @@ -83,7 +83,7 @@ #define csr_swap(csr, val) \ ({ \ - unsigned long __v = (unsigned long)(val); \ + register unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__("csrrw %0, " __ASM_STR(csr) ", %1" \ : "=r"(__v) \ : "rK"(__v) \ @@ -111,7 +111,7 @@ #define csr_write(csr, val) \ ({ \ - unsigned long __v = (unsigned long)(val); \ + register unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__("csrw " __ASM_STR(csr) ", %0" \ : \ : "rK"(__v) \ @@ -120,7 +120,7 @@ #define csr_read_set(csr, val) \ ({ \ - unsigned long __v = (unsigned long)(val); \ + register unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__("csrrs %0, " __ASM_STR(csr) ", %1" \ : "=r"(__v) \ : "rK"(__v) \ @@ -130,7 +130,7 @@ #define csr_set(csr, val) \ ({ \ - unsigned long __v = (unsigned long)(val); \ + register unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__("csrs " __ASM_STR(csr) ", %0" \ : \ : "rK"(__v) \ @@ -139,7 +139,7 @@ #define csr_read_clear(csr, val) \ ({ \ - unsigned long __v = (unsigned long)(val); \ + register unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__("csrrc %0, " __ASM_STR(csr) ", %1" \ : "=r"(__v) \ : "rK"(__v) \ @@ -149,7 +149,7 @@ #define csr_clear(csr, val) \ ({ \ - unsigned long __v = (unsigned long)(val); \ + register unsigned long __v = (unsigned long)(val); \ __asm__ __volatile__("csrc " __ASM_STR(csr) ", %0" \ : \ : "rK"(__v) \