/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef _ASMRISCV_ASM_H_
#define _ASMRISCV_ASM_H_

#if __riscv_xlen == 64
#define __REG_SEL(a, b) a
#elif __riscv_xlen == 32
#define __REG_SEL(a, b) b
#else
#error "Unexpected __riscv_xlen"
#endif

#define REG_L	__REG_SEL(ld, lw)
#define REG_S	__REG_SEL(sd, sw)
#define SZREG	__REG_SEL(8, 4)

/* ASMARR() may be used with arrays of longs */
#define ASMARR(reg, idx)	((idx) * SZREG)(reg)

#define FP_SIZE 16

#endif /* _ASMRISCV_ASM_H_ */