__ASM_STR
#define __REG_SEL(a, b) __ASM_STR(a)
#define __REG_SEL(a, b) __ASM_STR(b)
#define RISCV_INT __ASM_STR(.word)
#define RISCV_SZINT __ASM_STR(4)
#define RISCV_LGINT __ASM_STR(2)
#define RISCV_SHORT __ASM_STR(.half)
#define RISCV_SZSHORT __ASM_STR(2)
#define RISCV_LGSHORT __ASM_STR(1)
__asm__ __volatile__ ("csrrw %0, " __ASM_STR(csr) ", %1"\
__asm__ __volatile__ ("csrr %0, " __ASM_STR(csr) \
__asm__ __volatile__ ("csrw " __ASM_STR(csr) ", %0" \
__asm__ __volatile__ ("csrrs %0, " __ASM_STR(csr) ", %1"\
__asm__ __volatile__ ("csrs " __ASM_STR(csr) ", %0" \
__asm__ __volatile__ ("csrrc %0, " __ASM_STR(csr) ", %1"\
__asm__ __volatile__ ("csrc " __ASM_STR(csr) ", %0" \
#define RV_OPCODE(v) __ASM_STR(v)
#define RV_FUNC3(v) __ASM_STR(v)
#define RV_FUNC7(v) __ASM_STR(v)
#define RV_SIMM12(v) __ASM_STR(v)
#define RV_RD(v) __ASM_STR(v)
#define RV_RS1(v) __ASM_STR(v)
#define RV_RS2(v) __ASM_STR(v)
#define __RV_REG(v) __ASM_STR(x ## v)
__ASM_STR(.error "hlv.d requires 64-bit support")
__ASM_STR(.error "ld.aq requires 64-bit support")
__ASM_STR(.error "ld.aqrl requires 64-bit support")
__ASM_STR(.error "sd.rl requires 64-bit support")
__ASM_STR(.error "sd.aqrl requires 64-bit support")
__asm__ __volatile__ ("csrrw %0, " __ASM_STR(csr) ", %1"\
__asm__ __volatile__ ("csrr %0, " __ASM_STR(csr) \
__asm__ __volatile__ ("csrw " __ASM_STR(csr) ", %0" \
__asm__ __volatile__ ("csrrs %0, " __ASM_STR(csr) ", %1"\
__asm__ __volatile__ ("csrs " __ASM_STR(csr) ", %0" \
__asm__ __volatile__ ("csrrc %0, " __ASM_STR(csr) ", %1"\
__asm__ __volatile__ ("csrc " __ASM_STR(csr) ", %0" \
__asm__ __volatile__ ("csrr %0, " __ASM_STR(csr) \
__asm__ __volatile__ ("csrw " __ASM_STR(csr) ", %0" \