Lines Matching full:csr
229 #define csr_swap(csr, val) \ argument
232 __asm __volatile("csrrwi %0, " #csr ", %1" \
235 __asm __volatile("csrrw %0, " #csr ", %1" \
240 #define csr_write(csr, val) \ argument
242 __asm __volatile("csrwi " #csr ", %0" :: "i" (val)); \
244 __asm __volatile("csrw " #csr ", %0" :: "r" (val)); \
247 #define csr_set(csr, val) \ argument
249 __asm __volatile("csrsi " #csr ", %0" :: "i" (val)); \
251 __asm __volatile("csrs " #csr ", %0" :: "r" (val)); \
254 #define csr_clear(csr, val) \ argument
256 __asm __volatile("csrci " #csr ", %0" :: "i" (val)); \
258 __asm __volatile("csrc " #csr ", %0" :: "r" (val)); \
261 #define csr_read(csr) \ argument
263 __asm __volatile("csrr %0, " #csr : "=r" (val)); \
268 #define csr_read64(csr) \ argument
272 "csrr t0, " #csr "h\n" \
273 "csrr %0, " #csr "\n" \
274 "csrr %1, " #csr "h\n" \
283 #define csr_read64(csr) ((uint64_t)csr_read(csr)) argument